Agile software teams can’t afford to clog their code pipelines with antiquated testing practices. While many shops have moved to Continuous Integration and Continuous Delivery, they also need Continuous Testing capabilities to achieve a continuous ecosystem.
“Testing is no longer just about ensuring quality. It’s a gateway that allows you to move from one stage within your continuous process to another with confidence,” said Alon Girmonsky, CEO of BlazeMeter.
BlazeMeter, which is well known for its open-source-based continuous performance testing capabilities, recently added enhanced functionality so developers can run performance tests and API-based functional tests as part of their Continuous Integration and Delivery processes.
“The industry is moving to an era where everything is continuous. It’s continuous because you’re constantly moving from development to production in a relatively short time, but the shift to continuous practices has its challenges,” said Girmonsky. “You need different tools and infrastructure to support it. Tools like Jenkins, TeamCity, Bamboo as well as tools like AWS CodePipeline help you connect continuous integration and delivery with continuous testing.”
Master Continuous Integration processes
Continuous Testing is a vital part of an end-to-end continuous process. Rather than being a distinct step somewhere between a build and a release candidate, Continuous Testing, when integrated into the entire process, helps speed software delivery. It also helps ensure the reliability of code as it moves through the pipeline.
For example, before code is committed to a repository, it has to be tested. If the code passes the tests, it gets committed. If it doesn’t, it has to be fixed. When testing is used as a gateway to check code into the repository, as enabled by BlazeMeter, developers can be confident that the code they commit will not break something else in the repository.
Continuous Testing also helps developers avoid broken builds. When Continuous Testing is used during each phase of software development, it helps ensure the stability of the next stage. Finally, the release candidate is tested so it can be deployed or not as necessary.
“We took it upon ourselves to make the process of testing easy and well-integrated into the ecosystem,” said Girmonsky. “Because we integrate with GitHub, Jenkins, and other tools, it makes sense to be part of the process.”
By simplifying testing and integrating BlazeMeter into familiar tools, more people on the software team can take advantage of continuous testing—not just DevOps or QA engineers—but also developers within the engineering teams.
“Essentially, we’re enabling an entirely new way to improve the outcomes of your continuous processes,” said Girmonsky. “It’s groundbreaking in its simplicity. You can build tests as you go—such as while you’re building your code—and get the instant verification you need. In the past, you’d have to wait for a performance engineer to add the verification to his to-do list and to check afterwards to ensure nothing breaks.”
Why performance testing is important
Adding performance testing to Continuous Integration reduces the risk of performance degradations when new features are added or a bug is fixed. For example, if the latest commit inadvertently causes sluggish response time, the continuous integration system will automatically mark the build as “failed.” The alert makes it very easy to identify the cause of a problem and who is responsible for it. When performance tests are run in the early stages of software development, it is easier to find and fix the issue.
“Everything needs to happen automatically behind the scenes,” said Girmonsky. “If you’re a developer, you don’t even need to be aware of the suite of tools that are running in the background to make it all happen.”
With BlazeMeter, developers can spend as little time as possible away from their IDEs. Within the IDE, they can build their tests and make sure the tests run in time—all in a matter of minutes.
“This is a really serious enhancement to our product. What we’ve had up until now is a suite of tools, each of which does something to address a certain use case,” said Girmonsky. “Now we have a framework that allows you to use a human readable and writable language. With this language, you can define what your tests look like, when you want them to run, and what it means if a test fails, and what the criteria is for failing a test.”
Automation is critical
Software teams need the ability to run hundreds of tests at each stage of the software life cycle, and there’s no time to do it manually. BlazeMeter automates tests based on human-supplied criteria so organizations don’t have to sacrifice speed or efficiency. In fact, they can improve both.
“When we were building systems in a waterfall fashion, we were releasing software every few months or every year. In that case, it made sense to treat testing as an event, and as part of the event, you’d create the test, run it, analyze it and invest a lot of time because it was only required every few months,” said Girmonsky. “In an agile environment, the event can happen every minute so you don’t have the time to write scripts and run manual tests.”
BlazeMeter builds tests automatically and programmatically generates the tests in real time, according developer-defined specifications.
“Developers create the specification, but the tests automatically generate themselves just before they need to run,” said Girmonsky. “This is one of the major value-adds you get with BlazeMeter.”
One-up the competition
Many organizations have become agile to stay competitive in today’s dynamic business world. With Continuous Integration popular and more organizations adding Continuous Delivery to the mix, they are continuing to become even more agile. However, without continuous testing, it’s entirely possible to accelerate the delivery of brittle code that doesn’t scale or perform well.
“Today, you need to rethink your testing strategy to adapt to this new age. It involves running literally a hundred times more tests than you used to, and you need to do it in an automated fashion,” said Girmonsky. “You can’t use people; it needs to be machine-driven. On the other hand, the machines aren’t smart enough to actually generate the tests you need.”
BlazeMeter combines the best of both worlds by enabling developers to define tests and their criteria so the tests can run automatically in the background. Better still, BlazeMeter helps software teams think differently about testing so they can continue to improve the effectiveness of their continuous processes.
“Testing is not a one-time event. It’s continuous,” said Girmonsky. “Continuous Testing has to be part of the ecosystem because there are Jenkins and other systems in place that serve as a conveyor belt of the new IT.”
DevOps teams use BlazeMeter to quickly and easily run open-source-based performance tests that ensure the delivery of high-performance software. As part of the continuous ecosystem, BlazeMeter can instantly test against any mobile app, website, or API, at any size or scale to validate performance at every stage of software development.
The rapidly growing BlazeMeter community comprises more than 100,000 developers, many of whom work at global brands such as Adobe, Atlassian, The Gap, NBC Universal, Pfizer, and Walmart.
“Load and performance testing should be part of every software delivery workflow, from legacy monolithic apps to continuously delivered microservices,” said Girmonsky. “We generate test traffic from cloud-based locations around the world, so your tests reflect real-world conditions and do not break in unpredictable ways.”
This article was sponsored by BlazeMeter. Learn more at www.blazemeter.com.