Chapter 1: Software testing basics
What is software testing?
• a quality product/software to business (stakeholders)
• a product /software as business (stakeholders) expected or meets the business requirements.
In ideal case, software testing is to provide 'bug free system'.
IEEE 1059 Software testing is a process of analysing a software item to detect the differences between existing and required conditions (defects/errors/bugs) and to evaluate the features of the system/product item.
Other definitions of software testing are,
• Software testing is a process to check the quality.
• It is the process of verifying that a system/product satisfies its specified requirements or identifying the differences between expected and actual results.
• The process of evaluating a system/product or its component by manual or automated means to verify that it satisfies the stated requirements.
• Testing is the process consisting of testing life cycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that developed product /software satisfy specified requirements, to ensure that product are fit for purpose.
• The process of exercising system/product with the intent of ensuring that the system/product meets its requirements and user expectations and doesn't fail in an unacceptable manner.
What are the objectives of Software testing?The objective of software testing is to check,
• To ensure that software/product works correctly
• To ensure that software/product is defect free
• To ensure that software/product does what it is supposed to do
• Preventing a software/product from defects
• To avoid defects multiplication
• It helps us in learning the reliability of software
• Gaining confidence about the level of quality and providing information
Why testing is important?In our daily life, we come across a software or product that did not work as expected. That non functional product or software can have a huge impact on an organisation. It can lead to,
• Damage organisation or business reputation in market
• Loss of customers means loss of money
• And longer the defect remains, the more expensive it is to remove it
So to avoid these, testing plays a vital role.
What is an error, bug, defect & failure?If there is any mistake in coding then that's called Error.
If the same error is found by a tester while testing then that's called Bug.
If same bug is given to developer to fix it then that's called Defect , Defect is the difference between expected result and actual result
And finally when a defect is encountered, it may result in a failure. A failure may be caused by many faults or a fault can cause many failures.
In other words,
Error: The human action producing an incorrect result. Errors are inevitable. One error may cause several defects and various errors may cause identical defects.
Defect: The manifestation of error in software. Defect can occur anywhere in business specification document, system specification document, source code, testing etc.
Failure: In the end, the deviation of the software/product from its expected delivery or service. Failures are caused by defects in the software. A particular failure in a software may be caused by several defects & some defects may never cause a failure.