It’s all about the basic test principle; testing early. I can easily mention that implementing agile practices without the shift left approach may lead your software to lack quality or have a delay in its delivery. The shift-left testing emphasizes the “ Testing Early” principle of testing. People who are familiar with software testing principles should be well aware of the seven testing principles. However, Continuous Testing is the process of executing tests as a part of the delivery (DevOps) pipeline in order to get faster feedback on the potential software bugs related to a release as soon as possible.
The third principle is to implement testing early which you can read in more detail below.
“To find defects early, testing activities shall be started as early as possible in the software or system development life cycle and shall be focused on defined objectives.”
As you can see on the graph above, the testing process should start in the requirements phase. Of course, there is a reason why the testing team should shift left from the requirements phase. There are two answers for this.
Providing fast feedback
The fast feedback is crucial for the development team. Therefore, if you can send feedback in advance to your team that the requirement will cause an error, it will be the most precious feedback to your team.
Here is why:
Reducing costs of a bug/risk
Think about a bug that appeared in the production or design phase.
The production bug will meet the customer and will return you as a loss of money and may result in a bad reputation. Loss of customer or even loss of human life – uber autonomous car crash case.
Not every context may contain this kind of dramatic failures. Therefore we can say that, the early you reveal and fix the bug, the more you can solve and get rid of it cheaper. The issue is, you may never have a chance to get the time to fix the bug or return what the bug causes as in the uber case. As it was seen on the news, Uber declared that they have autonomous services. Therefore, Shift Left can provide teams to reveal bugs early and get cheaper solutions.
What is continuous testing?
Continuous Testing is the process of executing tests as part of the delivery (DevOps) pipeline to get faster feedback on the potential software bugs related to a release as soon as possible. In other words, it is about being able to effectively manage the fast delivery of a high-quality product. Continuous testing supports the teams that are working on release, deployment, and operation. In other words, continuous testing is the approach which enables continuous deployment for development teams.
It can be easily stated that the old-fashioned manual testing methodologies are inadequate to support the DevOps pipeline in terms of coverage, speed and risk elimination. Therefore, to be able to apply continuous testing, using test automation in different levels of testing is a basic requirement.
The long story short, continuous testing is substantial to be able to provide fast delivery of a high-quality product. Continuous testing process provides testing to take care of your risks at several stages including an early stage, delivery, and even the production stage. The only thing you should do is pairing your testing suites to the correct stage of your pipeline. As a conclusion, the advantages of continuous testing can be listed shortly as below.
The support of continuous testing for agile practices and continuous delivery:
- Prevents bottlenecks.
- Optimizes test execution in terms of time.
- Supports Shift Left in terms of test execution optimization and test coverage.
- Embraces Shift Right in terms of monitoring, APM, Testing in Production.
The Testinium Effect
Testinium is a cloud-based test automation tool which is executing test scripts. Testinium provides you time-saving by preventing you to set up test environments such as Selenium Grid or executors. In addition to that, Testinium offers real mobile devices and web configurations. You can read some of them below.
- Ubuntu with Chrome Browser.
- Windows 7 with Firefox Browser.
- Chrome Browser in iOS 11 and derivations.
- Google Pixel 2 with Firefox Browser.
From top to the bottom, there is only one common concept that has been discussed. Being FAST. The first thing that Testinium supports you in terms of agile practices is the speed of the delivery. It offers you help with the testing infrastructure, handles it for you and saves a lot of time. Moreover, the only thing you should do is scripting your tests.
From the testers point of view
Agile practices are supporting the development processes and delivery perfectly. Even though the main focus is delivering quality, the testing process may get out of scope since there is no significant guidance for testing. Therefore, teams are facing hard times on catching the quality that is desired.
Agile teams must develop quality assurance and quality control processes to avoid time pressure and achieve fast delivery. To help out the agile teams in terms of quality and test, Testinium can support and help out with the time pressure in terms of test coverage and fast feedback.
The support that Testinium provides in Agile Practices
- Integration for testing in SDLC (API)
- GUI level test automation in DevOps
- Testing infrastructure
- Fast and instant feedback
- Real mobile devices
- Detailed reporting
- Advanced False Negative Elimination
- Wide test coverage
As a conclusion, teams that are following agile practices should keep in mind that being agile in the development phase is not enough to satisfy business line of the product. To be able to deliver a high-quality product fastly, all these approaches should be considered and implemented by teams within their own Software Development Life Cycle (SDLC) culture. In total, these approaches or methodologies will never help you out as individuals. Therefore, you should build your SDLC considering your resources and needs.
Continuous testing and shift left can be used separately or independently. The main issue is that they are not enough by themselves without the support of test automation, a strong test design, and a deep agile practices understanding.
The second challenge is to catch up with the development speed. In the testing part, implementing test automation in different kinds of testing levels is crucial to support the quality of the product. Just to remind you, testing pyramid may be helpful for optimizing the number of tests that you should develop in the SDLC. I hope you can have the chance to experience the Testinium effect.