Вы находитесь на странице: 1из 6

SDLC & STLC- Overview ,Relation and Comparison

Author: Samir Sethi Date written: 21/08/2008 Declaration: I hereby declare that this document is based on my personal experiences. To the best of my knowledge, this document does not contain any material that infringes the copyrights of any other individual or organization including the customers of Infosys.

Samir Sethi

Project: RBSPR2SZ Target readers: All

1)Introduction: This Document basically focuses on basics of Software Development Life Cycle (SDLC) and Software Testing Life Cycle (STLC) and their relation SDLC: SDLC is the process followed by development team to work on the project in different phases which also includes STLC STLC: STLC is a process followed by the testing team to test the developed project .STLC is prepared by the testing team STLC is a part of SDLC. Testing starts from the requirement phase itself.(Here testing team will participate in requirements review). But the execution of tests starts from the testing phase itself.

2)Overview: 2.1 SDLC: Software life cycle models describe phases of the software cycle and the order in which those phases are executed. The general, basic model is shown below in fig(1) Each phase produces deliverables required by the next phase in the life cycle. Requirements are converted into design. Code is produced during implementation following the design (High Level Design & Detailed level Design). Testing verifies the code produced following the design (implementation phase) against requirements.

(a)Requirements In Requirement phase , requirements required for the system/software to be developed are gathered. The software to be developed must always function as part of a larger system. Hence it is necessary to start out by establishing requirements for the larger system. Both the functional and non-functional requirements are understood clearly at this stage. To achieve this many activities are done such as interview the customer to understand the requirements, interview customers end-users, study the existing software(if any), interview the customers software developers for more details on the project, and the standards the project has to follow, identify the hardware platform, software models, programming language and tools that are needed in the project. At the end of this stage Functional & non functional requirements and Interface requirements must be clearly understood

Requirements

Design

Implementation

Testing

Business Analysis

Detailed Requirements

High Level Design And Detailed Level Design High Level Design Detailed level Design Integration Test Plan Unit Test Plan

Coding & Development

Unit & Testing Integration (System, & UAT) Testing

A R T I F A C T S

User Require ments

System Requirement Specification( SRS) System Test Plan ,Acceptance Test Plan

Developed Code

Unit & Integrated Tested Code

System Tested Software for deployment

fig(1)

General Software Development Life Cycle Model

(b)Design In design phase, various design documents are created using requirements which enables software developers to create code efficiently. This is basically converting requirements to documents that enables in coding/creation of the software. Various design documents that are created in this phase are High Level design (HLD)& Detailed level Design(DLD). Along with these two, Integration Test Plan and Unit test plan are also developed which helps in integration testing & Unit testing (of all modules). (c)Implementation The design is translated into machine readable form in Implementation/coding phase and this is the longest phase of the software development life cycle. For a developer, this is the main focus of the life cycle because this is where the code is produced. If design is performed in detailed manner, then coding can be accomplished mechanistically. So basically, coding/implementation is more or less dependent on Design phase. (d)Testing Once code has been generated, program testing begins. The testing process focuses on the logical internals of the software, ensuring that all statements have been tested and code is working in predefined manner in requirements phase. Tests are conducted to uncover errors and ensure that defined input will produce actual results that agree with the required results. During this phase planned testing activities are executed. Defects are found by the testing team and are logged which are then corrected by the development team and are then retested again by the testing team. Thats how Testing Phase goes.

2.2 STLC (a) Test Strategy & Planning: A test strategy can be defined as course of action that is used to govern set of testing activities and test process evaluation. It provides high level guidance as to how testing is to be done. This is important as it helps testing to be a planned activity and can therefore be managed. Test Planning is an essential practice for an organization. In order to meet a set of goals test plan describes what specific tasks must be accomplished and who is responsible for each task. Test planning should begin early in the software life cycle in order to achieve the desired goals of the company within the budget and available time. (b)Test Design: Design phase of lifecycle involves in designing the test procedures, test data, test scenarios & test cases

Planning Strategy & Planning

Design Understanding and Design

Execution Execution

Reporting & Management Reporting Analysis

A R T I F A C T S

Test Strategy/Ap proach & Test Plan

Test Scenarios/C ases

Defects
Fig (2)

Progress Report, Cycle report, Test Summary report

Delivery Risk Analysis, Software Quality

(c) Test Execution: Test Execution is the process of executing all or selected number of test casa and observing the results. Although preparation and planning for test execution occur throughout the software development lifecycle, the execution itself typically occurs at or near the end of the SDLC. Test Execution is the most visible testing activity it also typically occurs at the end of the SDLC. Artifacts produced are the Defects which are then logged and are sent to developers for removal of the defect. (d)Test Reporting and Management: In test Reporting and Management phase test summary reports are prepared. Reports can help managers , testers, developers and SQA staff to evaluate the effectiveness of testing effort. Reports can be test cycle report, test progress report, periodic product quality report & final test summary report.

3) Relation b/w SDLC & STLC: In the early days a program was written and then tested and debugged. Testing was seen as a follow on activity which involved detection and correction of coding errors, i.e. Design Build Test But now testing is not seen as Post Development Activity and Testing Lifecycle (process)/STLC starts in tandem with the Requirement gathering phase of Software Development Process/SDLC

BIRTH

Requirements

Design

Coding

Maintenance

Fig (3) Testing

As is shown in fig.(3) testing activities starts right away from the Requirements phase and is continued in Design phase Coding phase and Maintenance phase (if applicable).

4) Comparison b/w various phases (a)Detailed Requirements in SDLCRequirements Testing in STLC: Along with requirements gathering phase, Requirement testing phase is done by testing team i.e. testing team checks for the following: Are the definitions and descriptions of the required capabilities precise enough and unambigous? Is there Freedom from internal & external contradictions? Are the Requirements complete and having complete information? Can the requirements be met in practice? Can the requirements be tested effectively? Based on the above Testing strategy and plans are developed.

Software Development Life Cycle Business Analysis Detailed Requiremen ts High Level Design Detailed Design & Developme nt Unit and Integration Testing Testing (System, SI & UAT) Transition / Rollout

Software Testing Life Cycle Requirement s Testability review User Interviews Testing Strategy Test analysis & design Functional Test scripting Nonfunctional Test planning Test data generation Defect tracking Acceptance Testing review Functional testing

fig(4) Fig (4) shows what activities are done in STLC along with various phases of SDLC

(b)High Level Design & Detailed Design & Development in SDLCDesign Testing in STLC: In High level and detailed level design Phase in SDLC, HLD (High Level Design Documents) and DLD (Detailed Level Design Documents) are prepared by development team. Simultaneously Design phase of Testing lifecycle involves in designing the test procedures, test data, test scenarios & test cases. (c)Unit, Integration, System & User Acceptance Testing in SDLCSystem/Acceptance Testing in STLC: In SDLC in this phase, Unit and Integration testing is done and then code is sent to the testing team for System testing & Acceptance Testing. System testing is done by Testing Team and defects that are found are logged and passed on to the Development Team which are then corrected and then sent again for retest to Testing Team. After Functional Testing, Acceptance Testing is done at the User/Client end. Thats how Development and testing team works Hand in Hand following SDLC & STLC cycles

5) KEY POINTS: 1. SDLC & STLC goes hand in hand 2. Prevention is better than cure- testing should start early both in terms of immediate testing and planning for future testing. 3. Late life-cycle fixes are generally costly, i.e. 100 times more expensive than corrections in the early phases. So it is better, more flexible & cost effective to follow SDLC & STLC simultaneously. References: 1. SDM module of E&R Generic Training Material

Вам также может понравиться