Is a QA expert that necessary during development?
OUR Blog
QA Tech lead
Oksana Zhukova
QA Tech lead
APPROACH, STEELKIWI
Mar 24 2016

Is a QA expert that necessary during development?

What is QA?

Software needs to satisfy a level of quality before it is released. Assuring quality involves running a variety of test cases that emulate a broad set of usage scenarios, load factors, environmental combinations, edge cases, and more influencing variables.

Quality assurance (QA) supports projects by adding value to every set of circumstances. Even the best developers in the world make mistakes because they are human, making QA testing the fail-safe to catch any errors. Each software failure costs money in the time spent fixing it, in halting production, in lost revenue, or in another way. The faster bugs are found, the quicker and cheaper it is to fix them. Saving money is always a good thing and QA engineers work to save your future self money.

At SteelKiwi, we develop your software using Agile methodology. QA is an important part of, and should be involved in, every iteration of the development life cycle. The cost of finding and fixing defects rises considerably across the lifespan of a project. This is because the requirements and design specifications need to be taken into account before changes can be made to the code, ensuring that those changes will be compatible with the project’s goals. Also single defect in the requirements could easily have ripple effects into other areas of design and code, making it critical to find issues as soon as possible. Working with our QA experts at this stage of planning will help us avoid misunderstandings, awkward project design, or incompatibility of project requirements.

In the the figure below you can see the relative costs of fixing software defects (Source: IBM Systems Sciences Institute)

Pareto Diagram

Aren’t developers QA experts?

While a developer may objectively know what to look for in testing, it’s difficult for them to remain objective when it comes to their own projects. Every developer goes into testing their own software with bias. The developer knows what has been developed and how it should work and ends up focusing on testing his or her own functionality instead of testing the product. This limits the testing and can produce incomplete results. A development team should avoid testing its own program (unit testing is a responsibility) and, instead, rely on QA teams to provide objective testing results.

Critical problems with having developers perform QA testing include:

  • unconscious developer bias towards the quality of their own work, meaning that developers may not rigorously test all aspects of the project because they are confident that they’ve produced bug-free code.
  • defending mistakes that have occurred instead of focusing on resolving them.
  • being too close to the project and not thinking outside of the box, resulting in some scenarios or edge cases being overlooked.

Software should be tested in a neutral way to have unbiased testing results, which can only be done by an external party and not the developer(s) themselves. Because developers often work under high pressure and tight deadlines to implement requirements and features as quickly as possible, the quality of work may be compromised. The only way to have accurate QA testing results is to have a separate, objective third party perform the QA testing.

Remember, the earlier on that a defect is found, the less costly it is to fix.

Advantage of Early Defect Detection

Why QA should be done by QA experts

Testing is not about just validating that the system is performing how it should be. It is also about assuring that the system isn’t performing in ways it shouldn’t be. An expert QA tester is able to delicately go about pushing a system to (and beyond) its limits to ensure quality and appropriate functionality.

Quality assurance testing includes:

  • a critical approach to the project, often missing in the developer’s tests. Testing is a creative, destructive process in which every aspect of the project is carefully looked at and picked apart to ensure it works how it’s expected and supposed to.
  • more than just a post-programming evaluation. QA should be an integral part of each phase of the systems development life cycle (SDLC).
  • searching for the flaws in the project. This requires a neutral and objective set of eyes and a critical analysis to find anything that might go wrong.

A dedicated QA engineer brings a fresh perspective and interacts with the product features the way a new user would. A person with experience in QA will try to break the application, finding the faults in the system long before any user is exposed to them, which is exactly what you want to happen during the testing of your product.

SteelKiwi also has a number of QA engineers available to work together with the development team by providing user acceptance testing (UAT). We only work with QA engineers that have successfully passed International Software Testing Qualifications Board (ISTQB) exams, ensuring that our QA team is knowledgeable and familiar with rigorous testing methodologies when performing the testing process.

We are able to provide UAT because we have independent QA engineers located in separate-offices, objectively testing the usability of your application.

In terms of SteelKiwi’s support policy, our QA team will investigate any issue that arises during production to help the developers fix it quickly.

Testing activities provided by SteelKiwi’s QA Department

The SteelKiwi team provides clients with testing activities at the early stages of the development process, decreasing the cost of fixing flaws and increasing the overall quality of the product. Bugs are always easier (and cheaper) to fix if they are found early on in the development cycle. A bug at the design stage is 10 times easier to fix than a bug at the coding stage, which is much easier to solve than a bug in the production code. That’s why it’s important to test every product thoroughly.

We provide the following testing activities to our clients:

Web applications:

1. Full testing of application functionality that includes:

  • login functionality;
  • sign up functionality from main page and via Social networks;
  • forgot password functionality;
  • main menu;
  • 'contact us' forms;
  • dedicated testing of features of your site;
  • testing of user details and data saving;
  • zoom in and out functionality;
  • checking the grammar;

2. We will test a number of commonly used End-to-End scenarios.

3. Cross browser and cross platform testing:

  • IE (different versions), Chrome, Firefox, Opera, Safari;
  • Windows, Linux, iOS;

4. Testing application on mobile devices and various screen sizes;

  • consistency between Web and mobile;

5. Localization testing;

6. Load testing for 1000 users;

7. Checking response time and site availability from geographically distributed test points;

8. Usability testing

9. W3org validation

10. Detailed report of completed QA efforts, complete with test coverage matrix and test case run statistics.

Mobile applications:

1. Full testing of application functionality that includes:

  • login functionality;
  • sign in functionality from main page and via Social networks;
  • forgot password functionality;
  • main menu;
  • 'contact us' forms;
  • dedicated testing of features of your application;
  • zoom in and out functionality;
  • testing of UI appropriate for the form factor (phone versus tablet, screen size, resolution, and existence of hardware buttons or keyboard);
  • checking the grammar
  • checking notifications (could be they switched off or changed)
  • testing to accommodate all sizes of text;

2. Installation/re-installation testing;

3. We will test a number of commonly used End-to-End scenarios.

4. Testing of full list of touch device options.

5. Testing on different iOS and Android devices.

6. Testing of handling on different interrupt conditions:

  • testing considering audible, visible, and vibrating alerts;
  • phone calls;
  • text messages;
  • app notifications;
  • battery warning;
  • forced updates;
  • switching between apps;
  • locking and unlocking the screen;
  • music playing while using the app;

7. Testing of functionality of application on different Internet connections:

  • Wi-Fi;
  • 3G;
  • testing under no, low, and partial connectivity.

8. Usability testing.

9. Localization testing.

10. Detailed report of completed QA efforts, complete with test coverage matrix and test case run statistic.

QA is invaluable

The importance of quality assurance may not be evident, but it is invaluable. Think of QA as a water filter, finding and fixing the impurities in your tap water. Even though you might not easily be able to see these impurities, they are there and they can make you sick. This is what QA does for software development. Even if the flaws are not evident, it is important to test for, find, and fix them before they make the software sick or broken.

A product that hasn’t been tested may look okay at first glance, but once you start to scrutinize it, you find the issues that should have been filtered out. This is the value that QA provides and this is why it is such a critical and highly recommended part of software development.

If you’re interested in our QA testing services or would like to find out more about starting a project with us, please don’t hesitate to get in touch

SIMILAR POSTS
Nov 23 2016
All necessary features that you should know before developing your own music app. Statistics, estimated cost and our hands-on experience.
Nov 11 2016
Consider the benefits of developing and alternative methods of using driver app. We will count how much it will cost to create an app like Uber or Lyft, analyze some statistics.
Nov 01 2016
Planned well, developed well. Today we are going to talk about the project management triangle and how to plan the project's life cycle effectively. Also you can take a look at how it all works on practice in our team, where our PM and developers collaborate on planning stage using Scrum methodology.