0% found this document useful (0 votes)
14 views

Software_Testing_Overview

Uploaded by

fayaz4pc
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views

Software_Testing_Overview

Uploaded by

fayaz4pc
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Software Testing Overview

Software testing is the act of checking whether software satisfies expectations.

It provides objective, independent information about the quality of software and the risks of its

failure.

Software testing can determine correctness for specific scenarios but not for all scenarios and

cannot find all bugs.

Principles of Software Testing:

1. Measures correctness using criteria from an oracle (e.g., specifications, user expectations).

2. Includes dynamic testing (running software) and static testing (code/documentation review).

3. Answers: "Does the software meet its requirements?"

Approach:

- Pyramid structure: Most tests should be unit tests, followed by integration tests, with the fewest

being end-to-end tests.

Economics:

- NIST reported in 2002 that software bugs cost the U.S. $59.5 billion annually.

- Outsourcing testing is common in China, the Philippines, and India.

History:

- Glenford J. Myers introduced the separation of debugging and testing in 1979.

Goals of Testing:

1. Finding bugs: Detect defects causing undesirable results.


2. Ensuring requirements are satisfied: Identify gaps in functional or non-functional requirements.

3. Code coverage: Testing combinations of inputs and preconditions to maximize coverage.

Types of Testing:

1. Static Testing: Reviews, inspections, and syntax checks.

2. Dynamic Testing: Running the software for validation.

3. Passive Testing: Verifying system behavior without interaction.

4. Exploratory Testing: Simultaneous learning, test design, and execution.

5. Black-box Testing: Focus on functionality without knowing the code.

6. White-box Testing: Focus on internal structures and code paths.

7. Grey-box Testing: Combines black-box and white-box techniques.

8. Installation Testing: Verifies installation procedures.

9. Compatibility Testing: Ensures compatibility with other software or hardware.

Techniques and Levels:

- Unit Testing: Tests individual components or modules.

- Integration Testing: Tests groups of modules.

- System Testing: Tests the complete software system.

- Regression Testing: Ensures changes do not introduce new defects.

Key Methods:

- Visual Testing: Captures and communicates failures using videos/screenshots.

- Smoke Testing: Minimal checks to ensure basic functionality.

- Sanity Testing: Confirms if further testing is reasonable.

Limitations:

- Complete testing of all scenarios is not feasible.


- Defects in rare conditions or non-functional aspects can be hard to find.

This document summarizes key aspects of software testing for understanding its importance and

applications.

You might also like