Posts Tagged ‘Model’

Waterfall Model:

The waterfall model is a sequential software development model in which development is seen as flowing steadily downwards (like a waterfall) through several phases.

Waterfall model was meant to function in a systematic way that takes the production of the software from the basic step going downwards towards detailing just like a Waterfall which begins at the top of the cliff and goes downwards but not backwards.

Different Phases of Waterfall Model:

Definition Study / Analysis: During this phase research is being conducted which includes brainstorming about the software, what it is going to be and what purpose is it going to fulfill.

Basic Design: If the first phase gets successfully completed and a well thought out plan for the software development has been laid then the next step involves formulating the basic design of the software on paper.

Technical Design / Detail Design:  After the basic design gets approved, then a more elaborated technical design can be planned. Here the functions of each of the part are decided and the engineering units are placed for example modules, programs etc.

Construction / Implementation: In this phase the source code of the programs is written.Testing: At this phase, the whole design and its construction is put under a test to check its functionality. If there are any errors then they will surface at this point of the process.

Integration: in the phase of Integration, the company puts it in use after the system has been successfully tested.Management and Maintenance: Maintenance and management is needed to ensure that the system will continue to perform as desired.

Advantages of Waterfall Model:

  • Waterfall model is simple to implement and also the amount of resources required for it are minimal.
  • This methodology is preferred in projects where quality is more important as compared to schedule or cost.
  • Documentation is produced at every stage of the software’s development. This makes understanding the product designing procedure, simpler.
  • After every major stage of software coding, testing is done to check the correct running of the code.

 Disadvantages of Waterfall Iterative Model:

  •  Real projects rarely follow the sequential flow and iterations in this model are handled indirectly. These changes can cause confusion as the project proceeds.
  •  In this model we freeze software and hardware. But as technology changes at a rapid pace, such freezing is not advisable especially in long-term projects.
  • Even a small change in any previous stage can cause big problem for subsequent phases as all phases are dependent on each-other.
  • Going back a phase or two can be a costly affair.

 

V-Model for Testing:

V-Model evolved from waterfall Model.  Each phase must be completed before the next phase begins.  Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. Testing is emphasized in this model more than in the waterfall model.  It is a structured approach to testing. It brings high quality into the development of our products. The V-model is also called as Verification and Validation model.

Typical V-model shows Software Development activities on the Left hand side of model and the Right hand side of the model actual Testing Phases can be performed.

There are variants of V-Model however we will take a common type of V-model example. The V-model generally has four test levels.

1. Unit Testing:

  • The most ‘micro’ scale of Testing.
  • Performed by Programmer.
  • Requires detailed knowledge of the internal program design and code.
  • Ensures the component is working according to the detailed design/build specifications of the module.
  • Also known as component, module, or program testing.

2.Integration Testing:

  • Testing of more than one (tested) unit together to determine if they function correctly.
  • Focus on interfaces
  • It is done using the integration test design prepared during the architecture design phase.
  • Done by developers/designers and testers in collaboration
  • Also called Interface Testing or Assembly Testing

3. System Testing:

  •  After the software has been integrated (constructed), sets of high order tests shall be conducted.
  • System testing verifies that all elements mesh properly and the overall system function/performance is achieved.
  • The purpose of system testing is to fully exercise the computer-based system. The aim is to verify that all system elements and validate conformance against SRS.

  4.  Acceptance Testing:

  •  To determine whether a system satisfies its acceptance criteria and business requirements or not.
  • Done by real business users.
  • It enables the customer to determine whether to accept the system or not.
  • Acceptance Testing also called as Beta Testing, Application Testing or End User Testing.
  • Acceptance Testing should be performed in real operating environment.
  • Customer should be able to perform any test based on their business processes.

Benefits of V-Model:

  • Faults are prevented and it stops fault multiplication.
  •  Avoids the downward flow of defect.
  •  Lower defect Resolution cost due to earlier detection.
  •  Improved quality and reliability.
  •  Reduction in the amount of Re-work.
  •  Improved Risk Management
  •  Validation and Verification at each level of stage containment
  •  Allows testers to be active in the project early in the project’s lifecycle. They develop critical knowledge about the system.

 

If you like this post ,Don’t forget to write comments…………………