Agile, Continuous Delivery and Testing
Courtesy Pixabay

Agile, Continuous Delivery and Testing

A lot is being discussed about Testing in the world of Agile and Continuous Delivery. Below are my two cents. Feedback is welcome.

With Agile, the separation in specific roles has been removed. Everyone is required to contribute to everything. Team members must be cross functional, with focus on achieving the team goal rather than segregation of duties. There are no distinct development and test phases and all the activities are iterated over the duration.

With Continuous Delivery, teams aim to deliver software to the customer in small increments. Deliveries are expected to be small and fast. It is expected to have automated quality checks and deployment pipelines. With this, as soon as the code is committed and if all the automated checks are positive, features can be made available to customer.

In the context of the above 2 practices, a general thinking is that testing seems to be not that important anymore. With agile, because of the shorter sprints and continuous changing environment and with continuous delivery, delivering the software instantly, traditional testing seems to be falling back because it seems slow and can slow down the entire process which has been improved by the above practices. On the contrary, what is happening is that testing has become more important than before in this era of faster delivery. As the software is delivered faster to the customer, it has become equally important to have faster feedback about the quality. Also because of small increments being released, it is equally important to have a robust integration and regression testing to verify that all related features are working fine. And the Testing process is getting continuously updated based on the new challenges we are facing.

With the new challenges in testing, following 3 practices have become extremely important

Risk Based Testing

With the faster changing cycles and the continuously changing requirements, it is really important to understand the priority in testing. With Risk based testing teams can concentrate their efforts on features that are really critical from an user perspective. This also helps in mitigating the Product risk as high risk features are tested thoroughly and can save excess time spent on low risk features.

Continuous Testing

Continuous Testing not only means automation of the test scripts, but also is about improving the test process in general to support the Continuous deployment process. The main objective of the continuous testing is to provide a constant feedback to the teams about the quality of the system they are building. It should remove the need for a handover from dev to test.

With continuous testing, it should be possible to have a continuous and ongoing regression test. As soon as a feature is committed, feedback is received about its quality with as little intervention as possible.

Exploratory Testing

Till AI can be effectively used in Testing, automation testing will only be test execution according to script. One of the major issue with this is that, execution paths not scripted will never be tested. Hence exploratory testing is very important aspect in Testing.

Exploratory testing provides immediate feedback and requires less preparation time than automated testing. This feedback helps in refining the testing further and helps to improve the quality of test. In case of applications which are dynamic, automation may not seem feasible, but exploratory testing can be really valuable.

. . .

In addition to above, it is important that the test engineers work closely with the developers. Participating in designing of the code with the developers gives a good insight to the testers which helps them in test design as well as actual testing.

With the changing software development process, the testing practices are also changing continuously. It is important that the testers spend time and keep acquiring new skills required for the future.

Testing? Isn't that what your users do all day long in production? :D

Well, if I may add my two cents : I think you should add all the static testing part proof reading stories and epic before developement and creating test cases along the line. A pinch of Test Driven Development because, while testing you could adjust with developement team participation some of the stories flaws as they come to light. Testing in an agile environement is a game of hide and seek where every strategy should be used in order to keep the effort channelled and the output reasonable.

To view or add a comment, sign in

More articles by Aditya Parab

  • Have an opinion and share it as well

    Thoughts for the weekend. Having an opinion is important.

  • Quick look back before we jump ahead

    Thoughts for the weekend. Today is the last Friday and my last article of the year.

  • Finish what you start

    Thoughts for the weekend. I am always enthusiastic about starting new things.

  • Pareto principle for Time Management

    Thoughts for the weekend. As a software tester, I want to test all the features equally, giving each, same amount of…

    2 Comments
  • The power of saying NO.

    Thoughts for the weekend. Your time is the most valuable of all.

    2 Comments
  • Do it right the first time

    Thoughts for the weekend I believe in prioritizing. Doing things only which will provide immediate value.

    2 Comments
  • Balanced or Obsessed

    Thoughts for the weekend. When you hear early stories of now big companies, we usually hear people working really hard.

    2 Comments
  • UI Test Automation

    Test Automation has become one of the important aspects in the Software development world. Everyone in this community…

  • FOMO at Work

    Thoughts for the weekend. I took a day off last week.

    2 Comments
  • Train to be Disciplined

    Thoughts for the weekend. A year back, I started training to run.

Others also viewed

Explore content categories