16-09-08, 07:54 PM
|
#8 (permalink)
|
Re: SDLC and Software Testing Life Cycle Software Development Life Cycle Phases SDLC adheres to important phases that are essential for developers, such as planning, analysis, design, and implementation, and are explained in the section below. There are several SDLC Models in existence. The oldest model, that was originally regarded as “the SDLC” is the waterfall model: a sequence of stages in which the output of each stage becomes the input for the next. These stages generally follow the same basic steps but many different waterfall methodologies give the steps different names and the number of steps seems to vary between 4 and 7.
There is not a definitive correct model, but the steps can be characterized and divided as follows: 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, 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 (Post & Anderson, 2006)
This phase is also called as analysis phase. Requirements Analysis
The goal of systems analysis is to find out where the problem is in attempt to fix the system. This step involves breaking down the system in different pieces and drawing diagrams to analyze the situation. Analyses project goals, breaking down functions that need to be created, and attempts to engage users so that definite requirements can be defined. Design
Functions and operations are described in detail, including screen layouts, business rules, process diagrams and other documentation. The output of this stage will be to describe the new system as a collection of modules or subsystems. Build
Modular and subsystem programming code will be accomplished during this stage. This stage is intermingled with the next in that individual modules will need testing before integration to the main project. Planning in software life cycle involves setting goals, defining targets, establishing schedules, and estimating budgets for an entire software project. Testing
The code is tested at various levels. Unit, system and user acceptance testing are often performed. This is a very 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 occurs at this stage.
Types of testing:- Data set testing
- Unit testing
- System Testing
- Integration testing
- User acceptance
Implementation
The final stage of a project or the initial development, where the software is put into production and is used by the actual business.
Types of implementation:- Documentation
- Training
- Parallel implementation
- Big-bang implementation (Direct cutover, Plunge)
- Phased implementation
- Pilot implementation
Operations and Maintenance
The life of the system which includes changes and enhancements before the decommissioning or sunset of the system. Maintaining the system is a very important aspect of SDLC. As key personnel change position in the organization, new changes will be implemented, which will require system updates. Baselines in the SDLC
Baselines are an important part of the SDLC. These baselines are established after four of the 5 phases of the SDLC and are critical to the iterative nature of the model (Blanchard & Fabrycky, 2006, p.31). Each baseline is considered as a milestone in the SDLC.
Functional Baseline: Is established after the conceptual design phase.
Allocated Baseline: Is established after the preliminary design phase.
Product Baseline: Is established after the detail design and development phase.
Updated Product Baseline: Is established after the production construction phase. Strength and Weaknesses of SDLC | Strengths | Weaknesses |
|---|
| Control. | Increased development time. | | Monitor Large projects. | Increased development cost. | | Detailed steps. | Systems must be defined up front. | | Evaluate costs and completion targets. | Rigidity. | | Documentation. | Hard to estimate costs, project overruns. | | Well defined user input. | User input is sometimes limited. | | Ease of maintenance. | | Development and design standards. | | Tolerates changes in MIS staffing. |
Very few people in the modern computing world would use a strict waterfall model for their SDLC as many modern methodologies have superseded this thinking. Some will argue that the SDLC no longer applies to models like Agile computing, but it is still a term widely in use in Technology circles.
An alternative to the SDLC is Rapid Application Development, which combines prototyping, Joint Application Development and implementation of CASE tools. The advantages of RAD are speed, reduced development cost, active user involvement in development process.
It should not be assumed that just because the waterfall model is the oldest original SDLC model that it is the most efficient system. At one time the model was beneficial mostly to the world of automating activities that were assigned to clerks and accountants. However, the world of technological evolution is demanding that systems have a greater functionality that would assist help desk technicians/administrators or information technology specialist/analyst. Software Testing Life Cycle: The test development life cycle contains the following components:
Requirements
Use Case Document
Test Plan
Test Case
Test Case execution
Report Analysis
Bug Analysis
Bug Reporting Typical interaction scenario from a user’s perspective for system requirements studies or testing. In other words, “an actual or realistic example scenario”. A use case describes the use of a system from start to finish. Use cases focus attention on aspects of a system useful to people outside of the system itself.- Users of a program are called users or clients.
- Users of an enterprise are called customers, suppliers, etc.
Use Case: A collection of possible scenarios between the system under discussion and external actors, characterized by the goal the primary actor has toward the system’s declared responsibilities, showing how the primary actor’s goal might be delivered or might fail. Use cases are goals (use cases and goals are used interchangeably) that are made up of scenarios. Scenarios consist of a sequence of steps to achieve the goal, each step in a scenario is a sub (or mini) goal of the use case. As such each sub goal represents either another use case (subordinate use case) or an autonomous action that is at the lowest level desired by our use case decomposition.
This hierarchical relationship is needed to properly model the requirements of a system being developed. A complete use case analysis requires several levels. In addition the level at which the use case is operating at it is important to understand the scope it is addressing. The level and scope are important to assure that the language and granularity of scenario steps remain consistent within the use case. There are two scopes that use cases are written from: Strategic and System. There are also three levels: Summary, User and Sub-function. Scopes: Strategic and System Strategic Scope: The goal (Use Case) is a strategic goal with respect to the system. These goals are goals of value to the organization. The use case shows how the system is used to benefit the organization.,/p> These strategic use cases will eventually use some of the same lower level (subordinate) use cases. System Scope: Use cases at system scope are bounded by the system under development. The goals represent specific functionality required of the system. The majority of the use cases are at system scope. These use cases are often steps in strategic level use cases Levels: Summary Goal , User Goal and Sub-function. Sub-function Level Use Case: A sub goal or step is below the main level of interest to the user. Examples are “logging in” and “locate a device in a DB”. Always at System Scope. User Level Use Case: This is the level of greatest interest. It represents a user task or elementary business process. A user level goal addresses the question “Does your job performance depend on how many of these you do in a day”. For example “Create Site View” or “Create New Device” would be user level goals but “Log In to System” would not. Always at System Scope. Summary Level Use Case: Written for either strategic or system scope. They represent collections of User Level Goals. For example summary goal “Configure Data Base” might include as a step, user level goal “Add Device to database”. Either at System of Strategic Scope. Test Documentation Test documentation is a required tool for managing and maintaining the testing process. Documents produced by testers should answer the following questions:- What to test? Test Plan
- How to test? Test Specification
- What are the results? Test Results Analysis Report
|
|