
Welcome to Aspiricity's Software Testing Foundations course. This course is based off of the ISTQB Foundation Level Syllabus and will teach you the fundamental skills and techniques that provide you with a strong foundation for a career in software testing and beyond, as well as preparing you to pass the ISTQB Foundations Software Testing Exam should you choose to challenge it.
Check out the attached Introduction PDF for additional course information.
We are excited to have you join our course and we would love to get your feedback, positive and negative, so we can make this and other courses as valuable as possible.
Note: Additional materials for this section are available for download in this lecture.
Understand why software testing is essential to identify defects, reduce failures, and strengthen quality assurance across ubiquitous smart devices and AI-driven systems.
Define software testing as an investigation that informs stakeholders about quality through planning, test conditions, design, execution, and reporting, including detecting defects, regression testing, and debugging insights.
Explore how software testing interlocks with development life cycles—sequential, iterative, and agile—emphasizing verification, validation, and traceability, with just-in-time documentation and team collaboration.
Explore the seven testing principles: testing reveals defects, exhaustive testing is impossible, early and context dependent testing reduces costs and risk, and absence of errors is not quality.
Explore the fundamental test process from planning and control to closure, detailing test analysis, design, implementation, execution, incident reporting, and exit criteria across traditional and agile SDLCs.
Explore the psychology of testing and the tester's independent mindset against authors bias. Learn how testing supports validation, constructive quality assurance, and ethical standards with attention to detail and communication.
Explore testing across the software life cycle, compare test levels, and distinguish functional, non-functional, and white-box testing while examining the link between levels and types, plus change-based and maintenance testing.
Explore test levels from component testing (unit testing) through integration, system, and acceptance testing, detailing test basis and techniques such as tdd, stubs, and alpha and beta testing.
Identify and compare functional, non-functional, structural, and change-based testing, using black-box and white-box perspectives, to ensure software quality, reliability, and maintainability.
Explore static techniques in software testing, compare static and dynamic approaches, and understand reviews, roles, and the benefits of static analysis across the software development lifecycle.
Explore static techniques in the test process, including reviews and automated analysis of code and documentation. Identify defects early in requirements, design specifications, and interfaces to improve quality and communication.
Explore the formal and informal reviews in software development, detailing planning, kickoff, individual preparation, examination evaluation and recording results, rework, and follow-up to find defects and improve quality.
Explore static analysis with tools that detect defects in software models and source code without executing, and integrate into development environments for real-time syntax checks and warnings.
Note: Additional materials for this section are available for download in this lecture.
Explore the test development process from test analysis, design, and implementation to test execution, including traceability, design techniques, and test scripts across agile and waterfall lifecycles.
Explore specification based black box testing and white box techniques, focusing on equivalence partitioning and boundary value analysis to derive test conditions and data across valid and invalid inputs.
Explore decision table testing as a black-box technique to model complex rules, define boolean triggering conditions, and create test cases for all input combinations, including mutually exclusive scenarios.
Model software behavior using state transition testing with diagrams and tables to derive valid and invalid input sequences that trigger state changes, illustrated by the iPod shuffle.
Explore use case testing, a black box technique where an actor and a system interact through preconditions, postconditions, main and alternative flows to support acceptance testing and reveal integration defects.
Explore white-box test design techniques that analyze software structure to derive test conditions across component, integration, and system levels, applying code coverage for statement, decision, condition, and multiple condition coverage.
Explore experience based test design techniques—error guessing, fault attacks, and exploratory testing—driven by tester skill and intuition to uncover unique defects after formal methods.
Note: Additional materials for this section are available for download in this lecture.
Learn test organization and independence across testing levels, from no independent testers to external testers, and the roles of test leader and tester, covering planning, traceability, configuration management, and automation.
Plan and estimate software testing through master and level test plans, entry and exit criteria, and metrics, continuously aligning with SDLC and risk-driven strategies.
Explain how test monitoring, reporting, and control use metrics—work completed, pass rates, defect density, fixed and retest rates, milestones, costs, and configuration management—to guide decisions and adjust testing strategies.
Assess risk as the likelihood of an event and its harm, and apply risk-based testing to prioritize project and product risks, improving reliability and reducing defects.
Learn incident management by logging discrepancies between actual and expected results as incidents, review them to classify defects, and use triage to update tests, track quality, and drive process improvement.
Classify testing tools by purpose and the test activities they support, and understand automation's risks and benefits. Identify pilots' value and the key factors for implementing and sustaining tools.
Explore how test tools—from execution and data generation to management and static analysis—boost efficiency, reliability, and coverage, while addressing risks and integration in modern cloud-based workflows.
Assess how to introduce a tool into an organization by evaluating maturity, opportunities, and innovation culture, conducting a proof of concept, and planning training, standards, and a pilot rollout.
Congratulations on completing the course. I hope you enjoyed it and that the knowledge gained will help you in your career or whatever comes next. Best of luck and happy bug hunting!
Resources:
International Software Testing Qualifications Board website - the main ISTQB website
ISTQB Foundation Level - ISTQB Foundation Level information main page
ISTQB Foundation Level Downloads - download page containing the Foundation Level Syllabus and sample exam questions.
Note: Reading the syllabus which about 100 pages long is strongly recommended for anyone challenging the ISTQB Foundation Level exam.
ISTQB Glossary - A glossary of all ISTQB defined software testing terminology.
American Software Testing Qualifications Board website - The main ASTQB website, you would go here to register to take the Foundation Level certification exam if you are located in the United States.
Canadian Software Testing Board - The main CSTB/CCTL website, you would go here to register to take the Foundation Level certification exam if you are located in Canada.
Locate your ISTQB local organization - If you are not located in the US or Canada, please go to this link to find your appropriate local ISTQB affiliated organization where you can register for the exam.
Additional materials for preparing for the exam are available in the blog on the Aspiricity website.
Welcome to Aspiricity's Software Testing Foundations course. This course is based off of the ISTQB Foundation Level Syllabus and will teach you the fundamental skills and techniques that provide you with a strong foundation for a career in software testing and beyond
This course provides an in depth exploration of all of the fundamental concepts, practices and techniques used by software testers in quality assurance positions. Participants will learn and apply concepts and techniques in real world inspired exercises and check their knowledge and understanding in the quizzes. The course will cover materials tested by and prepare participants for taking the ISTQB® Foundation certification exam.
Course Objectives
Provide participants with a broad understanding of Software Testing concepts, practices and techniques
Prepare participants to confidently and successfully challenge the ISTQB® Foundation certification exam
Engage participants to apply learning in practical exercises that model real world software testing activities
Course Specifications
This course is the online version of Aspiricity’s Software Testing Foundations course, which was written based on the ISTQB Foundation Level Software Testing syllabus. The total time to complete the course will vary due to individual time required to complete quizzes and exercises. The course contains over five hours of video lecture content, six exercises throughout the course, and six quizzes (at the end of each chapter).
Course Outline
Fundamentals of Testing
This section introduces what software testing is and why it is important. This section also examines seven key principles that have been observed to be fundamentally true about testing and reviews testing activities that fundamentally make up any testing process.
Testing Through the Software Lifecycle
This topic looks at how software testing fits into the Software Development Lifecycle (SDLC) in the different methodologies used in software development (waterfall, iterative, agile, etc.). Additionally, it looks at both test types and test levels to better understand the differences in how, what, when and why testing is done.
Static Testing Techniques
In Static Testing Techniques, participants uncover the different ways of doing quality assurance and testing, before (and after) code is written, without executing code. The two main methods of doing static testing, reviews and static testing using tools are examined.
Test Design Techniques
In this section, dynamic techniques of developing tests are discussed. The difference between specification-based (black box), structure-based (white box) and experience-based test design is investigated. Specific techniques covered include equivalence partitioning, boundary value analysis, decision table testing, state transition testing, use case testing, code coverage, exploratory testing and more.
Test Management
Test Management reviews how testing is planned, estimated, and controlled within an organization and looks at concepts such as configuration management, risk, and reporting as components of managing testing activities.
Tool Support for Testing
This section looks at the specific usage of tools to support different areas of testing, how to decide when to use a tool in an organization, for what purpose and what benefits (and risks) to expect when using tools.