Software testing is a process used to promote the correctness, completeness, security, and quality of a certified software. The classic definition of software testing is the process of operating the program under prescribed conditions to detect program errors, measure software quality, and assess whether it meets design requirements. Software testing also provides an overview of the software under test from an objective, unrelated perspective, thus providing an objective understanding of the risks that exist in the software.
Some of the test properties that are of interest to software testing:
- Whether to meet the design requirements
- Whether the correct values are returned for various inputs
- Whether the response time can be accepted
- Availability of
- Can be run correctly in the desired environment
Usually, because the small components of the software under test, the component is almost infinite, and the software test will use a feasible strategy, in a limited time and resources, to selectively test. Therefore, the software testing is to find the bug and the program to selectively targeted testing. In other words, software testing is not exhaustive.
In a typical waterfall development process, software testing is actively introduced when the program can be partially executed, such as unit testing. In contrast, in agile development, requirements, programming, and testing are often concurrent.
bugs and Bugs (Defects & Failures )
Not all software defects are caused by coding errors. Usually, if the position is located at the top of the waterfall, the loss is greater, such as differences in demand or unclear. Therefore, the sooner the defect is found, the better the defect correction. Differences in requirements often refer to non-functional requirements such as program testability, maintainability, ease of use, performance, and security.
Software errors (failure, fault, bugs) are usually due to a programmer's failure to cause the output of the software to fail to the expected requirements. However, not all program errors cause software output to be inconsistent with expectations. For example, a code that will never be called contains a program error. There is also a program error is caused by changes in the operating environment, such as you replace the hardware, operating system and so on.
Combined input
Software testing is not possible to test all possible inputs, so it is necessary to have a selective combination of inputs. This allows the user to use as few test cases as possible to expand the coverage of the test. The common input combinations are boundary value method, equivalence class method, decision table method, causality diagram and so on.
Economic factors
It is also easy to see from the chart that the sooner a flaw or error is discovered, the less expensive it is to fix it. Conversely, the later the discovery, the greater the cost.
Cost to fix a defect |
Time detected |
Requirements |
Architecture |
Construction |
System Test |
Post-release |
Time introduced |
Requirements |
1x |
3x |
5–10x |
10x |
10–100x |
Architecture |
– |
1x |
10x |
15x |
25–100x |
Construction |
– |
– |
1x |
10x |
10–25x |
Test personnel
Before the 80 's, testers were collectively referred to as software Testers (software tester), and later had a finer division of labor. such as Test Manager, test leader, Test Designer, tester, Automation tester, Test Manager.
Historical stage
- 1956 and before: debugging-oriented testing
- 1957-1978: proof-oriented testing
- 1979-1982: destruction-oriented testing
- 1983-1987: Evaluation-oriented testing
- 1988-Now: test for prevention
Test the workpiece
A piece of work (product) that is produced in a software test project.
- Test plan: Test Manual.
- Document Tracking table: records the changes in the document during the test. Also do version control with
- Test Case: A process designed to test a specific transaction as required. Contains the input and expected output. Complex test cases may contain multiple branches, which can be entered according to different preconditions, resulting in different results.
- Test script: A test script created from a test case, using an automated tool, used primarily for regression testing.
- Test group: A set of test cases. such as a test case for a module.
- Test data
- Test tools
Software testing What you need to know (a) overview