A report submitted in fulfillment of the requirements for coursework 1 for module CO3095 Software Measurement and Quality Assurance; Department of Computer science, University of Leicester.
The main objective of this report is to examine the benefits gained from the quality assurance techniques that are found in an agile software development such as SCRUM or XP; in contrast to those provided by the traditional V-model life cycle.
TABLE OF CONTENTS
3. Agile Software Development (Scrum)
b. Risk Assessment
This report will briefly define the V-Model, agile software development (ASD) and an ASD methodology called scrum. Following with a thorough comparison of quality assurance techniques in the V-Model against those used in scrum. Concluding with an assessment of the risks involved in moving from V-Model to scrum, as well as identifying the expected benefits and limitations of such a shift.
In this section, we will study the V-model; whilst examining briefly the pros and cons of the V-Model.
V-model is a software development life cycle that constructs a relationship between the software development and the testing stages, as it is shown in Figure 2.1 graphically. The left side of the „V‟ represents the development process that takes place in constructing the software; whereas the right side of the „V‟ reflects the testing phases to ensure quality within the software produced.
Figure 2.1: V-Model (from Takanen, Demott & Miller, 2008: pg.78)
Page | 1
Here is a description of the phases without going into much detail as they are selfexplanatory;
In the Requirements phase the user/business requirements are defined for the proposed system. The Acceptance test design is established in this phase.
System specification phase is where the developers analyse the requirements at a high level and decide on how to meet the requirements. By suggesting methods, software and hardware required to meet the criteria set in the requirements document. The System test design is established in this phase.
Architectural Design phase makes considerations on high-level integration of components that the system will require (e.g. database, interface, web server). The Integration test design is established in this phase.
The Detailed Design phase explains in a lot of detail, how the processes will be handled for each unit. Then the system is implemented. The Unit test design is established in this phase.
Unit testing tests the components individually and check if they meet the criteria defined in the detailed design.
Integration testing tests distinct components linked together to identify if errors exist during or after integration.
System testing tests the complete system, to check if the requirements criteria are met.
Acceptance testing is usually carried out by the user/customer to check if their desires that were set in the requirements phase are all met.
The preceding phase must be complete and approved, in order for the following phase to commence; this is recurring for all phases. This assures quality in the software as every aspect of the development and testing is covered in an easy to manage step by step process with clear sign-off points.
The advantages of the V-Model are as follows;
The testing team are involved from early on in the development; as they have a good understanding of the project. “They expect that specialist testers are involved from requirements definition onward.” (Evans, 2004:203)
Page | 2
The planning and testing takes place prior to coding, therefore less coding faults are encountered in the future.