Upload
vladimir-zaremba
View
10.331
Download
0
Embed Size (px)
Citation preview
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
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.
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
SDLC Models
Waterfall ModelV Model---------------------------Iterative models:
Incremental DeliveryIncremental DevelopmentEvolutionary DevelopmentSpiral Development
---------------------------Prototyping
SDLC: Waterfall Model structure
Problem statement Requirements Architecture & Design Implementation
System Testing Installation Operation & Maintenance
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.
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)
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).
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
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.
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.
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.
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.
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.
Testing Types (b)
Functional TestingGUI testing
-----------------------Load TestingStress Testing
Performance Testing---------------------
Testing Documentation---------------------
Specific testing Types
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.
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?
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?
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
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