CHAPTER 1

Basics of Software Testing
****************************

THE DEFINITION OF TESTINGTesting is a process designed to
• Prove that the program is error free
• Establish that the software performs its functions correctly
• Establish with confidence that the software does its job fully

Concepts - Testing is the task of locating errors.

GOALS OF TESTING1. Find cases where the program does not do what it is supposed to do.
2. Find cases where the program does things it is not supposed to do.
The first goal refers to specifications which were not satisfied by the program while the second goal refers to unwanted side-effects.
Defects:
  • Not satisfying the Customer’s requirements.
  • Variance from the desired product.
  • Expected result is not equal to actual result.
It is defined as the lack of something necessary or desirable for completion or perfection. In other words, An imperfection that causes inadequacy or failure,

Defect Status
New Defect - Defect detected recently.
Open - Defect open for rectification.
Fixed - Open for rectification but not yet rectified.
Reopen - Again open for rectification.
Closed - Defect is rectified.
Rejected - Defect cannot be rectified.

Defects severity
Critical - we cant proceed with the application.
Major - we can proceed with the application.
Minor - Defects are negligible.

Defects priority
High - If it is critical
Medium - If it is major
Low - If it is Minor
Software Testing:
* Process of evaluating defects in a software application.
* Software testing is a process of analyzing or operating software for the purpose of finding bugs.
* According to the definition, testing can involve either "analyzing" or "operating" software.
* Test activities that are associated with analyzing the products of software development are called static testing. Static testing includes code inspections, walkthroughs, and desk checks.
* In contrast, test activities that involve operating the software are called dynamic testing.
* It’s a process of evaluating the system by manual or automation means and verifies that it satisfies specified requests and identifies the difference between expected and actual results.
Why Software Testing?
  • Software Testing is important as it may cause mission failure, impact on operational performance and reliability if not done properly.
  • Effective Software Testing delivers quality products satisfying user’s requirements, needs and expectations.
  • To unearth and correct defects.
  • To detect defects early and to reduce cost of defect fixing.
  • To ensure that product works as user expected it to.
  • To avoid user detecting problems.
Participants of Software Testing:
  • Software Customer.
  • Software User.
  • Software Developer.
  • Software Tester.
  • Information service management. (Group of people who gathers information from customers)
  • Senior Organization management. (Team leader and project leaders)
Basic Testing Types:

Static - review of documents.

Dynamic
Types
Functionality : Testing Functionality of application
Performance : Testing performance of the application