Loading

W Model


Software Development Models at a Glance:

Testing is one of the most important means of software quality assurance. Each software development paradigm requires an appropriate test model. The various processes and methodologies that are selected for the development of a project based on its aims and goals are known as Software development models. These models define several stages of processes and the order in which they were executed. Software development process is also known as a Software Development Life Cycle (SDLC).

With the advancement in technology, it has now become extremely easy to find software development models of various kinds to suit different requirements. However, it is really necessary for a developer to opt for the appropriate software development model for their project, as it has an immensely great impact on the executed testing. The importance of the software development life cycle model increases furthermore because of the role it plays in defining the what, when and where of the planned testing. It also influences the regression testing and largely determines the test techniques that will be used by the developer while implementing the testing.

W-Model is one such software development model, designed to achieve various demands and requirements of a developer. It aims at covering all those aspects that are overlooked or skipped in the V Model of software development. Here is a critical analysis of W-Model to help you understand it thoroughly.

W model image one

What is W-Model?

Introduced by Paul Herzlich in 1993, W-Model approach attempts to address and tackle the shortcomings of V-Model. Unlike the V-Model, which focuses on specific dynamic test stages, W-Model pays full attention on the development of products themselves. Moreover, it represents one-to-one relationship between the documents represented on the left side of the W and the tests represented on the right side of the W. In its most generic form, the W-Model presents a standard development lifecycle with every development stage mirrored by a test activity. On the left hand side, typically, the deliverables of a development activity is accompanied by a test activity “test the requirements” and so on.

W model image two

The most important element of the W-Model approach is that it focuses specifically on the product risks and concentrates at the point where testing can be most effective. It ensures that the testing starts from the very first day of the project, which assists the team of developers to keep a track of defects from the initial stage as well as reduces rework in the later stages of development. W-Model is one of the best option for developers as it easily adjusts to their development requirements and provides expected results. Furthermore, the focus is not limited to functional requirements but is spread to technical design and architecture also.

Testing Techniques Used in W-Model:

Testing in the W-Model is executed in the early stages of development which allows the developers to discover defects in system specification and design as soon as possible. Early testing not only improves system analysis, but it also ensures that the design and defects found there are easily fixed in a cost effective manner. The testing techniques in the W-Model are divided into three types. From validating and verifying to crosschecking and fixing, all three of these techniques have various functions which are essential to the whole development process of the software. These testing techniques used in W-Model are:

  • Regression Testing: The term regression means retesting the unchanged parts of the application. In the W-Model, the regression test too has a similar function. In this type of testing technique, test cases are re-executed in order to check whether the previous functionality of the application is still working properly as well as to ensure that no new changes have been introduced by any new bug or error. This is the method of verification, which is the process of evaluating a system or a component for any defects of quarries.

    Another major work of regression testing is to verify that the bugs and errors in the program are fixed properly and to check whether the newly added features have not been created during the problem in previous working version of the software.

  • Static Testing: Static testing or code free testing, is a software testing technique in which the software is tested without the execution of the code. Conducted during the early stages of software development cycle, Static testing is also known as Verification Testing. This testing technique for software is executed either manually or through various software testing tools available in the market. Static Testing is further divided into two parts:
    1. Review: Typically used to find and eliminate errors or ambiguities in documents such as requirements, design, test cases, and more.
    2. Static Analysis: The code written by the developers is analysed usually with the assistance of tools to find structural defects that may lead to errors and functional problems in the later stages of the development.
  • Dynamic Testing: The dynamic testing is the process of interactions with the program while it is still running. It focuses on testing the software for the input values and analysing the output values. Dynamic testing is the validation part of Verification and Validation in W-Model.

    In this type of testing there are a wide range of techniques available for evaluating executable software and systems. The traditional unit, integration, system and acceptance tests can make use of the functional test design and measurement techniques as well as the non-functional test techniques that are all available for use to address specific test objectives. Furthermore, the W-Model removes the artificial constraint of having the same number of dynamic test stages as development stages.

Advantages of W-Model:

There are several advantages associated with W-Model. W-Model presents a standard development life-cycle with every development stage mirrored by a test activity. It is one such software development model which is designed to achieve various demands and requirements of a developer. The most beneficial element of W-Model is that is tackles all those aspects that are skipped in the V Model of software development. Mentioned below are some other advantages of W-Model.

  • The importance of the tests and the ordering of the individual activities for testing are clear.
  • The testing process is carried out parallel to the development process. It is not first started after the development is complete.
  • In W-Model there is no strict division between constructive tasks on the left-hand side and the more destructive tasks on the right-hand side. Here such a division between tasks is not sensible and a closer co-operation between development and testing activities must exist.
  • From the project outset onwards the testers and the developers are entrusted with tasks and are seen as an equal-rights partnership.
  • During the test phase, the developer is responsible for the removal of defects and the correction of the implementation.
  • The early collaboration and the tight co-operation between the two groups can often in practice avoid conflict meetings.
  • Emphasises the fact that testing is more than just construction, execution and evaluation of test cases.

Disadvantages Of W-Model:

Even though there are several advantages of W-Model, one can find few drawback or disadvantages while using this model of software development. To get a better understanding and to avoid such problems, here is a list of disadvantages of W-Model:

  • The real facts are simplified in this model.
  • In practice there are more relations between the different parts of a development process. However, there is a need for a simple model if all people involved in a project are to accept it. This is also a reason why the simple V-model so frequently used in practice.
  • The models of software development presented do not clarify the expenditure needed for resources that need to be assigned to the individual activities.
  • Also in the W-model it appears that the different activities have an equal requirement for resources (time, personnel, etc.) In practice this is certainly not the case. In each project the most important aspects may vary and so therefore the resource allocation is unlikely to be equal across activities.
  • For highly critical applications the test activities certainly have higher weighting or at least equal weighting with other activities.

Ways of Using W-Model in Test Strategy:

  • Identify the specific risks of concern during the development.
  • Specify the products that need to be tested.
  • Select test techniques to be used on products to address the risks.
  • Schedule test activities as close as practicable to the development activity, which generated the products to be tested.

Summary:

One of the most effective software development model, W-Model is a variant of the V-Model which aims at overcoming all the shortcoming in the latter. It is specifically focused on identifying product risks and concentrates on points where testing can be most effective. W-Model ensures that the testing starts from the very first day of the project, so that the developers can keep a track of defects from the initial stage of software development. Hence, W-Model makes sure that the end product is of best quality and has gone through proper evaluation, verification and validation before its release.