“Do I need lightning-fast reflexes for Agile testing?” No, no, don’t worry if you don’t have a dexterity modifier, we’ll tell you all about Agile and the different kinds of tests!
Agile testing is a great way to ensure that your site is running as smoothly as possible, and ensuring that you can put #QualityFirst! But what is it? Agile testing is what goes with Agile software development. “That was super helpful,” you’re probably thinking sarcastically. I know, I know, I couldn’t resist. Let’s break Agile testing and software down into their parts. As the word “agile” implies, there are lots of swift changes involved in these methods, but they’re more complex than just that.
Agile software development has four main principles. First off, it focuses on people rather than the process. Remember when we talked about Digital Transformation? That starts with the people and the way they think, so Agile testing and Digital Transformation go hand in hand! Next, functioning software is more important than perfection and detailed documentation. Or, more succinctly, don’t let perfect get in the way of good. Next up is that an ongoing line of communication and feedback with customers is crucial. After all, how can a business know how the software should be improved without consistent communication? Lastly (and this should ring another Digital Transformation bell) is that developers must be open to change instead of sticking to a rigid, unadaptable plan. With how quickly everything is moving in the modern tech world, stagnant software is doomed to fail.
Ok, so now we know what Agile software development is, let’s look at Agile testing. Like Agile software, Agile testing must always be ready to change and adapt to the current needs, and testing is viewed as just as important as coding is to a piece of software. It is introduced as early as possible so bugs can be found and swiftly dealt with. This is another place where API testing comes in handy. In traditional testing (also called waterfall testing), the order of operations is requirements, design, implementation, testing, deployment, and maintenance. Agile testing is testing implemented throughout all phases, and the testing never stops (this is where automated testing software comes in handy).
Now we can really dive into the meat of it: there are different kinds of Agile testing! First up is acceptance test-driven development (ATDD). ATDD puts extensive emphasis on collaboration between the developers, customers, and testers to author tests from the customer’s point of view. This gives the testers and developers a more accurate picture of how customers are navigating their software and how the software can be improved for ease of use.
Another type of testing is behavior-driven development (BDD). Each test is based on a written out behavior in plain English. It focuses on the end goal rather than how the user would achieve it (that would be more UI testing). Once the test is written, it gets translated into domain-specific language (DSL) - I know this is getting technical, stick with me! That way, the human can read the plain English test and the computer understands the techno-babble (now, the NLP that Virtuoso uses combines the two! Much less work that way). So, once the behavior has been established, the test is run and it fails. Then the code is written so the test passes the second time it is run.
Another important type of testing is Exploratory testing. This is a cyclical process that starts with test design, then test execution, then test analysis, some learning, and then it starts again. This adaptability, constant testing, and continuous improvement are the ideal essence of Agile testing.
So… how do you know which type of testing to choose? Luckily, Lisa Crispin, an expert on Agile testing, developed a quadrant to help decide.
The quadrants on the left help the development team know which code to write and whether it’s done correctly, and the quadrants on the right focus on learning more about the code and critiquing it. That way, the feedback from the right quadrants goes to the left quadrants so the team knows when they’re done writing great code. The top quadrants are business-facing, so it focuses on UI testing and interaction with the users for feedback, and the bottom quadrants are all about the tech itself, so unit testing, security testing, all that jazz.
Ok, now we can talk about each quadrant individually. Quadrant One (Q1) is pure automation that focuses on making a better product by improving the code. Q2 uses both automated and manual testing to improve the business outcome of the product and ensures that the best value is being delivered. Q3 is just manual testing, and its purpose is to generate feedback by testing the customer experience and the product for positive outcomes. Lastly, Q4 uses tools that already have tests in order to double-check security, compatibility, and other aspects not required for the product to work properly.
If Agile testing is something that your product would benefit from (and really, what product wouldn’t?), then Virtuoso is the software for you! We’re certainly an Agile software, as we’re constantly asking for feedback from our users so we can be the best we can be, and we’re never done adding new features or fine-tuning older ones to perfection. With our API and UI testing, we can be implemented as early as you like; and you don’t even need your website designed to test your UI! Virtuoso can work off of wireframes developed in Paint so you can get the most out of your testing. Plus, with our scheduling automated tests in different browsers (check out our feature on cross-browser testing), tests can be set to run after your product is deployed and you won’t have to think twice unless Virtuoso alerts you. Interested? Get in touch with us now!