
This introductory chapter will explain the basic facts of software testing presented in ISTQB Foundation level syllabus. After going through this chapter, you will learn the basic principles related to software testing, the reasons behind the necessity of testing, what test objectives are, and the principles of successful testing.You will also understand the fundamental test process, the activities & work products.
What is Testing?
Software systems have become very fundamental part of our day-to-day life. Every day we use different types of applications in different domains, from business applications ( e.g., banking ) to consumer products (e.g., mobile). However, most people have had an experience with software that did not work as expected: an error while paying a bill online, a delay while processing an ATM card transaction and a web that did not load correctly are common examples of problems that may happen because of software faults.
Software that does not work as intended can lead to loss of money and time, bad business reputation or even loss of lives. This is why it is very much necessary that the software gets tested before it goes to production. Software testing is not only limited to executing the software and observing the results.Software testing is a process which consists of a series of activities such as test planning, analysis, test designing, test implementation, reporting test progress and results, and evaluation of the quality of the test object.
Some testing involves the execution of the system under test; such testing is called dynamic testing. There is another type of testing that does not involve execution of the system under test; such testing is called static testing.
Typical Objectives of Testing
For any type of software project, the objectives of testing may include the following:
- To evaluate various work products such as requirements, user stories, design, and code
- To verify whether all specified requirements have been accomplished
- To validate whether the test object is complete and works as per the expectation of the users and other stakeholders
- To build confidence in the quality level of the test object
- To prevent defects
- To find failures and defects
- To provide enough information to stakeholders so that they can make informed decisions, especially regarding the quality level of the test object
- To reduce the level of risk of inadequate software quality
- To comply with the contractual, legal, or regulatory requirements or standards
- To verify the compliance of the test object with such requirements or standards
The objectives of the testing may vary depending on the context of the system under test, test level and the SDLC model followed. For example:
- During unit testing, one of the objectives could be to find as many failures so that the defects can be found and fixed early. Another objective may be to increase code coverage of the unit tests.
- During user acceptance testing, one objective may be to confirm that the system works as expected and satisfies requirements. Another objective of this testing may be to give information to stakeholders about the risk of releasing the system at a given time.