The Fundamentals of Testing [1]
Testing a software is like the inspection of buying a used car. You need to read through the advertisement (project documents), have a look at its appearance (UI), sitting in the driver's seat and try things out (usability), test drive (run test cases), find out it's performance (performance), talk with the sales person (developers), and finally make a decision (report).
So, the first question is: why do we need testing?
1. For example, nowadays, many companies are developing auto navigation systems. Without testing, the vehicle can hardly guarantee the safety of its passengers. So when coming across safety-critical and money-related areas, testing is especially necessary because it can prevent most of the product malfunction.
2. Testing can identify errors, defects, faults, and failures. An error (or mistake) leads to a defect, which can cause an observed failure.
3. Software failures can lead to: loss of time, money, reputation and even health and life.
4. Therefore, when the cost of testing is less than the cost of potential software failure, testing is the right thing to do.
What is testing?
Testing is a systematic exploration of a product with the main aim of finding and reporting defects.
Difference between testing and debugging?
Debugging is to identify the cause of bugs or defects in code and undertake corrections. Usually developers debug, whereas testers do the testing.
Static testing and dynamic testing
Static testing does not exercise the code, e.g. going through the specification documents. Dynamic testing exercises the program.
General testing principles
Fundamental test process
[1]. Hambling, B., Thompson, G., Williams, P., Samaroo, A., & Morgan, P. (2015). Software testing: an ISTQB-BCS certified tester foundation guide. BCS Learning & Development.
Debugging is to identify the cause of bugs or defects in code and undertake corrections. Usually developers debug, whereas testers do the testing.
Static testing and dynamic testing
Static testing does not exercise the code, e.g. going through the specification documents. Dynamic testing exercises the program.
General testing principles
- Testing shows the presence of bugs
- Exhaustive testing is impossible
- Early testing
- Defect clustering
- The pesticide paradox
- Testing is content dependant
- Absence of errors fallacy
Fundamental test process
- Planning and control (what we do when the activities do not match up with the plans).
- Analysis and design.
- Implementation and execution.
- Evaluating completing criteria and reporting.
- Closure activities
[1]. Hambling, B., Thompson, G., Williams, P., Samaroo, A., & Morgan, P. (2015). Software testing: an ISTQB-BCS certified tester foundation guide. BCS Learning & Development.

No comments:
Post a Comment