Sunday 29 September 2013

MY WORDS FOR SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

Before going to the Software Testing Life Cycle in Software Testing, 
we need to know how the software is developed and its Life Cycle in Software Testing. SDLC is Software Development Life Cycle, it is a systematic approach to develop a software. Software Development Life Cycle, or Software Development Process, defines the steps/stages/phases in the building of software.

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)


The Software Development life cycle models describe phases of the software cycle and the order in which those phases are executed. Requirements are translated into design. Code is produced according to the design which is called development phase. After coding and development the testing verifies the deliverable of the implementation phase against requirements. Each phase produces deliverable's required by the next phase in the life cycle. 

There are following six phases in  Software development life cycle model:

PHASE - I ) Requirement Planning gathering and analysis:- The Business Analyst(BA) will gather the information of the company through Documents which is predefined and goes to client.
He would collect all the information of what has to be developed and in how many days and all the basic requirements of the company.  Business requirements are gathered in this phase. This phase is the main focus of the project managers and stake holders. Meetings with managers, stake holders and users are held in order to determine the requirements like; Who is going to use the system? How will they use the system? After requirement gathering these requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied.
For the proof of his collection of information the Business Analyst(BA) would prepare one document called as either 
Business Development Design 
Business Requirement Specification
User Requirement Specification
Customer Requirement Specification
Gathering as much information as possible about the details and Business specifications of the desired software from the client. This is nothing but the Requirements gathering stage.  


PHASE - II ) Design Phase :- The designing will be Divide in Two stages:-
(i)High Level Designing(HLD):- In this level of Designing the project is divided into number of modules.
The High Level Designing is done by Technical Manager or Chief Architect.
(ii)Low Level Designing(LLD):- In this level of Designing the modules are further divided into number of sub-modules.
The Low Level Designing is done by Team Lead(TL).
In this Phase the Chief Architect would prepare the Technical Design Document or Detail Design Document. In this phase the system and software design is prepared from the requirement specifications which were studied in the first phase. The system design specifications serve as input for the next phase of the model. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture. 

PHASE - III ) Implementation or coding Phase :- In this Phase the Developers would write the Programs for the Project by following the Coding standards. On receiving system design documents, the work is divided in modules/units and actual coding is started. In this phase the Developers would prepare the Source Code. This is the longest phase of the software development life cycle. Certain functionality may be out of scope of the project as a function of cost or as a result of unclear requirements at the start of development. If the development is done externally, this document can be considered a legal document so that if there are ever disputes, any ambiguity of what was promised to the client can be clarified.


PHASE - IV ) Testing Phase :- After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. Software testing is an integral and important phase of the software development process. This part of the process ensures that defects are recognized as soon as possible. During this phase unit testing, integration testing, system testing, acceptance testing are done.
1.In the Starting phase when the Business Development Design is prepared the Test Engineer would study the document, and send a Review Report to Business Analyst.
2.Review Report in Software Testing is nothing but a document prepared by the Test Engineer while studying the Business Development Design document and the points which he cannot understand and not clear are written in that report and sent to Business Analyst.
3.And the Test Engineer would write the Test Cases of application.
4.In Manual Testing there would be up-to 60% defect free and in Automation Testing it would be 95% defect free.
5.In end Phase Testing people document called as Defect Document.


PHASE - V ) Deployment Phase :-  Deployment starts directly after the code is appropriately tested, approved for release, and sold or otherwise distributed into a production environment.After successful testing the product is delivered / deployed to the customer for their use. This may involve installation, customization (such as by setting parameters to the customer's values), testing, and possibly an extended period of evaluation. 
1.In Start Phase after the project is done a mailis given to the client mentioning the completing of the project.
2.This is Known as the Software Delivery Document.
3.The project is than tested by client and is called as the User Acceptance Testing.
4.The project is than installed in the client environment and there testing is done called Port Testing. when installing if any problem occurs the maintenance people would write the Deployment Document to Project Manager.
5.And Finally if client want to have some changes in the software and software changes are done by Maintenance

PHASE - VI ) Maintenance Phase :- Once when the customers starts using the developed system then the actual problems comes up and needs to be solved from time to time. Software training and support is important, as software is only effective if it is used correctly This process where the care is taken for the developed product is known as maintenance. and enhancing software to cope with newly discovered faults or requirements can take substantial time and effort, as missed requirements may force redesign of the software.

No comments: