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 Chrome, Safari, Firefox, and Internet Explorer (because apparently some people still use IE).
Testing on different devices
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.
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.
Web Application Penetration 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, 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.
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.
You may be surprised at how affordable it can be to outsource your QA team.
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/Feature Testing
- Responsive Testing
- Writing automated test plans
- On real devices (iOS 6.1.6 to 10.2.1, Android 4.2.2 to 6.0.1)
- Alpha and Beta Testing
- Functionality/Feature Testing
- Usability Testing
- Testing apps under real conditions
Full reporting into your favorite bug tracking tool.
Device fleet for testing
- Apple iPod2,1
- Apple iPhone 5s NE432B/A
- Apple iPhone 6 Plus MGA82TH/A
- Apple iPad 2 WiFi MC769TH/A
- Apple iPad Air 2 WiFi MGL12TH/A
- Samsung Galaxy Young 2 Duos SM-G130H
- Samsung Galaxy S Duos 3 VE SM-G316H
- Samsung Galaxy Tab 3 Lite 7.0 WiFi SM-T110
- Samsung Galaxy Tab 4 7.0 3G SM-T231
- Asus Nexus 7 ME571K
- Acer Iconia One TD070VA1
- NOKIA Lumia 925
- NOKIA Lumia 1320
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.