Software testers working in the field of IT have to pore over their work throughout each stage of every project, scrutinizing each element to uncover hidden issues and problems. The process of software testing starts during the initial stage of software development — a practice which is crucial for both web and mobile development — and lasts until the very last stage of project implementation.

There are several different types of testing that must be carried out within the framework of every project:

manual or auto testing

  • Requirements/design testing
  • Exploratory testing
  • Usability testing
  • Graphical user interface (GUI) testing
  • Application programming interface (API) testing
  • Regression testing
  • Load testing

All of these testing types are intended to support achievement of the highest-quality project within the shortest possible timeframe. (As we all know, the earlier one finds a bug, the lower the costs involved in fixing it.) Let’s look at each type of testing from two different points of view: both manual and automated.

  • Requirements/design — This is the process of testing documentation and design prototypes for completeness, structuredness, and consequentiality of transitions.
    • Auto testing — Mainly affects the technical part of the future design.
    • Manual testing — Involves requirements focused on business processes and user interests.
  • Exploratory — This testing is focused on finding complex and unusual scenarios that are pretty difficult to find at first sight.
    • Auto testing — There are no automated testing methods for this type of testing.
    • Manual testing — Involves creative potential and free search algorithm to carry out successful exploratory testing.
  • Usability — This testing defines the correspondence between the product’s design and modern usability standards.
    • Auto testing — There are no automated testing methods for this type of testing.
    • Manual testing — Given the ability to use the point of view of the product’s final user and extensive experience testing other products, this method allows evaluation of the UX part of the design.
  • GUI — This is used to test the graphical interface and evaluate the level of slicing and layout quality, as well as the level of integration with the server part.
    • Auto testing — Involves automated testing methods to find global End2End problems. The process of writing such automated testing methods should be carried out only when the system is stable enough and you don’t plan on making significant design changes in the future. UI automated testing methods require considerable technical and financial resources; thus, they’re not recommended for use on small-scale projects. The following tools are used to create UI automated testing methods: Selenium WebDriver and TestNG.
    • Manual testing — Involves the initial testing of the layout and the integration with the server part. If the project is relatively small, the regressive testing must be carried out in full. The following tools are used for manual testing: CrossBrowserTesting, Pixel Perfect, Perfecto Mobile, and real devices.
  • API — This involves testing the interface of the server part.
    • Auto testing — Requires integration testing methods to cover the full range of API endpoints according to business logic requirements. The following tools are used to create automated testing methods: TestNG and REST Assured.
    • Manual testing — Allows carrying out of the initial testing of API endpoints using Postman.
  • Regression — This is the set of testing methods focused on finding bugs and problems in the previously tested parts of the applications. It’s carried out not to confirm that there are no bugs, but rather to fix all regressive problems.
    • Auto testing — The problem of regression testing can be easily solved using various automated testing methods. As a result, manual testers are able to invest their time in performing other types of testing (e.g., exploratory testing).
    • Manual testing — A routine process that increases the risk of errors omission due to the human factor.
  • Load — This complex of testing methods is used to evaluate the workability, stability, resource management, and other important application parameters during various scenarios and levels of loading.
    • Auto testing — Automated testing methods allow creation of a large number of loads. The manual tester can provide various scenarios, creating automated tests that emulate real user behavior and improving the overall quality of automated testing. JMeter is a tool used for this type of testing.
    • Manual testing — Can be used to test UI under the load created by automated testing methods.

Like Bread and Butter: Choosing the Right Software Testing Methods

Now that we’ve finished our rundown, let’s return to the question posed in the article’s title. Which should you choose: automated or manual software testing? The answer is simple: all testing methods are good and useful! They complement each other like bread and butter. You can achieve efficient testing only by combining both automated and manual testing.
Manual testers create testing analytics, including writing testing plans, testing cases, and acceptance criteria. They are also responsible for carrying out exploratory, functional (nonfunctional), and sometimes regressive types of testing. Automated testing methods, on the other hand, are mainly used to create integration with testing algorithms to test the backend part of the project. This frees up manual testers’ time, allowing them to focus on finding real bugs and errors using all their potential and inspiration. In addition, when project implementation reaches a specific stage, it is necessary to write automated UI End2End testing algorithms, thereby helping manual testers to avoid the pesticide paradox.
The state of the testing world will stay the same until automated testing methods are able to ask the following highly important question: “And what if?” Until that time, to achieve the most efficient and effective testing possible, expect to use an approach that combines both manual and automated testing.
Want to learn more about how Distillery ensures delivery of top-quality software? Read more here!
Anna Varetsa

About the Author

Anna Varetsa is Distillery’s Head of QA. Having joined Distillery in 2014, she’s proven that she can catch any Heisenbug and that she knows black and white boxes differ in more ways than mere color. Anna believes that perfection is made up of small things — that’s why “pixel perfect” could truly be called her credo. In her spare time, she loves reading great literature and playing intellectual games.