Software Testing and Software Development Lifecycles 1. Introduction The various activities which are undertaken when developing software are commonly modelled as a software development lifecycle. The software development lifecycle begins with the identification of a requirement for software and ends with the formal verification of the developed software against that requirement.32339
The software development lifecycle does not exist by itself, it is in fact part of an overall product lifecycle. Within the product lifecycle, software will undergo maintenance to correct errors and to comply with changes to requirements. The simplest overall form is where the product is just software, but it can become much more complicated, with multiple software developments each forming part of an overall system to comprise a product.
There are a number of different models for software development lifecycles. One thing which all models have in common, is that at some point in the lifecycle, software has to be tested. This paper outlines some of the more commonly used software development lifecycles, with particular emphasis on the testing activities in each model.
2. Sequential Lifecycle Models
The software development lifecycle begins with the identification of a requirement for software and ends with the formal verification of the developed software against that requirement. Traditionally, the models used for the software development lifecycle have been sequential, with the development progressing through a number of well defined phases. The sequential phases are usually represented by a V or waterfall diagram. These models are respectively called a V lifecycle model and a waterfall lifecycle model.
Figure 1 V Lifecycle Model
There are in fact many variations of V and waterfall lifecycle models, introducing different phases to the lifecycle and creating different boundaries between phases. The following set of lifecycle phases fits in with the practices of most professional software developers.
• The Requirements phase, in which the requirements for the software are gathered and analyzed, to produce a complete and unambiguous specification of what the software is required to do.
• The Architectural Design phase, where a software architecture for the implementation of the requirements is designed and specified, identifying the components within the software and the relationships between the components.
Figure 2 Waterfall Lifecycle Model
• The Detailed Design phase, where the detailed implementation of each component is specified.
• The Code and Unit Test phase, in which each component of the software is coded and tested to verify that it faithfully implements the detailed design.
• The Software Integration phase, in which progressively larger groups of tested software components are integrated and tested until the software works as a whole.
• The System Integration phase, in which the software is integrated to the overall product and tested.
• The Acceptance Testing phase, where tests are applied and witnessed to validate that the software faithfully implements the specified requirements. Software specifications will be products of the first three phases of this lifecycle model.The remaining four phases all involve testing the software at various levels, requiring test specifications against which the testing will be conducted as an input to each of these phases.
3. Progressive Development Lifecycle Models
The sequential V and waterfall lifecycle models represent an idealised model of software development. Other lifecycle models may be used for a number of reasons, such as volatility of requirements, or a need for an interim system with reduced functionality when long timescales are involved. As an example of other lifecycle models, let us look at progressive development and iterative lifecycle models.
A common problem with software development is that software is needed quickly, but it will take a long time to fully develop. The solution is to form a compromise between timescales and functionality, providing "interim" deliveries of software, with reduced functionality, but serving as a stepping stones towards the fully functional software. It is also possible to use such a stepping stone approach as a means of reducing risk.
- 上一篇:学生考勤管理系统英文文献和中文翻译
- 下一篇:Android系统英文文献和中文翻译
-
-
-
-
-
-
-
酸性水汽提装置总汽提塔设计+CAD图纸
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
乳业同业并购式全产业链...
电站锅炉暖风器设计任务书
杂拟谷盗体内共生菌沃尔...
java+mysql车辆管理系统的设计+源代码
中考体育项目与体育教学合理结合的研究
大众媒体对公共政策制定的影响
河岸冲刷和泥沙淤积的监测国内外研究现状