Things you should know about functional testing
-
Sanplex Content -
2020-12-10 20:31:47 -
3205
Functional Testing Disadvantages
- It requires a large number of test cases.
- Test cases can often produce a lot of redundancy.
- Achieving 100% test coverage is practically impossible.
Functional Testing Advantages
It is completely independent of how the software is implemented. If the underlying code or implementation changes, the existing functional test cases remain valid and can still be used.
Commonly Used Methods:
-
Functional Decomposition: Through functional decomposition, the scope of software functional testing can be clearly outlined. This makes functional testing measurable, which is highly conducive to testing supervision and project management.
-
Equivalence Partitioning (Class Division): This method divides the input or output domains of the program into different intervals or data classes in order to derive test cases.
Valid equivalence class: A collection of input data that is reasonable, meaningful, and conforms to the program's requirements.
Invalid equivalence class: A collection of unreasonable or meaningless data for the program. This is used to check the program's error-handling capabilities and its ability to manage invalid data.
-
Boundary Value Analysis (BVA): Boundary value analysis is a supplement to equivalence partitioning. Defects often hide in corner cases and cluster at the boundaries of input domains. It is much easier to find errors by selecting test data exactly at the boundary limits of input conditions rather than using intermediate data.
-
Cause-and-Effect Graphing: Considering the interconnections and combinations of various input conditions, a cause-and-effect graph is used to ultimately generate a decision table. This method is ideal for checking complex combinations of program input conditions.
Decision table components: Condition stub, action stub, condition entry, and action entry.
-
Other Test Methods: Error Guessing (predicting where errors are likely to occur based on the tester's past experience and intuition).
The Testing Process
- Develop a test plan.
- Design test cases. A test case is an explicit scenario used to check whether the software meets the requirements. Its basic elements include the objective, preconditions, input data or actions, and expected results.
- If the Entry Criteria are met, execute the tests.
- Write a formal test report.
- If the Exit Criteria are met, conclude the testing phase.
Entry Criteria (When to start testing):
- The test plan has been developed, reviewed, and approved.
- The test cases have been designed, reviewed, and approved.
- The software/object to be tested has been developed and successfully deployed to the testing environment.
Exit Criteria (When to end testing):
(Note: Corrected from your text's repeated "Test start criteria")
- The pass rate of functional test cases reaches 100% (or the agreed-upon threshold).
- The pass rate of non-functional test cases reaches 90% (or the agreed-upon threshold).
- The "defect density" over n continuous testing hours remains strictly below a certain acceptable threshold m (e.g., n > 10 hours and m ≤ 1 defect).
Key Principles Testers Should Know:
- Testing helps improve the quality of software, but true quality cannot rely entirely on testing (quality is built in during development, not tested in later).
- Testing can prove the presence of defects, but it can never prove the absence of defects.
- The 80/20 Principle (Defect Clustering): 80% of software defects are typically found in 20% of the core modules. Furthermore, modules that have historically produced frequent errors will often continue to be prone to errors even after corrections are made.
Resource
- Blog
- Customer stories
- FAQ
Support
- Book a Demo
- Email Us: [email protected]