Testing is one of the most important stages of the software development life cycle. These days, there are two main approaches to software testing: manual and automated. Most QA teams skillfully combine both approaches as they are not entirely interchangeable and have either advantages or disadvantages. We are going to consider manual testing in detail. So let's start from scratch and consider the manual testing basics.
Manual testing is a software examination and utilization from the end-user perspective to assess its quality, detect existing defects, and uncover possible weaknesses. In contrast to automated testing that utilizes a software program to conduct tests, manual testing reckons upon human's actions.
As a rule, to provide professional and comprehensive testing, most manual testers organize their workflow in the following way:
Manual testers must get acquainted with the requirements to ensure a successful QA process. Thus, they can understand the software's objective, operation principles, main functions, and possible vulnerabilities. Testers can make up excellent test cases and identify more defects using this information. However, project specifications and user stories are not always available. In this case, manual testers should be more inventive and check other information resources to realize how an application should work.
As soon as manual testers have gotten acquainted with project requirements, they start to draw up test cases using various test design techniques. Test cases are used as instructions for manual testers, as they contain the consecutive steps for a particular function or scenario testing. They should be rather detailed. Therefore, other testers will also be able to carry out your tests, not asking clarification questions.
Some manual testers still use an Excel document to file their test cases. However, various case management tools are available; they can significantly simplify test case creation, storage, and management.
After all test cases have been made up, and the test environment has been prepared, manual testers go ahead with test conduction. If manual testers detect bugs during testing, they must log bug reports using a bug tracking system. The bug reports must also be detailed and contain reproduction steps, an expected result, an actual result, and relevant attachments (screenshots, screen recording, etc.). Therefore, a developer can get bug essence right and quickly reproduce it.
How to write an effective software defect report
As a rule, after testing completion, manual testers undertake an analysis to receive useful metrics that can help make the right consequences and plan future activities. It can take just a few clicks if you use one of the various test case management systems.
In our manual testing guide, we cannot leave out the manual testing types. Frankly speaking, there are countless manual testing types, but we will consider the most widely used.
Generally, manual testers turn to exploratory testing when they want to understand the basic idea of the software or get acquainted with its new features. It has no guidelines, and testers explore systems following their own initiative and curiosity. Exploratory testing is carried out whenever a tester thinks it is required.
There is no chance to effectively carry out usability testing without engaging people because the user-friendliness of software is evaluated on the ground of users behavior and emotions. During usability testing, manual testers make sure that an application is simple, convenient, and intuitive to avoid end-users confusion and frustration.
Related article: What You Should Know About Usability Testing
In the process of GUI testing manual testers check fonts, color palette, windows, buttons, and all other GUI elements and characteristics to guarantee that there are no errors or confusions and provide the best user experience.
Manual testers perform localization testing to ensure that an application meets various language and cultural requirements. Localization testing is particularly important if an application is targeted at a global user community.
Compatibility testing is conducted to ensure that an application works properly with other software, different hardware, network, etc. Compatibility testing is rather time-intensive. For this reason, most QA teams tend to automate this process. Still, if there is a need to carry it out manually, it is advised to define the top-priority browsers and platforms and concentrate on them.
Read more: What is compatibility testing
Smoke testing verifies only the key functionality of the application to define whether it corresponds to its primary objective and does not contain critical bugs. Smoke testing is a kind of preliminary checking that is carried out before more critical, in-depth testing.
Regression testing is executed before every release to check whether updates have not affected existing functionalities. Regression testing of large, sophisticated applications can be extremely time-consuming. For this reason, if there are opportunities, many companies try to automate it.
Three manual testing techniques are differentiated. So, let's consider each of them one by one.
Black box testing is conducted in a way that resembles end-users interaction with a system. It doesn't require knowledge of the internal structure and coding skills. Conducting black-box testing, QA engineers interact with UI, test functionality, and verify whether outputs coincide with expected results.
White box testing technique is usually utilized by developers to review code and dataflows and detect possible hidden bugs. This technique requires good coding skills.
This manual testing technique is a balanced combination of either black box testing or white box testing. Grey box testing covers all aspects and deals with everything but in a more superficial manner.
Related article: Difference between white box, black box and grey box testing
A manual tester profession appeared quite a long time ago, and a considerable number of myths have grown around it. Right now, we will debunk the most common myths.
It is probably the most widely spread myth. According to mainstream thinking, everybody can do testing. Let me disagree. Manual testing is a sort of art. A special mindset and skills are required to conduct testing as it is not just a random clicking, as some people may think. A manual tester must be extremely detail-oriented, obsessed with product quality, think extraordinary, know different software development aspects, and many others. Not everyone can be a professional manual tester.
This misbelief is becoming very popular these days. Some people think that manual testing has become out-of-date, and automated testing will completely replace it very soon. We must reassure you that manual testing is the base of the QA process. Automated testing would never displace it. Manual testing helps make a stable product, and only after that, automated testing gets into a game. Automated testing is impossible without previous manual testing.
It's worth saying that not every programmer can become a good tester while many manual testers successfully master programming to understand all aspects of software operation and move to a new level.
There is an opinion that manual testers idle most of the time and get to work in the end. It is a blunder. If some companies indeed use this approach, the project has severe problems. The involvement of a QA team at a final stage is a big risk for product quality and schedule. Testers must get to work as early as possible to have enough time to study documentation, analyze risks, draw up and conduct test cases.
As was mentioned earlier, some people have doubts about the importance of manual testing. Nevertheless, any professional QA engineer can easily refute this statement. There are many reasons why manual testing is indispensable, so let's consider some of them.
User experience plays an important role in quality assurance. In some situations, just a human can properly conduct certain tasks and provide an appropriate assessment. For instance, it is impossible to imagine the conduction of usability testing or localization testing without human involvement. Compatibility and interactions with mobile devices can't be checked with automated testing as well. Application performance during wi-fi turning off and turning on, simultaneous running with other apps, incoming calls or messages, etc. can be checked only by a human too.
Automated testing cannot substitute manual testing but can be and even must be effectively used in combination with it. While automated tests save time with repetitive tasks, manual testing efforts can concentrate on more creative work.
Even keeping up with the previously prepared test cases, manual testers can still uncover bugs in places they have not expected to find. That is very important. Testers detect many bugs while they are checking something else. In its turn, automated testing can't spot defects that it hasn't been programmed to search.
Automation requires not only considerable initial investments but also high maintenance expenses. For large scale projects, automation can be indeed beneficial in a long-term perspective. However, for small projects, automation is still a waste of either time or money.
Due to continuous script updating, it is difficult for automated testing to keep up with sprints. Only perfectly managed automation can manage to do this.
Manual testers usually act as end-users, so they not only ensure correct work of application and help define new ways of product improvement with their pieces of advice and suggestions.
Repetition and variability are two characteristics of effective testing. Automated testing is appropriate for the repetitive testing process, but it's not enough. Manual testing, in its turn, can provide needed variability.
Manual testers have at their disposal various useful tools that considerably simplify the testing process. Here you can find the most widely used.
These tools are handy and used by manual testers to easily create, manage, update, and store test cases.
Related article: Best Test Management Tools
Bug tracking solutions are indispensable helpers of manual testers. With their help, QA engineers create, modify, store and manage bug reports as well as get valuable statistics.
Related Article: Best Bug Tracking Tools
These tools help manual testers quickly verify whether the UI elements are rendered correctly across multiple browsers and how the code responds in each browser.
Related Article: Best Cross Browser Testing Tools
Manual testers often have to attach images and videos to bug reports to describe an issue more precisely. These tools help to create needed images and screen recordings quickly.
Manual testing involves much effort and can also take much time. Nevertheless, it is essential to ensure a high level of software quality. Automated testing provides fantastic opportunities, but despite its advantages, automated scripts can test just what they have been written to test, while manual testing is more adaptable and creative. A human tester can always find things that an automated test cannot. To gain the best results and guarantee the top-notch quality, QA teams must use a combination of either manual or automated testing, as they are two sides of the same coin.