QA Best Practices on an Agile Project

The Agile and DevOps movements continue to affect how software gets written. We noted this growing trend specific to DevOps in last week’s blog post. The highly collaborative nature of both development methodologies is leading to faster deployment cycles; in some cases approaching the speed of Continuous Integration.

A fast and highly iterative development process puts more pressure on the QA role to properly vet software, while working closely with developers, business stakeholders, and network professionals. With high quality software as a goal, here are some Agile QA best practices worth checking out for your team.

Communication and Collaboration are Vital

Not surprisingly, strong collaboration and communication are at the center of any Agile project. At the beginning of the effort, explain the communication channels to everyone on the team. During each iteration, make sure daily meetings are held; anything from 15 to 30 minutes works without keeping the team away from their testing duties for too long.

Consider letting your testers spend time with the programmers when they are coding features and bug fixes. In many cases, having a different pair of eyes looking at an issue helps inspire solutions to difficult problems. Video chat services also facilitate this kind of interactivity if your teams don’t work in the same building.

Leverage an online wiki or some other application for project documentation, bug and issue tracking, as well as other meaningful information related to the project. Keeping everyone on the same page in this fashion is vital for a project’s ultimate success.

Involve QA in the Requirements Gathering Process

When an Agile project is still in the requirements gathering phase, make it a point to include your senior QA team members at this point. This helps their overall understanding of the scope of work and definitely allows them to create more meaningful test cases while translating the project scope to other QA staff. An additional benefit is everyone is able to meet each other early on and begin the collaborative process.

Multiple Virtual Testing Environments are a Must

Work with the network engineers to ensure the QA team has access to multiple virtual environments for testing, including backups. Since the iterative cycles on Agile projects are faster than usual, multiple environments ensure bottlenecks won’t adversely impact your team’s progress. This rule also applies to environments set up to handle load testing and other QA scenarios.

Catching Software Defects Early

One of the major advantages of the Agile Methodology is how its faster iterations allow software bugs, database design problems, and user interface issues to be caught early. We’ve talked before about how the cost of software defects rises exponentially the later they are found in the development cycle.

Don’t assume simply following Agile principles itself will help detect issues quickly. Make sure the QA team gets their hands dirty testing each sprint, no matter how early in the project they occur. This also helps get everyone used to the overall speed of an Agile project.

Stay tuned to upcoming blog posts over the next few weeks, as we look more closely at how the QA role works on Agile projects.

News from the World of QA — February 2016

This time out on the Betica Blog, we are going to take a look at some newsworthy stories and trends from the past few weeks related to the software QA world. Hopefully, they offer a measure of insight into other perspectives on QA’s role in the modern business world at large.

Building Better Tools for Software QA

In the past, we’ve covered the importance of leveraging helpful tools to facilitate the software quality assurance process. This rule applies to all areas of QA — from desktop software to websites to mobile apps. Using excellent tools helps the QA engineer perform their job with more efficiency and speed.

Earlier this week, SmartBear Software, a developer of tools for QA, released a new update for its Ready! API testing suite used for this vital area of software development. This news was reported on at the software development news site, SD Times.

Version 1.6 of SmartBear’s product adds useful capabilities aimed at large scale enterprise QA. New support for Docker containers facilitates load testing, which is important for simulating high-traffic websites and distributed apps. Automated test libraries and security certificates make deploying virtual API sandboxes an easier process.

John Purcell, Vice President of Products at SmartBear commented on the reasoning behind the new features. “Professional development and testing teams need tools that support enterprise-level requirements like big data sets, multiple environments, company-issued security certificates, auditing and running only certain branches of tests based on continuous integration events,” said Purcell.

In short, Ready! API appears to be a testing tool large development shops need to explore for use by their QA teams.

The Growth of DevOps leading to Smaller Software Deployments

DevOps, which is in some sense a development out of the maturing Agile movement, continues to affect how software gets written and tested. One notable trend involves longer development cycles using the traditional Waterfall methodology being replaced by smaller iterations following Agile and/or DevOps principles. This gradual shift in direction was reported on in the UK-based IT website, The Register.

The increased close collaboration between software engineers and QA personnel ushered in by DevOps tends to thrive when working on faster iterative cycles. Many enterprises eye Continuous Deployment or Integration as a goal worth striving for, especially in today’s fast-paced, competitive business environment. There simply isn’t the time for 6 to 12 month development cycles when customers — whether external or internal — require new features working perfectly on a weekly basis.

The Register talked about this trend with an IT manager at a large enterprise. “We did an analysis of hundreds of projects over a multi-year period. The ones that delivered in less than a quarter succeeded about 80 per cent of the time, while the ones that lasted more than a year failed at about the same rate,” the manager commented.

Simply put, faster iterative cycles led to a better chance at a successful deployment. More timely updates are what the customer wants, and improved software quality appears to be an additional bonus. Because of this, expect more companies of all sizes to implement Agile and DevOps-based development methodologies.

Stay tuned to the Betica blog from more insights into software QA.

Tools of the Mobile QA Trade

In our last blog post, we provided an overview of the mobile QA process. This week’s article dives a little deeper into the QA engineer’s toolbox to take a look at what software supports their work when testing a mobile app or website. It might be an emulator or even mirroring software to help them record a mobile app in action on an iOS or Android device.

Let’s take a closer look at some stand alone emulators and other applications used by QA teams involved in mobile testing.

Mirroring Software helps when Testing Mobile Devices

Even considering the overall convenience of mobile device emulators, most QA professionals prefer to test with an actual piece of hardware. It is truly the best way to properly benchmark an app or website’s performance on a mobile footprint. Desktop computers are too powerful to properly simulate the speed in which an app runs on a smartphone or a tablet.

QA teams use mirroring software, like Reflector on the iOS platform and Mobizen for Android, for two major reasons. Mirroring allows the tester to view the app in action on a larger screen giving them a better view of the user interface. They are also able to make a recording of the interaction with the app or website being tested.

Being able to record an app’s user interface in action definitely helps when logging bugs and other issues with the software’s performance. Having a visual recording of an app also allows software engineers to more easily replicate any issues discovered by the QA team.

Stand Alone Mobile Emulators

While both major mobile app development environments — Apple’s Xcode and Google’s Android SDK — contain built-in emulators, some QA teams prefer to use stand alone emulation software to perform their mobile testing. In the Android world, some device manufacturers, most notably Samsung, offer their own emulation software, providing benefits when testing user interfaces for a specific device. The company even has a web-based emulator for the Galaxy Tab.

A variety of Android emulators are actually aimed at end-users, allowing them to run games and other Android apps on their Windows computers. QA teams are also able to take advantage of these emulators in a pinch. BlueStacks and GenyMotion are two of the more popular examples of stand-alone Android emulators.

In addition to the iOS and Android platforms, emulators exist for some of the less popular mobile platforms, including BlackBerry, Java Micro Edition, and Windows 10 Mobile. Redmond also provides an integrated mobile emulator as part of the Visual Studio IDE, in the same manner as Apple and Google.

The wearable market is still in nascent stage, but emulators for the Apple Watch and Android Wear help QA engineers test apps targeted at these platforms. Expect more examples in this arena as wearables see wider acceptance from consumers. When it comes to most mobile testing, however, smartphones and tablets remain the focus for app and website development.

Stay tuned to the Betica blog for upcoming articles as we continue to explore the wide world of QA!