Home > Software Testing Fundamental > Software Development Life Cycle

Software Development Life Cycle

What is Software?

Software is a set of instructions executed by a computer which are designed to perform a pre-defined task generally these set of instructions is termed as program. They are two types of software:

1        System Software: The software which helps the computer to function.

E.g. Operating System XP, Vista, Linux, Mac

2        Application Software: The software which helps user to perform tasks.

E.g. Spread sheet, paint, word processor

Generally, we think that Software Product is any executable file i.e EXE, but it’s not true. Software Product typically consists of:

  • Setup and Installation Files
  • Product Support Information
  • User’s Manual
  • Help Files
  • Samples and examples
  • Read me file
  • Labels and Marketing Material

As student and newbie, we develop small software but they are much different from what corporate software companies use to develop a Software Product. A software Product may involve thousand of team member working on their specific functionality, doing huge documentation, maintaining schedules bounded by deadlines. In Software Industry, deadlines are so much important because if product is not released in time, it may loose its credibility in market.

Its popular saying that three things should never be seen in the process of being created i.e. laws, sausage and software. It is because the process is so messy and disgusting that it’s best to just wait and see the final result. The Big companies like Microsoft, Oracle, Infosys uses industries best practices to produce successful Software and they keep on evolving the best method to minimize the errors and produce quality software. 

Software Development Life Cycle: The processes used create a software product from its initial idea to its public release is known as Software Development Lifecycle Model.

There are four basic SDLC models, commonly used, with most others just variations of these, are as follows:

1        Big-Bang

2        Code-and-fix

3        Waterfall

4        Spiral

Each models mentioned above has its own advantages and disadvantages, and no model is necessarily the best for a particular project.

1. Big-Bang-This model is based upon theory of the creation of the universe, is the big-bang theory. It states that billions of years ago the universe was created in a single huge explosion of nearly infinite energy, resulting in formation of universe (earth, mars etc).

Big Bang Model of Testing

Big Bang Model of Testing

 
 
The big-bang model for software development follows much the same principle. A huge amount of people and money is put together and out comes the software product. The best part of big-bang model is that it’s simple so there is little if any planning, scheduling or formal development process. It’s the process that is used if the product requirements aren’t clear and the final release date is completely flexible. In this model there is little or no formal testing is done. If testing does occur, it is conducted just before the product released. 

2. Code and fix model-It is development model that usually the one that most project teams fall by default. A team using this model usually starts with a rough idea of what product they want, does some simple design, and then proceeds into a long repeating cycle of coding, testing and fixing bugs.

Code and Fix Model

Code and Fix Model

 

In this there is very little overhead for planning and documentation. So the project team can show results immediately. For this reason, the code and fix model works very well for small projects. Like the big-bang model, testing isn’t specifically called out in code-and-fix model but does play a significant role between the coding and fixing.

3. Waterfall Model– It is one of the basic SDLC model used by software development teams. It’s been around forever. It’s simple, elegant and makes sense.

A project using the waterfall model moves down a series of steps starting from an initial idea of product to a final product. At the end of each step, the project team holds a review to determine if they are ready to move to the next step. If the project isn’t ready to progress, it remains at that level until it’s ready.

Waterfall Model

Waterfall Model

 

From a testing perspective, the waterfall model offers one huge advantage over the other models i.e. everything is carefully and thoroughly specified. When the software is delivered to the test group, every detail has been decided on, written down, and turned into software. From that, the test group can create a test plan and schedule the test activity. They know exactly what they are testing, and there is no question about whether something is a feature or a bug.

The big disadvantage of using this model is that testing occurs only at the end, a fundamental problem could go unnoticed in early on and not to be detected until days before product release.

 

Advantages:

1. Model is simple.

2. Easy to understand.

3. It takes less cost.

4. Clear project objectives.

5. Stable project requirements.

6. Progress of system is measurable.

7. Strict sign-off requirements.

 

Disadvantages:

1. Time consuming

2. Never backward (Traditional)

3. Little room for iteration

4. Difficulty responding to changes

5. The lifecycle can take so long that the original requirements may no longer be valid by the time the system is implemented.

6. Estimating time and costs is difficult for each stage.

7. Time consuming as the testing process starts the last stages till the build is given for testing the testers will be idle. Hence man power is wasted

 

4. Spiral Model- This model was introduced by Barry Boehm in 1986. The model is used fairly often and has proven to be an effective approach to developing software. The general idea behind the spiral model is that it is not necessary to define all detail at the beginning. The  products is started small with defining important features, and verified, and even get customer feedback and then move on to next level. This process is repeated until final product is ready.

Spiral Model

Spiral Model

Spiral model involves six steps around the spiral and they are:

  1.  Determine objectives, alternatives and constraints
  2. Identify and resolve risks
  3. Evaluate alternatives
  4. Develop and test the current level
  5. Plan the next level
  6. Decide on the approach for the next level

Spiral model is combination of little parts of every model.  Also, we get a chance to influence the product early by being involved in starting design phases.

In software industry, you may find different names for same SDLC model. Now you have an understanding of how software products are build. Each product company, each project team will choose the best model that suits their requirements. As a software tester, our objective should be to get involved in early stages of development and apply testing skills learned to produce Quality software product.

 

  1. No comments yet.
  1. No trackbacks yet.

Leave a comment