Manual Testing: Myth and Reality
At Botsplash, quality assurance, verification, and validation is a very important milestone in the software development cycle. Quality assurance can be classified into automated and manual testing. Here we are going to talk about the latter part i.e manual testing.
As the name suggests, manual refers to testing driven by human actions. It’s the process of examining and evaluating from the end-user's perspective to assess the experience and usability of the product. Manual testing follows processes and procedures. Maintaining a process helps testers to work efficiently and manage tasks to deliver the best quality product.
Understand the requirements
Gather requirements to understand the objective, functions, and vulnerabilities. Accordingly, we develop a test plan on the basis of mentioned values.
Write up test plan/case
Write the use-cases of the requirement. Test cases are used as instructions for testers as they contain the consecutive steps for the particular function or scenario being tested.
Testing and reporting issues
After all the test cases are established, perform testing to identify any issues. If issues are found, report them using the bug tracking system to the concerned developer. While reporting, we mention the expected result, an actual result, and the relevant attachments (proofs) as necessary.
Analysis of test result
This is where the test case that was prepared, as well as the entire process, is analysed. Some of the questions that need to be answered include if the newly implemented system meets the initial business requirements and objectives, if the system is reliable and fault-tolerant, and if it functions according to the approved functional requirements. In addition to evaluating the feature that was released, it is important to assess the effectiveness of the development process. If there are any aspects of the entire process (or certain stages) that management is not satisfied with, this is the time to improve.
Listed below you will find subcategories commonly referenced in manual testing:
1. Black Box Testing
Here we test the functionality of the software application without having prior knowledge of the internal code structure, implementation details or internal paths. This testing mainly focuses on the input and output of applications based on software requirements and specifications. For this reason, it’s also known as “Behavioral Testing”.
2. White Box Testing
Unlike black box testing, here we require knowledge of the internal structure. Design must be known to validate the flow of input-output. Unit testing is one of the popular white box testing methodologies.
3. Integration Testing
As the name suggests, integration testing refers to the phase where we merge up individual modules and test as a group.
4. System Testing
Here, the QA team evaluates how the various components of an application interact together in a system. The main purpose of this testing is to evaluate the end-to-end system specifications.
5. Regression Testing
The Need of Regression Testing mainly arises whenever there is a requirement to change the code and we need to test whether the modified code affects the other part of the software application or not. Moreover, regression testing is needed when a new feature is added to the software application and for defect fixing as well as performance issue fixing.
6. Acceptance Testing
Here we verify if the task is ready to move to the production stage. The main purpose is to validate the end-to-end business flow.
Common Myths of Manual Testing
People assume manual testing can be done by anyone. The fact is, to conduct such a method of testing requires a special mindset and analytical skill. A skillset that doesn’t reflect a method of random clicks like most people perceive it to be. Testers should be very focused and obsessed with the product quality. To do so, testers should know different aspects of software development. Testing is crucial and can’t be taken as granted as it represents the bridge between the quality.
Manual testing is the base of the QA process and helps to make a stable product. Automation testing is the resulting process. Automated testing will not displace manual testing.
Testers get involved only post development
It will be a mighty disaster if testers are not involved very early in the process of grooming the requirements. Excluding the testing team in the early process may hamper the deliverable aspects of the developer. Strong and good relationships between developers and testers right from the early stage of the product helps to deliver not only a quality product, but also increases the efficiency of the team.
Importance of Manual Testing
- Human eye is always superior in catching unpredictable bugs or issues. Testers can work on variability of the task, whereas in case of automation, it always seeks for the list of provided protocols.
- UX plays an important role in quality assurance. There are some specific conditions where human effort can properly monitor the provided task and conduct the proper assessment.
- Automation may not always be budget friendly for small-scale projects or startups. It requires considerable investment and subsequent maintenance cost. With funds being limited it may be a bottleneck for small groups, whereas for big companies it might be beneficial in a long term perspective.
There are many tools which can be used while following manual testing. At Botsplash, we use:
Dev/Bug tracking tools: Jira
Cross browser testing tool: BrowserStack
Manual testing involves continuous human effort for which patience is required. Nevertheless it’s essential to ensure a high level of software quality. I can’t deny the fact that automated testing provides ample opportunities, but having said so, it still relies only on the sets of instructions we provide it to test. Adaptation to the environment and variation of the same issue replicating multiple ways might just be an edge for us to trust in manual testing. However, for certain aspects, we are looking forward to using automation. We as QA must use both combinations for the best and qualitative output.