20
The life cycle of the application begins when an application is first conceived and ends when it is no longer in use. It includes the following aspects: initial concept; requirements analysis; functional design; internal design; documentation planning; test planning; coding; document preparation; integration; testing; maintenance; updates; retesting; technical support etc. Software Life Cycle

Software Development Life Cycle Testingtypes

Embed Size (px)

Citation preview

Page 1: Software Development Life Cycle Testingtypes

The life cycle of the application begins when an application is first conceived and ends when it is no longer in use. It includes the following aspects:

initial concept; requirements analysis;functional design; internal design;documentation planning; test planning; coding; document preparation; integration; testing;

maintenance; updates; retesting; technical support etc.

Software Life Cycle

Page 2: Software Development Life Cycle Testingtypes

Software Development Life Cycle

The period of time that begins with the decision to develop a software product and ends when the software is delivered. This cycle typically includes a requirements phase, design phase, implementation phase, test phase, and sometimes,

installation and checkout phase. Source: IEEE Std 610.12-1990.

Page 3: Software Development Life Cycle Testingtypes

SDLC stages

1. Requirements Analysis: - determine real problem. - decide what is needed to solve it

2. Specification: - define WHAT system will do (the specification) - define acceptance tests

3. Design: - plan HOW to meet specification - Design the program structure (break the program into components (modules) ) - Design the details - Write the design description & module specs

4. Implementation: - code program modules - integrate system - write detailed documentation

5. System Testing and Debugging: - Check the operation - try to FIND and FIX errors

6. Installation: - Train users - Switch from previous system

7. Operation and Maintenance: - Use - Fix problems - Enhance program

Page 4: Software Development Life Cycle Testingtypes

SDLC Models

Waterfall ModelV Model---------------------------Iterative models:

Incremental DeliveryIncremental DevelopmentEvolutionary DevelopmentSpiral Development

---------------------------Prototyping

Page 5: Software Development Life Cycle Testingtypes

SDLC: Waterfall Model structure

Problem statement Requirements Architecture & Design Implementation

System Testing Installation Operation & Maintenance

Page 6: Software Development Life Cycle Testingtypes

SDLC: Waterfall Model definitions

The waterfall model is a systematic sequential approach to software development modeled after a conventional engineering cycle. One phase is completed before the

next is entered ****************************************************

A model of the software development process in which the constituent activities, typically a concept phase, requirements phase, design phase, implementation

phase, test phase, and installation and checkout phase, are performed in that order, possibly with overlap but

with little or no iteration. Source: IEEE Std 610.12-1990.

Page 7: Software Development Life Cycle Testingtypes

Problems in Waterfall Model

Problems for the Developer •Client does not know what is needed

•Payment delays (until product is ready)•Lack of user commitment and input

•Changes in requirements cause a problemProblems for the Client

•Developer doesn't understand our problems •Lack of visible progress

•Cannot change requirements •Don't know what is possible •Training problems (late start)

Page 8: Software Development Life Cycle Testingtypes

Testing types (a)

White-box testing – involves knowledge of code analysis. Analyzes program structure and functionality of particular units

and components at code level.

Black-Box testing – testing of program without knowing internal code structure, using only external level (GUI, commands).

Page 9: Software Development Life Cycle Testingtypes

Testing Types (b)

Sequence of testing types in SDLC

Unit Testing (white-box testing)Component Testing (white-box testing)

------------------------Integration Testing

System TestingAcceptance Testing-------------------------

B-version testing-------------------------

User Acceptance Testing

T i m e

Page 10: Software Development Life Cycle Testingtypes

Unit Testing

Unit testing is a white-box testing and is dealing with code analysis.***************************************************

Testing a program unit, typically developed by a single individual, to determine that is free of data, logic, or standards errors. Involves code analysis. Requires

knowledge of dynamic analysis (equivalent partitioning, boundary value analysis, cause-effect graphing, logic-based testing, random testing, and syntax testing) and static analysis (complete path testing, decision testing,

condition testing, and data-flow testing). Source: SWE-BOK CMU/SEI-99-TR-004.

Page 11: Software Development Life Cycle Testingtypes

Component Testing

Component Testing is usually white-box testing and is dealing with code analysis of program components

*********************************************

Testing of individual hardware or software components or groups of related components.

Source: IEEE Std 610.12-1990.

Page 12: Software Development Life Cycle Testingtypes

Integration Testing

Testing in which software components, hardware components, or both are combined and tested to evaluate

the interaction between them.

Source: IEEE Std 610.12-1990.

Page 13: Software Development Life Cycle Testingtypes

System Testing

Testing conducted on a complete, integrated system to evaluate the system's compliance with its specified

requirements.

Source: IEEE Std 610.12-1990.

Page 14: Software Development Life Cycle Testingtypes

Acceptance Testing

Formal testing to determine if a system satisfies its acceptance criteria and to enable the customer to

determine whether to accept the system.

Source: SEI-93-TR-25.

Page 15: Software Development Life Cycle Testingtypes

Testing Types (b)

Functional TestingGUI testing

-----------------------Load TestingStress Testing

Performance Testing---------------------

Testing Documentation---------------------

Specific testing Types

Page 16: Software Development Life Cycle Testingtypes

Verification and Validation

The process of determining whether the requirements for a system or component are complete and correct, the

products of each development phase fulfill the requirements or conditions imposed by the previous phase, and the final system or component complies with specified

requirements.

Source: IEEE Std 610.12-1990.

Page 17: Software Development Life Cycle Testingtypes

Verification Testing

Intermediate, structural testing

The process of evaluating a system or component to determine whether or not the products of a given development phase satisfy the condition imposed at the start of that phase.

Source: ESI.

Examples:- Did the builder put the beams in the right place?- Is the wiring of the house up to legal code?

Page 18: Software Development Life Cycle Testingtypes

Validation testing

Final, functional testing

The process of evaluating a system or component at the end of the development process to determine whether or not it satisfies specified requirements.

Source: ESI.

Examples:- Does the house have the right number of closets?- Is the kitchen designed the way the homeowner wants it?- Did we met the user requirements?

Page 19: Software Development Life Cycle Testingtypes

Scalability

It is the ability of a computer application or product (hardware or software) to continue to function well as it (or its context) is

changed in size or volume in order to meet a user need. Typically, the rescaling is to a larger size or volume. The

rescaling can be of the product itself (for example, a line of computer systems of different sizes in terms of storage, RAM,

and so forth) or in the scalable object's movement to a new context (for example, a new operating system)

Source:http://search390.techtarget.com/sDefinition/0,,sid10_gci212940,00.html

Page 20: Software Development Life Cycle Testingtypes

Traveling of Bug Report

Team Leader – bug review

This is not a bug

This is known problem

This is planned to do in the futureThis is a bug

Information in bug report is insufficient

Bug Statusrejected

Bug Statusduplicate

Bug Statusdeferred

Bug Status assigned

Bug Status: in-review

Bug Statusfixed

Developer – fixing the bug

Tester – verifying bug fix

Bug is fixedBug is not fixed

Bug Status assigned

Bug Status closed

Tester – submitting new bug report Bug Status submitted