Software Testing Fundamentals
Software testing is the structured work of evaluating software and related materials to find defects, assess quality, and reduce risk. It includes reviews and analysis as well as running the software.
itSoftware engineering | OpenSkills.info
Intro
Software Testing Fundamentals
Software testing gives you evidence about a product and the risks around releasing it. You inspect requirements, designs, code, and running software. You look for defects, evaluate quality, and help stakeholders make informed decisions.
Testing does not prove that software is correct. It can reveal failures and defects, but exhaustive testing is usually impossible. You choose what to test by considering risk, context, and the information people need.
A mental model: evidence for decisions
Treat testing as an evidence loop:
- Understand the test object and the decision at stake.
- Identify risks and define test objectives.
- Design tests that can expose useful differences between expected and actual behavior.
- Prepare test data, environments, and procedures.
- Execute tests or examine work products.
- Compare results with expectations.
- Report what the evidence means for the decision.
A test object is the work product you evaluate. It may be a requirement, design, component, service, complete system, or document. A test basis is the source you use to derive expected behavior, such as a requirement, user story, architecture description, or regulation.
The loop is not always linear. Analysis may expose an unclear requirement. Execution may reveal a new risk. A defect report may lead you to add a regression test. Testing adapts as the product and your understanding change.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://istqb.org/wp-content/uploads/2024/11/ISTQB_CTFL_Syllabus_v4.0.1.pdf
Supports
- Testing objectives, verification, validation, and the limits of testing
- Testing, debugging, quality assurance, error, defect, failure, and root cause
- Seven testing principles and context-dependent test activities
- Static and dynamic testing
- Component, component integration, system, system integration, and acceptance test levels
- Functional, non-functional, black-box, and white-box test types
- Equivalence partitioning, boundary value analysis, decision table, state transition, white-box, experience-based, exploratory, and checklist-based techniques
- Confirmation testing, regression testing, product risk, test reporting, configuration management, defect management, and tool support
- https://www.istqb.org/certifications/certified-tester-foundation-level-ctfl-v4-0/
Supports
- Official CTFL learning outcomes, syllabus downloads, and sample exams
- https://tbok.istqb.org/help
Supports
- Search across published ISTQB syllabi
- Official ISTQB Glossary integration for authoritative testing terminology
- https://committee.iso.org/sites/jtc1sc7/home/projects/flagship-standards/isoiecieee-29119-series.html
Supports
- ISO/IEC/IEEE 29119 scope across general concepts, test processes, documentation, and test design techniques
- Static reviews covered by ISO/IEC 20246
- https://owasp.org/www-project-web-security-testing-guide/
Supports
- Web Security Testing Guide as a structured resource for web application and web service security testing
- https://github.com/sindresorhus/awesome
Supports
- Starting index used to discover relevant curated technology lists
- https://github.com/atinfo/awesome-test-automation/blob/master/general-purpose-test-automation-tools.md
Supports
- Curated discovery of Robot Framework, Postman and Newman, k6, and Schemathesis
- Tool categories spanning acceptance, API, and performance test automation
- https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html
Supports
- Robot Framework as a Python-based, extensible, keyword-driven framework
- Acceptance testing, acceptance test-driven development, and behavior-driven development use
- https://learning.postman.com/docs/reference/newman-cli/installing-running-newman
Supports
- Installation and command-line execution of Postman collections with Newman
- Nonzero exit behavior for failed collection tests
- https://grafana.com/docs/k6/latest/get-started/resources/
Supports
- Official k6 learning resources, tutorial, workshop, examples, integrations, and safe test environments
- https://schemathesis.readthedocs.io/en/stable/
Supports
- Property-based test generation from OpenAPI and GraphQL schemas
- Command-line, pytest, and continuous integration support
