In traditional manufacturing, Quality Control (QC) is focused on identifying and rejecting defective products at the assembly plant before they reach the consumer. Quality Assurance (QA), on the other hand, puts emphasis on defect prevention. The goal is to improve quality earlier in the process, to eliminate the creation of any duds in the first place.
When creating an IT product, such as software or a website, you no longer need to worry about the quality of raw materials, as you would in manufacturing. However, QA testing is still an essential component of producing a digital product in order to avoid problems and satisfy your customers.
The average consumer will only give you one chance to “get it right.” Rushing a buggy product to the market could kill your entire investment.
What is IT Quality Assurance (QA) Testing?
IT QA Testing is the process of checking and double-checking an IT product for any errors, weaknesses, and points of failure before it goes live. To make sure your users have the best possible experience you need to catch as many bugs as possible before they’re able to damage the reputation of your product. QA testers should run your application or website through every possible use scenario to cover any situation that your real life users may be in.
QA for Software Development
One important aspect of software quality assurance is to check the quality of software at each stage of the development process. This has an analogy with QA in manufacturing physical goods. Just as assuring quality of raw materials can eliminate many defective products from ever seeing the assembly line, the implementation of best practices when writing code can eliminate the possibility of many programming bugs from occurring.
Software QA testing can be divided into two main areas: function testing and performance testing.
Functional testing of software is the process of checking that all of the systems execute properly as expected. Every component of the User Interface must work as intended, and all the data managed by the program should be handled and processed correctly.
Performance testing of software is when you run the application through all sorts of situations to see how it holds up. This can include:
- Measuring response and transaction times
- Volume testing to see how the system handles various volume levels
- Stress testing to check how the system handles when strapped for resources
QA Website Testing
Web Development QA testing needs to account for several different areas:
Testing on different browsers
Websites should be tested on all of the popular browsers to make sure they look and function the same on each one. This means testing the site on different browsers like Chrome, Safari, Firefox, and Internet Explorer (because apparently some people still use IE).
Testing on different devices and operating systems
A huge number of your users will be accessing your website on a mobile device. It’s critically important to test on a variety of the most popular devices to make sure it looks good and is functional on each. You might find that your site works fine on iPad only to discover that it’s unusable on a smaller iPhone screen.
Equally as important is test all operating systems like Android, Windows and iOS to make sure your application or website is working across all platforms.
All of the links should be working and directing the user to the correct destination, whether internal links leading to another page on your site or external links to another website.
Validate online forms
Any forms on your website need to be thoroughly tested to make sure all the text fields are functional, buttons working, and required fields prompt the user to fill them in when they are left blank. In addition, it’s critically important to check that the data is collected and stored in the right location and format.
Check email notifications
When an online form is filled out, it should trigger an email notification sent to someone in your company or some other automated process so that you’re aware of the incoming data.
Check for visual consistency
Your website should have a consistent look. The fonts and colors on all the pages should stick to a uniform style so that nothing seems out of place to maintain user experience.
Web Application Penetration Testing (Security Testing)
A penetration test involves employing a hacker or team of hackers to try and gain access to your systems. Web applications that record user names, emails, passwords, and other sensitive personal information are particularly ripe targets for real world hackers.
With good penetration testing (or security testing), you can identify any potential vulnerabilities, allowing you to apply extra protection to these areas.
Here are some good reasons to run penetration tests:
- A penetration test report gives you feedback on the most vulnerable access points in your application—the ones that hackers would be most likely to exploit
- This information can be used by your developers to better engineer applications to avoid these risks in the future.
- Since a penetration test is run like a fire drill—without warning—it will allow you to test the ability to detect an attack.
- You will further be able to test the ability to deal with a live attack. Many companies are able to detect an attack but lack an effective way to expel the attacker before they can cause damage.
Why You Need a QA Programmer
You might think that you have no need for a separate QA programmer (or QA developer) if you’ve already hired a developer or team of developers to build your software. After all, if they’re the ones tasked with building the website or application then surely they should be able to check the quality of their work as they proceed to eliminate bugs.
While it’s true that debugging is a necessary skill for every software developer, it’s also the case that they don’t always make the best QA testers.
To start with, developers are usually focused on getting things to work. They’re good at problem solving to find ways to make a program do what it’s supposed to do. They’re not nearly so gifted at purposely finding ways to break the software that they spent so much time coding in the first place.
It’s also difficult sometimes for developers to put themselves in the mindset of the end user. Since they built the program, they’re intimately familiar with it and have trouble seeing it with the fresh eyes of a first time user.
How Does QA Testing Save You Money?
Investing in QA Testing should be an important step in your overall product development strategy. The bottom line is that allocating some of your resources to QA Testing can actually reduce your total development costs while also stimulating more growth.
Reduced Development Costs
It might at first sound counter-intuitive that paying for additional staff could reduce your costs. That is until you consider the complex nature of software development.
Identifying and eliminating bugs at the earliest stage possible will allow the development work to progress without becoming built on top of troublesome code. Catching problems sooner means far fewer lines of code need to be rewritten down the line—saving many hours in initial development costs.
In the West we say “the customer is always right”, while in India they take it a step further and declare “the customer is God”. In either case, the message is similar: your customers want satisfaction, and if they don’t get it they will take their business elsewhere.
Rushing buggy code to the market is one of the quickest ways you can permanently turn-off potential customers and kill your project’s momentum.
Launching a Minimum Viable Product (MVP) with limited features is a great tactic to get your foot in the door and test out the market response. But it’s absolutely critical that you make a good first impression by launching with an MVP that provides a good user experience and doesn’t continuously crash or break.
Since you only get one chance to make a first impression, your investment in QA Testing will ensure you don’t lose customers. Instead, you will confidently deliver a quality product to the market and continue to build up traction.
Software QA Outsourcing
Does this mean you need to hire a full-time QA engineer to be a part of your development team? Not necessarily. There are many software QA services available for hire on a per-hour or per-project basis. Software QA outsourcing, much like app development outsourcing, is in many cases the preferred solution for startups and those bootstrapping a digital product with limited funding.
Why You Should Outsource Your QA Testing
There are 5 main reasons to outsource QA software testing:
- Cost saving
- Time saving
The number one reason to hire an outsourced team for your QA needs is the cost saving. By avoiding hiring more in-house staff, your business will maintain lower overhead costs. In addition, QA Testers based out of newly-developed countries such as Thailand are available for a much lower hourly rate than workers with comparable experience located in western countries.
In addition to saving money, by outsourcing your QA team you can also save a good deal of time. Your in-house developers can focus on their primary tasks without having to worry about QA testing, while an experienced QA team will complete all testing tasks efficiently.
Outsourced QA Testers will be more objective than your in-house software engineers. Pride and familiarity are two factors working against in-house developers that makes them less effective at QA testing.
A good QA Tester has to try to find any bug and do anything they can to break the website or app to discover flaws that need fixing.
In-house software developers, on the other hand, are less likely to discover bugs since they have been so focused on making things work during the development process. They don’t want to do anything to hurt their “baby”.
They are also so deeply familiar with the inner workings of the application, that they are unlikely to see it from the point of view of an inexperienced user.
Outsourcing your QA Testing allows you to put it in the hands of experienced specialists. Familiarity with QA processes gives dedicated QA Testers an advantage in efficiency and thoroughness.
When your needs suddenly expand, going with an outsourced QA team puts you in the best position to quickly scale.
Likewise, once your product is stable and ready for market, you can just as easily downscale to continue a more limited QA testing process for your app updates.
You may be surprised at how affordable it can be to outsource your QA team.
Best Practices when Outsourcing QA with Agile Development
When using the Agile development methods, outsourcing may at first appear to be in contradiction with your process, but this doesn’t have to be the case. By following some best practices, you can successfully integrate an outsourced QA Testing team within an Agile framework of product development.
Video Stand-up Meetings
One of the central features of Agile development is co-location and short daily stand-up meetings to keep track of progress and adapt to changing situations. With an outsourced team, you can continue the practice of daily update meetings by moving them into the virtual realm. Skype, Google Hangouts, and other video conferencing software allow you to communicate effectively with a geographically distributed team.
Define Specific Testing Roles
With outsourcing, there is often a significant time-zone difference between your in-house core developers and outsourced testers. As this can lead to daily delays from the time of delivering software to the completion of testing, it is important to designate specific testing roles for the outsourced team that will not hamper the progress of your local developers.
In particular, the outsourced QA team can be focused on testing the performance and integration of your software, whereas your local developers can run automatic unit test to check for validity.
Adopt Continuous Integration and Automatic Unit Tests
Continuous integration is the process whereby newly developed code is integrated into the entire functioning project so that each iteration is a working product.
With automatic unit testing, you have additional code that functions to check the primary code being written.
With continuous integration and automatic unit tests working together, you can be sure that the code produced is always robust and any problem areas are nipped in the bud before they can get out of hand.
At Iglu, we have an in-house team of Thai QA testers that can be hired to perform a variety of services at a rate of US$10/hour. They’re currently equipped for the following:
- Functionality Testing/Feature Testing
- Responsive Testing
- Writing automated test plans
- On real devices (iOS and Android)
- Alpha and Beta Testing
- Functionality Testing/Feature Testing
- Usability Testing
- Testing apps under real conditions
- Compatibility Testing
Full reporting into your favorite bug tracking tool.
Device fleet for testing
Iglu’s fleet of testing devices includes a wide range of the most popular smartphones and tablets such as various Apple iPhone and iPad models, Samsung Galaxy phones and tablets, Nokia Lumina, Acer, and Asus devices.
If interested in discussing QA testing outsource options for your application or website, please fill out the contact form and someone from Iglu will get back to you quickly.