Software Testing Career

More

Software Testing Jobs & Resume

More

Software Testing Skills

More
7
Apr
2015
0

Software Development Methodologies

A software development methodology is a process that helps to structure, plan, and control the developing system.

Is there one process, one framework, one road map that will take you through all the steps from start to finish?  Answer is NO!

There are multiple processes or methodologies available in order to achieve different required objectives.

The models specify the various stages and the order in which they are carried out. The selection of model is based on various factors and impacts the type of testing that is carried out.

Choosing a model based on the requirement & need of the project is the key to the success of software development and delivery.

It will define the what, where and when of our planned testing and determines which test techniques to use.

Various Software Development Models are:

1. Traditional / Waterfall Model

waterfall_image

[Figure: Waterfall Model]

 

It was the first development model to be introduced. In this model, each phase has strict tasks to be performed and it describes a development method that is linear and sequential. In this model, testing starts only after the development is complete.

Pros:

  • Linear flow, simple and easy to use without overlapping of tasks.
  • Each phase has specific deliverables and no ambiguity.
  • It works well for small projects with clear and unambiguous requirements.
  • Suitable for projects with static requirements.

Cons:

  • Very rigid, since testing starts only after development is complete, once application is in testing stage, it is very difficult to incorporate any change.
  • It takes a long time before working software is available.
  • Not suitable for complex and long projects.
  • Not suitable for projects where requirements are at a risk of changing.

 2. V Model

v_model_image

 [Figure: V-Model]

It is known as verification and validation model. It is considered as extension to Waterfall because in this model also control flows sequentially. It depicts the relationships between each phase of the development life cycle and its associated phase of testing.

Pros:

  • Linear flow, simple and easy to use without overlapping of tasks.
  • Test activities happen before coding. Hence higher chances of success over waterfall.
  • Early bug detection which helps reducing bugs passing on to next stage. Saves Cost.
  • Suitable for small projects with static requirements.

Cons:

  • Very rigid and inflexible.
  • It takes a long time before working software is available. No prototypes.
  • If any changes are done midway, corresponding test documents are required to be updated.
  • Not suitable for projects where requirements are at a risk of changing.
  • V-model is suitable when ample technical resources are available.

 

Also Read: Types of Software Testing, Test LifeCycle, What is Software Testing?

 

3. Incremental Model

In incremental model the whole requirement is divided into various components and each component is built separately.

It uses elements of waterfall model, and multiple cycles of waterfall are used to build each component.

Idea is to get a working prototype early on, which is what we get at the end of first cycle.

Each subsequent cycle adds function to the previous release. The process is repeated until the product is completed.

Pros:

  • Generates working prototype fairly quickly.
  • Start working when major requirement are defined, however, some details can evolve with time
  • Preferable when there is a need to get the product to the market early.
  • New technology is being used, early prototyping gives confidence and highlights bottlenecks.
  • Suitable for high risk projects and where resource with needed skill set are not available.
  • Easier to test and debug in small iterations.
  • Customer can respond to each build and we have time to adjust in next iteration.

Cons:

  • It requires extensive planning and design.
  • Needs crystal clear and complete definition of the whole system before it can be broken down and built incrementally.
  • Since, it runs a waterfall cycle for every component/build, total cost is higher than waterfall.

4. Rapid Application Development (RAD) Model

In general, the principle of RAD approach is not to have perfect documentation but good enough to move to development.

In contrast to the waterfall model, which emphasizes rigorous specification and planning, it puts less emphasis on planning tasks and more emphasis on development. It is a type of incremental model.

In RAD model the components or functions are developed in parallel and in time boxed manner, delivered and then assembled into a working prototype. This helps in getting the feedback from the customer regarding the delivery and requirements.

Pros:

  • Reduces the development time substantially.
  • Light documentation, Quick initial reviews and fast development.
  • Encourages customer feedback and incorporate changes in case of any discrepancy.
  • Integration issues are identified very early because all modules are developed in parallel and integration is done before delivering prototype for customer feedback.
  • It is suitable for projects, where we need to create a system that can be modularized very quickly.
  • It can be used only where large number of designers and resources with good business knowledge are available and there are no budget constraints.

Cons:

  • It can work only for systems that can be modularized.
  • Needs crystal clear and complete definition of the whole system before it can be broken down and built incrementally.
  • It cannot work with relatively inexperienced team as its success depends on team’s capability of identifying business requirements.
  • Not suitable for low budget projects as cost rises because of involvement of higher number of experienced professionals.

5. Agile Model

agile_image

 [Figure: Agile Model]

 Agile is also an incremental model. It endorses rapid delivery and continuous improvement and facilitates rapid quick response to change. Software is developed in short incremental cycles known as sprints.

This results in small incremental working releases with each release building on previous functionality. Each release is thoroughly tested to ensure software quality is maintained.

Testers are a part of the same team and long-term aim is to have a fully cross-functional team with all the team members having equal competencies.

Pros:

  • Introducing dynamic functionalities is cheaper unlike models like waterfall because of frequency of new increments that are produced.
  • Unlike Waterfall, Agile promotes not so extensive planning Light documentation and mistakes are expected it doesn’t need to perfect, just good enough to move forward. It is because of the assumption that users’ needs are ever changing.
  • It gives flexibility and project is continuously moving. Planning is done at the start when every sprint cycle and adjustments are made so that work is done according to the needs and information available.
  • It gives customer high degree of satisfaction and confidence because he gets to see the demo very early and can monitor progress very closely.
  • It gives flexibility to use documentation, process and tools as per the needs of the project. It endorses collaborative environment and emphasizes more on frequent interaction between testers, developers and customers.
  • More focus on face-to-face conversation rather than emails and short daily standup meetings to discuss progress and impediments encourages better information flow and team collaboration
  • Continuous improvement of design.

Cons:

  • It case of extremely large and complex projects in can sometimes become difficult to assess the effort required at the very beginning, but it can happen with any model.
  • Lack of emphasis on documentation might sometimes cause trouble when someone wants to refer to history data to take some decision. It is therefore extremely important to maintain critical piece of information which has potential of reuse to be documented.
  • Project may get haywire if Product Owner and Customer representative are not on the same page or not clear on the final outcome.
  • Team of all beginners or inexperienced members won’t be able to run the project very well because it requires some experience right at the beginning. For every requirement, (known as user story in Agile),even software testers have to provide their input on the efforts required to test.

 6. Iterative Model

In Iterative model, process starts with a simple implementation of a small set of the requirements and iteratively enhances the subsequent versions until it’s complete.

Iterative model differs from incremental modal as it uses a fixed no of steps and development is done sequentially. The iterative model however has no such set of steps, rather development is done in cycles.

Here, focus is mostly on creating a working prototype first and adding features in development cycles where the Increment Development steps are done for every cycle. Agile is specific iterative approach.

Pros:

  • It is best suitable for a big project, when complete system requirements are defined and understood.
  • Major requirement must be clear and defined, however, few improvisations are allowed over time.
  • Documentation time spent is less and more time is given for designing.
  • It helps getting reliable feedback from the users by asking them to imagine how it would work.
  • Early start protects defect multiplication.

Cons:

  • No flexibility within each phase of an iteration with no overlapping.
  • Since not all requirements are gathered up front for the entire lifecycle, sometime serious design issues may crop up.

7. Spiral Model

The spiral model is a risk-driven process model generator that guides a team to adopt elements of one or more process models, such as waterfall or incremental. It has four phases Planning, Risk Analysis, Engineering and Evaluation.

Any project that follows spiral model, repeatedly passes through these phases in iteration.

Planning – Requirements gathering is done in the planning phase.

Risk Analysis – Risks are identified and prototype is produced. For any risks alternate solutions explored.

Engineering – development and testing is performed.

Evaluation – continuous customer feedback.

Pros:

  • It is best suitable for a high risk projects, when cost and risks are of concern.
  • Suitable for unclear and/or complex requirements and significant changes are expected by research and exploration.
  • With focus on risk evaluation, it helps in risk avoidance.
  • It has strong approval and documentation control.
  • Flexible in a sense that additional functionality can be added later.
  • Software is produced early.

Cons:

  • It can be expensive.
  • High level of specific knowledge and expertise required to perform risk analysis. Project success is dependent on risk analysis.
  • Not a good choice for small projects.

There you go !! We have covered the Software development models which can chosen based on their merits.

Which one do you use ?

Please share your experiences with the model you have been following so that we can improve the pros and cons.


Comments 0

  • HERE IS WHAT YOU’LL RECEIVE

    • Get Articles on Upcoming Training, Seminars and Workshops1
    • Get Tips and Tricks for Resume, Coverletter and Interview Prepration
    • Latest Industry Updates
    • Your Details are safe with us
  • Other Training Courses

    JMeter is an open source Java application designed to load test, functional behavior and effective performance testing tool for QA. This course is designed for QA to familiarize with JMeter load test tool. The main focus is to practically use of…

    More

    Software Testing Intensive(STI) is designed to assist newcomers to join the software testing field and gain intermediate to advanced level software testing skills. The candidates will be able to manage to perform testing throughout the test life cycle. This course also helps the intermediate testers to gain the absolute confidence in software testing field in web as well as mobile application.

    More

    This course include includes an intensive workshop where you are learning all the mental barriers you need to avoid and the game plan you should be creating. You will also be practically doing and updating all the necessary marketing collateral for your job applications with confidence by using world class material and resources this course provides to all its students.

    More

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Appium as a tool for mobile test automation is getting very popular in the market for mobile automation testing not only it is an open source but also is absolutely free for open discussions in communities to get quicker solutions.

    More

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    This course include includes an intensive workshop where you are learning all the mental barriers you need to avoid and the game plan you should be creating. You will also be practically doing and updating all the necessary marketing collateral for your job applications with confidence by using world class material and resources this course provides to all its students.

    More

    .Net Developer Advanced Training

    This course is about to gain understanding of advanced level knowledge of Microsoft .Net framework. It will cover advance development using ASP.NET, Data Binding and Web Configuration, C# Advance features, Web Service Implementation and many more advanced topics.

    More

    .Net Developer Training

    This course is about to gain understanding of current IT industry and prepare yourself for Microsoft .Net Developer Position. In this course, you will learn various Microsoft .Net tools and technologies. It will help you to build and deploy website from scratch using .Net framework. At the end of this course, you will be able to give web solutions using .Net technologies to the businesses, and able to attend interview for .Net developer position.

    More

    Advanced LinkedIn For Job Seekers

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    Agile Testing Intensive (AgTI)

    Understanding of Fundamentals Software Testing

    More

    AJS1: AngularJS Development Level 1

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    AJS2: AngularJS Development Level 2

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Automation Testing Intensive Level 2(ATI2)

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Blockchain Fundamentals 101 Training

    The Blockchain Fundamentals 101 training course provides and excellent platform to learn the basics of the blockchain. This course is for the professionals who want to understand background of the development of the blockchain, what are the major players and the full ecosystem around blockchain. You’ll also learn various business use cases for the Blockchain and the industries using it.

    More

    Oracle Training

    The Oracle well known, widely used Database is an object-relational database management system produced by Oracle Corporation. This is the ideal course for any tech savvy programmer, DBA, SQA…

    More

    Ruby Scripting Training

    Ruby is a scripting language designed by Yukihiro Matsumoto, also known as Matz. It runs on a variety of platforms, such as Windows, Mac OS, and the various versions of UNIX. Ruby Scripting language is dynamic and object oriented. In a sense, it’s a purist’s language for those who love object-oriented languages. Everything, without exception, is automatically an object, whereas in other programming languages this isn’t true. It is simple enough for beginning programmers to use while also powerful enough for experienced programmers to have all the tools they’d need.

    More

    SQL for Testers Training

    If you are new to software testing or looking for a career change to become a software tester Understanding the relational data model behind an application enables you to design additional tests…

    More

    SQL Training

    SQL (Structured Query Language) is a programming language intended for managing data held in relational database management systems (RDBMS). SQL expertise are advantageous in a number of professions such as database developers, report writers, business analysts, computer programmers, web developers, testers and data analysts. SQL has a shorter learning curve compared to other skills like business analysis or computer programming or testing.

    More

    VB Scripting Training

    VB Script is a subset of Visual Basic 4.0 language. It was developed by Microsoft to provide more processing power to Web pages. VB Script can be used to write both server side and client side scripting.

    More

    Front End Web Development

    Front End Web Development (FED) is a training which will allow candidates to understand about HTML5, CSS3 and JavaScript, Ajax along with a few key frameworks such as Bootstrap and jQuery. This course also helps you work on creating your own basic application throughout the course.

    More

    FWD2: Frontend Web Development Level 2

    Automation Testing Intensive (ATI) is an advanced Selenium Automation Training which will allow candidates to understand how test automation is done in a proper structured manner so that candidates are able to create and manage the selenium automation scripts from scratch and be confident building test cases based on a solid framework.

    More

    Interview Like a Pro

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    ISTQB Certification Training

    ISTQB foundation course allows you to learn from the very core fundamentals to advance level software testing concepts. The course is intended for anyone who is new to testing or has been in the testing and wants to learn more in details…

    More

    Java Development

    Skiva is a leading IT consulting firm based in Sydney, Australia. Our team of dedicated developers and experienced IT professionals allows us to develop every kind of software application required for improving and max imising the functionality of both new and existing websites. Our sole aim is to help you grow your business, by developing an informative and dynamic website that produces effective and profitable conversion rates for website traffic.

    More

    Java Fundamentals Training

    Fundamentals of Java is a very comprehensive yet simple course on java programming which concentrates on basic concepts of Java. This course is great because it covers just the right amount of Java which is needed for automation, but this course does not cover Selenium WebDriver or any other type of automation tool. Java is one of the most and useful programming languages to learn. You will get the best in class support from the instructor for any question you have related to the course.

    More

    LoadRunner Training

    One of the most crucial test tool to load test the application and measure the performance. Why to load test application, Is application scalable to withstand concurrent number of users? All such answers and application performance…

    More

    Mobile App Testing

    Mobile App testing consists of several of the same processes as other software testing. Application software which has been created, or enhanced for any portable devices, is checked to ensure that it is consistent in results, usable, and functions as it was intended to. Mobile applications may be factory installed or installed from a software distribution platform, while the growth of the number of mobile devices has been matched by the opportunities for new smartphone and other apps.

    More

    Mobile Test Automation With Appium

    Appium as a tool for mobile test automation is getting very popular in the market for mobile automation testing not only it is an open source but also is absolutely free for open discussions in communities to get quicker solutions.

    More

    Psychology & Mindset For Job Seekers

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    QTP Test Automation Training

    QTP (Quick test professional) course series designed for beginner automation QA to advanced level QA for automation. This course covers all concepts and basics fundamental with complete in depth examples…

    More

    Rockstar Resume & Compelling Cover Letter That Sells

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    Salary Negotiation to Probation and Promotion

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    Software Testing Training Career Package

    Software Testing course allows you to learn from the very core fundamentals to advance level testing course which is intended for anyone who is new to testing or have been in the testing and want to learn more in details.

    More

    Ultimate Job Search Strategies To Find Hidden Job Market

    Getting a professional job in Australia can be challenging for professionals looking to get started or changing their jobs or careers. Cultural barriers, lack of branding or promoting your profile makes it harder to present yourself well and get connected so that you can get the job you deserve.

    More

    User Acceptance Testing

    User Acceptance Testing is normally the pre-production testing that is done by Users or probably the Product Owners in Agile terms.

    More