Many of you seem to be driven by the shift-left strategy of testing to enhance their development procedures. I can still recall the days when QA testers were treated as second-class citizens, and developers ruled the world of software. And tables seem to have entirely turned- more and more people are seen jumping into the testing bandwagon- all thanks to shifting left toward DevOps!
One of the interesting adage or excuse is a software development team must spend a maximum of around 80% of its time on bug-fixing and code maintenance; which leaves little to no time for automation. Now if you go through this carefully, you will soon find the actual problem occurs among plague businesses whose software has been in the market for a while. What I mean is moving on to the next cool idea that not just supports the products but even their business isn’t a cakewalk. As a result, well-established, software-enabled giants such as Netflix, Amazon, and eBay are seen trending towards continuous delivery based on microservices architectures rather than monolithic architectures. Unfortunately, there seems to be no time for real innovation.
What we need the most is?
A quality revolution- a shift left in quality focus on DevOps metrics to identify problems as early in the development lifecycle as possible. Now I am sure you must be wondering how that would work. Well, till now I have encountered, around 80% of software defects are caused by a small number of classic problem patterns such as bad algorithms causing CPU spikes, poor choice of frameworks, inappropriate synchronization of shared resources inefficient database access, wasteful memory allocations, or logging to death and the list goes on.
The decision to change doesn’t come lightly, but of course, there are some pointers your team needs to do to prepare for this shift that will make for a much smoother transition.
- Make developers responsible for testing- With the ongoing current trends in software development practices, a significant shift is seen in focus toward customer-driven development models, test automation is more important than ever. Agile and DevOps practices demand more automation, and practices like continuous integration and delivery require automated tests that can be run quickly and reliably. In the current scenario, software teams often have more developers than testers where the developers need to take responsibility for some of the team’s test automation efforts.
- Code review quality checks- Developers on individual spirit teams submit their tests for code review. The critical reviewer, a QA professional, can make sure that all the checks conducted are correct and that there are no other scenarios the developers might have missed that should also be tested. As a professional, you should be focusing on finding bugs, not spending all their time creating a framework when you have software developers who are more adept at programming. In the end, testers will have more time to define proper checks for the developers’ scripts and to focus on exploratory, security, and performance testing.
- Teach testers to code- Developers need to take on some testing responsibilities where professionals also need to do some coding. To be effective at code reviews and as a part of a team, testers need to learn how to code. However, I am not naïve enough to recommend that everyone on a sprint team be able to fill each role on the team, but testers need to be technically proficient enough to be able to read and modify code at some level. For instance, they should be able to modify an automated test or refactor some certain methods.
- Use the same tools- If you are a tester, I am sure you have encountered an issue regarding the inability to create automated tests using the same tools as your developers. It always becomes a roadblock for testers creating automation frameworks from scratch. Fortunately, we have a plethora of tester tool vendors to support programming languages such as Java and C#. Many of them also integrate with popular developer IDEs and source control software.
Top Open-Source API Testing Tools
- REST-Assured– When using Java, I prefer this tool at its most for API automation! The tool also acts as a fluent java library which can be used to test HTTP-based REST services. Keeping the testing mind, the tool can be integrated with any existing Java-based automation framework. It provides a behavior-driven development (BDD) like domain-specific language that makes creating API testing in Java simple. Also, you don’t necessarily need to be an HTTP expert.
- Postman– Some people don’t want to deal with coding in an integrated development environment using the same language as the developers. Postman is a choice worth considering when looking for some quick and dirty API testing without worrying about the overhead of some of the other options. The tool allows you to place a button on your internal website saying, “Run in Postman,” and it automatically kicks off your Postman tests.
- SoapUI– Are you looking around for a fully functional test tool dedicated to API testing? Soap UI enables software testers to leverage a tool full of functionality aimed strictly at API testing.
- JMeter– Comprising of all the functionality; it is crucial to test an API. Here some extra features that can be taken advantage of to enhance your API testing efforts. So, if you plan on creating API functional tests that you would also like to leverage in your performance tests, kill two birds with one stone. Use the API testing tool.
- KarateDSL– Here, unlike most BDD frameworks (Cucumber, JBehave, SpecFlow), you don’t need to write step definitions as the tool has already created all the step definitions to get you started.
HP Morgan is a Tech Analyst at Tatvasoft.com.au, A Custom Software development in Australia. He is having seven years of experience in a Technological domain and helps the organization of all shapes. He loves to travel to Spontaneous places.