From the course: ISTQB Foundation Cert Prep

What is testing?

- [Tutor] There is a very common misconception that software testing is the act of using a piece of software or a system and reporting if it works. The reality is that there are many different sides to the testing process, including, but not limited to, test planning, test execution, analyzing results, designing and implementing tests, reporting test progress, and evaluating the system under test. There is also the difference between dynamic and static testing. If a system or component is under test, then it is known as a dynamic test. If a system is not directly being used as part of the testing, then it is a static test. A form of dynamic testing can be the execution of a workflow within a system to ensure that it works, often seen as a normal testing activity. A form of static testing could be reading a technical description of the system that has not yet been created and asking questions that lead to changes in the design based on issues not yet introduced into the system. Another misconception about software testing is that it focuses entirely on verifying the user stories and other requirements created during the system's making. It's true that testing does focus on ensuring that a system meets certain requirements, but it also involves validation. This can include checking the system under test will meet user needs such as accessibility. For a typical project, the objectives of testing may include some of the following: preventing defects by evaluating requirements, user stories, designs, and code, verifying if all specified requirements have been fulfilled, checking whether the system under test is complete and to validate if it works as the users and other stakeholders expect, to build confidence in the system under test, to find defects and failures, thus reducing the level of risk of inadequate software, to provide sufficient information to stakeholders to allow them to make informed decisions regarding the system under test, and to comply with contractual, legal, or regulatory requirements or standards. Within testing it's also important to understand the difference between testing and debugging. Executing tests can show failures that are caused by defects in the system. Debugging is the development activity that finds, analyzes, and fixes such defects. However, in agile development and in some other software development life cycles, testers maybe involved in debugging and component testing.

Contents