Quality Assurance is often perceived as an afterthought or a delay to releases. However, it’s a vital stage in the software development life cycle to ensure the application is ready for deployment.
Cristian Moga, the lead QA engineer here at ddroidd, fully understands the importance of going that extra mile to guarantee customer and user satisfaction. With more than eight years’ experience as a QA engineer and some musical talents hidden up his sleeve, he approaches quality assurance from a fresh perspective to create a robust final product.
In this interview, Cristian walks us through the performance testing process and sheds light on how it’s key to any software development project.
Although QA is often considered in isolation at the end of the project, this isn’t the most effective approach. By working alongside the development team and clients from the outset, we can offer feedback on user stories, ask questions as issues appear and become a product expert to help reduce the number of bugs.
It’s a common misconception that QA responsibilities start and end with testing. But we need to be a constant throughout the development process. We have to ask questions about the project and requirements, come up with new ideas and suggest improvements that will help in the long run.
Performance testing is a software testing process used to assess the overall performance of an application before it goes live to identify — and eliminate — bottlenecks in the software application.
Although performance tests are ‘automated tests’, there’s still a lot of human interaction required. We have to analyse the application, set up the testing environment, develop and enhance test scripts, debug the tests and execute them.
When carrying out performance tests, QA engineers check for 3 main things:
Speed: Is the application responsive?
Scalability: What’s the maximum user load an application can handle?
Stability: Is the application able to remain stable under varying load conditions?
Whether you have an e-commerce website drawing in customers on Black Friday or an online ticket booking system that explodes during new releases, performance testing is critical to ensure user satisfaction.
Poor performance leads to poor user experience
Slow loading speeds can be a real turn-off for potential customers and can damage conversion rates. For example, a two-second delay in webpage load time can increase bounce rates by 103%, while a mere 100-millisecond delay in load time can reduce conversion rates by 7%.
Requirements vary by region
Users around the world have different connection requirements, so the application needs to be optimised for these situations. QA engineers can test the application on a range of networks at various speeds to ensure that the application runs smoothly no matter where the user is located.
Performance testing helps reduce downtime
According to Gartner, the average cost of network downtime is $5,600 per minute — a costly issue for any business. Performance testing helps eliminate this risk so that the application can cope with peaks and valleys in its loads.
Users have higher expectations than ever before when it comes to optimised web applications. Thorough performance testing ensures that you meet these expectations and drive revenues for your business.
Using tools like Jmeter, Octoperf and Blazemeter, we perform load and stress tests, which fall under the umbrella of performance testing:
Load Testing
Load testing is a process in which the performance of a software application is tested under a specific expected load. It involves simulating demand on the application and determining how it behaves when multiple users access it concurrently.
The overall aim of load testing is to detect — and eliminate — bottlenecks and measure the overall performance of aspects such as user flows, business-critical transactions, and resource use.
Stress Testing
When carrying out stress tests, the QA engineer simulates an extreme user load to determine the “breaking point” of an application and assess whether it demonstrates effective error management under these extreme conditions.
Stress testing helps ensure that the website won’t crash in crunch situations (during seasonal sales or live streaming events, for example).
The secret to successful QA lies in the creativity and curiosity of the engineer.
While there are technical skills involved in this type of work, there are other things you simply can’t learn.
Voted #34 Best Trance DJ in the world, Cristian — AKA Exolight — is a creative at heart. He uses his imagination to uncover new bugs and identify certain edge cases. By thinking outside the box, Cristian can ensure that the final product will perform as expected under any situation.
His curiosity also means that he can dive deeper to weed out every single bug. “QA is the only part of the development process where you want to find as many bugs as you can. Curiosity helps me go that extra mile, finding any sticking points to guarantee the best experience for end-users.”