You are on page 1of 27

Software Test Engineering and Techniques

An Overview

Software Testing

Testing is the process of executing a


program or a system with the intent of
finding errors.
- Glen Myers, The Art of Software Testing, 1979.

Understanding the Testing


Challenges

Testing is an integral part of software


development life cycle and should start at the
Requirement phase of SDLC.

Testing provides adequate assurance that the


associated business risks are reduced to an
acceptable level.

Testing identifies errors, and appears to place


the blame for those errors on the development
organization.

Testing is an art, it requires skills and patience.

Quality goal is optimize the production process


to the extent that the rework is eliminated and
inspection is built into the production process.

Testing Challenges to be
considered.

Testing is not essential for delivery.

Testing is often unstructured, ill defined and


therefore, subjective.

Testing is often not managed.

Testing itself is error-prone.

Testing is expensive.

Cant test quality into software.

Sustained Engineering Costs

Microsoft issued 60 patches for Windows 2000


in 2001

Security patches cost an enterprise customer


about $300,000 to install

It costs Microsoft about $100,000 per patch

Software Development Life


Cycle

SDLC
Requirement

Design

Testing

Implementation

Maintenance

What we you Testing for ?

Determine whether the system meets


specifications (producer view)

Determine whether the system meets


business and user needs (customer view)

Definition of Software Testing

Testing is any activity aimed at evaluating


an attribute or capability of a program or
system and determining that it meets
required result.
- Hetzel, 1983

Software Test Engineering

Testing Techniques

White Box Testing

Black Box Testing

Testing Methods

Unit Testing

Integration Testing

System Testing

Acceptance Testing

Testing Process

Testing Process

Test Strategy

Test Plan

Test Cases

Defect Report

Test Status Report

Final Test Report

Risks

Risk is the potential for loss in an


organization

Risks generated by computer technology

Testing Risks

Quality Risks

Test Strategy

The Strategy must address the risks and


present a process that can reduce those
risks.
Components of Testing Strategy:

Test Factors

Test Phase

Test Factors

Correctness

Ease of Use

Authorization

Maintainability

File Integrity

Portability

Audit Trail

Coupling

Continuity of
processing

Performance

Ease of Operation

Service Level

Access Control

Compliance

Reliability

Test Phase

The phase of the system development life


cycle in which testing will occur.

Analysis
and
design
errors
64%

Coding
error 36%

Test Plan
If you fail to plan, plan to fail.

A document that defines the overall testing


objectives and approach is called test plan.

Documented tests are repeatable, controllable,


and insure adequate test coverage when
executed.

Test Cases

A document describing a set of test inputs,


execution conditions, and expected results
developed for a particular objective, such
as to exercise a particular program path or
to verify compliance with a specific
requirement.

Tests Execution
Too little testing is a crime too much
testing is a sin.

Quality goals defined at the start of the


project have been met

Defect Life Cycle

Log the bug

Analyze the bug (Impact Analysis)

Assign the bug

Fix the bug

Retest the bug

Close the bug

Defect Report
Report generated by testers describing the
complete details of the defect. It includes
test case ID, testers name, date of testing,
bug details, severity, priority etc.

Test Status Report

Test process should produce continuous


series of reports that describe the status of
testing.

The frequency of the test reports should be


at the discretion of the team, and based on
the extensiveness of the test process.

Final Test Report

Three Objectives

Define Scope of Testing

Present Test Results

Draw Conclusions/Recommendations

Two Goals:

Determine whether the system is ready


for production.

Provide Data for Long Term Detection of


problem functions

Questions ?

Thanks