The Advantages of Software Testing in a Different Time Zone

The growing popularity of modern software development methodologies, like Agile and DevOps, combined with the social media-driven 24-7 business landscape has led to the need to enhance applications at a faster pace. Relatively new methodologies like Continuous Delivery and Continuous Integration are the ultimate goal for many software development shops. In short, software engineering needs to operate at the speed of business.

What if your QA team is located in a different time zone than your development staff? Maybe even on the other side of the world? Your programmers arrive each morning with a list of bugs to fix, while the QA personnel are able to test those changes “overnight.”

Is this an alternate way to make Agile or Continuous Delivery work? Let’s look more closely at the details.

Your Entire Software Team works around the Clock

Having your entire software development team engaged on a 24-hour basis offers many advantages to companies aspiring towards the Continuous Integration model. Separate locations for your QA team and software engineers help make this a reality.

Even a four to five hour difference in time zones provides time for additional collaboration when both teams are “on the clock.” Longer distances place an onus on providing clear communication between teams on what needs tested and/or what bugs were found in the last test cycle.

If your entire staff is located in the same building, however, either testers or programmers need to wait around for the other team to finish their tasks. This leads to inefficiency, even considering the enhanced communication desired on an Agile or DevOps project. A scenario where one team works while the other one sleeps offers the best use of time.

Helping the Software Development Process achieve Continuous Delivery

Ian Lotinsky, the CTO for LearnZillion, leads a software development process leveraging the Continuous Delivery methodology. In a blog post offering advice for shops looking to implement Continuous Delivery, he mentions the advantages derived from engaging a QA team located offshore. “When an engineer’s code has passed peer review and the automated QA test suite, it is sent along to QA for manual inspection. Test results are back by the next business morning because some of our QA team members are located in India. They test our work while we sleep,” said Lotinsky.

Another key point from Lotinsky’s quote worth noting references the fact only a few of their testers are located offshore. This arrangement allows some QA personnel to work more closely with the programming team during the day, while the testing never stops after the remote QA staff picks up the effort overnight. The key for your software team is finding the right mix of a 24-hour development cycle compared to the enhanced communication and collaboration when both testers and programmers are located in the same building (or closer time zones).

Betica’s own certified Software Testing Laboratory is located in the Philippines, offering your organization the benefit of a 24-hour development cycle depending on the location of your software engineers. Contact us for additional information.

Tips for Finding the Best QA Software

Outfitting your QA team with the best software to help them perform their job plays an essential part in the overall efficiency of your SDLC. Trying to manage a complex QA process using merely the Microsoft Office suite or similar applications offers some benefit, but they aren’t really tailored to the task at hand. A dedicated QA application needs to provide the right feature set to compliment how your organization tests software.

In the past, we’ve talked about the importance of a robust toolbox for any QA team. Let’s take a closer look at some tips for finding the right QA application for your company.

Perform your Due Diligence First

Doing a complete needs assessment is a must before even beginning to research the various off-the-shelf QA applications. The size of your organization is important, as larger companies may benefit from more esoteric features like testing automation. Smaller firms where testers wear many different hats might want the ability to easily manage test environments without having to get help from network administration personnel.

Whether or not your software development projects follow the Agile or DevOps methodologies is another consideration. In this scenario, features supporting collaboration are necessary. Easy interfacing with other applications geared towards Agile project management helps make things run smoothly.

Does your shop primarily develop desktop software for Windows or Mac OSX? What about web applications? Are mobile apps or embedded software also part of the equation? These vital questions all factor into your final decision.

All QA applications need to provide requirements and bug tracking, as these are core functions benefitting both testers and project managers. Make sure a robust reporting engine — including rich testing history — is provided. The ability to export reports in a variety of formats, like PDF or Wiki, is a plus.

Get together with your software development management team and discuss these and other important points. Make a list of required features as well as functionality that is nice to have but not essential. Now you are ready to begin researching applications.

Find the Vendor with the QA Application for your Team

Make it a point to collect product information from a variety of QA software vendors. Work with your team to narrow down the choices to anywhere from three to five applications. Have your team rate each QA application on the criteria you feel most appropriate.

Follow up your team member’s individual ratings by researching online reviews from trusted sources within the QA community. Reach out to some of your connections on LinkedIn to see if they have any hands-on experience with the applications in question. In many cases, these sources provide more meaningful insight than those derived from marketing information or even press reviews.

Take advantage of any free trial periods if provided, so your team can actually get hands-on experience with the various candidate applications before a final decision is made. Once you’ve decided, make sure to choose a licensing option offering the most flexibility for both your team and your company’s bottom line.

Hopefully, these tips offered a measure of insight before you go shopping for a great QA application for your staff.

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.