Where does Software Quality Assurance fit into the Software development Lifecycle? - Boston business development



The Phases involved in a software development lifecycle are:



Initiation/planning



Requirements gathering and analysis



Design



Build or coding

Testing



Operations and maintenance



Initiation/planning



To generate a high-level view of the intended project and determine the goals of the project. The feasibility study is sometimes used to present the project to upper management in an attempt to gain funding. Projects are typically evaluated in three areas of feasibility: economical, operational or organizational, and technical. Furthermore, it is also used as a reference to keep the project on track and to evaluate the progress of the MIS team.[8] The MIS is also a complement of those phases. This phase is also called as analysis phase.



Requirements gathering and analysis



The goal of systems analysis is to determine where the problem is in an attempt to fix the system. This step involves Decomposition computer science breaking down the system in different pieces to analyze the situation, analyzing project goals, breaking down what needs to be created and attempting to engage users so that definite requirements can be defined. Requirements Gathering sometimes requires individuals/teams from client as well as service provider sides to get detailed and accurate requirements.



Design



In systems design functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The output of this stage will describe the new system as a collection of modules or subsystems.



The design stage takes as its initial input the requirements identified in the approved requirements document. For each requirement, a set of one or more design elements will be produced as a result of interviews, workshops, and/or prototype efforts. Design elements describe the desired software features in detail, and generally include functional hierarchy diagrams, screen layout diagrams, tables of business rules, business process diagrams, pseudocode, and a complete entity-relationship diagram with a full data dictionary. These design elements are intended to describe the software in sufficient detail that skilled programmers may develop the software with minimal additional input.



Build or coding



Modular design| Modular and subsystem programming code will be accomplished during this stage. Unit testing and module testing are done in this stage by the developers. This stage is intermingled with the next in that individual modules will need testing before integration to the main project.



Testing



The code is tested at various levels in software testing. Unit, system and user acceptance testings are often performed. This is a grey area as many different opinions exist as to what the stages of testing are and how much if any iteration occurs. Iteration is not generally part of the waterfall model, but usually some occur at this stage.





Below are the following types of testing:



Data set testing.



Unit testing



System testing



Integration testing



Black box testing



White box testing



Regression testing



Automation testing



User acceptance testing



Performance testing



Operations and maintenance



The deployment of the system includes changes and enhancements before the decommissioning or sunset of the system. Maintaining the system is an important aspect of SDLC. As key personnel change positions in the organization, new changes will be implemented, which will require system updates.

Software Quality Assurance



Software Quality Assurance must not be mistaken for software testing. Often these terms are used interchangeably, perhaps because in many organizations the same people perform both software quality assurance (SQA) activities and software test activities. However, QA refers to the monitoring the processes that are used throughout the development lifecycle. Software test is about detecting defects in work products. Therefore Software Quality Assurance must be carried out in all phases of the development lifecycle