Manual Testing in software engineering

Manual Testing in software engineering

8 mins read974 Views Comment
Updated on Sep 23, 2022 12:42 IST

This article is about manual testing which is done to check the usability of a software by using human expertise.This article includes its advantages /disadvantages,its types and procedure to use manual testing

2022_09_MicrosoftTeams-image-9.jpg

Software testing is an essential step in the development of any technology-driven product. Automated software testing has been widely adopted recently as developers look to save time and resources.But manual testing have its own benefits and still used in industry these days. In this article we will study about Manual Testing in software engineering.

Table of contents

Recommended online courses

Best-suited IT & Software courses for you

Learn IT & Software with these high-rated online courses

18 K
1 year
39.88 K
2 years
– / –
2 years
18 K
1 year
– / –
2 years
10.8 K
6 months
16.25 K
4 weeks
19.5 K
12 months
name
ICACertificate
– / –
80 hours

What is manual testing?

Manual testing is software testing in which test cases are executed manually by testers without using any automated tool. Manual testing identifies bugs, problems, and defects in software applications. For example, a tester can interpret specific symptoms from a bug and provide suggestions on how to fix it- which is very helpful in development.  Manual software testing is the most primitive of all testing types and helps find critical errors in software applications.

 

Manual testing example

Manual testing has many real-world applications and is especially useful for evaluating usability and accessibility. For example, if you want to start an e-commerce website, you need to make sure:

  • Optimizing for different browsers and devices
  • Hassle-free checkout process
  • Load high-resolution images quickly
  • Links to social media channels

In manual testing, testers review the code driving each of these functions to ensure that they are working as intended by the customer. Manual testers can also comment on the website’s appearance and evaluate it from the user’s perspective.

Software Development Life Cycle
Software Testing Life Cycle
Agile Model In Software Engineering

Why is manual testing required?

  • Identifies the bugs, issues, and defects in the software application.
  • Helps to make the software more maintainable and efficient by increasing testability and providing a high level of test coverage.
  • Required human expertise in some of the areas where we have to test the look and feel of software, or changing GUI designe are there.
  • Allows test management to concentrate on the core business operations.

When to use manual testing

Any new application must be manually tested before its testing can be automated. Manual Software Testing requires more effort but is necessary to check automation feasibility. 

let’s take a look at a few scenarios where you can apply manual testing

1. Exploratory testing 

Since domain experts do exploratory testing, this type requires the tester’s knowledge, experience, analytical skills, logical skills, creativity, and intuition. The tests here are characterized by poor documentation or short execution times, so basically, human skills are required to execute the test process.

2. Less planning and shortage of time

The scenarios in which it requires minimal planning and maximum test execution, then you should choose manual testing.

3. User-friendliness

Manual testing helps us understand the application’s usability. Therefore, this testing measure whether software or product is user-friendly, efficient, or convenient for the end-user. Observation is the most crucial factor. A manual approach is therefore recommended.

4. Ad hoc testing 

As the name suggests, this type of testing does not follow any fixed method or approach. You can say, well, that’s why it’s an informal testing type. In ad hoc testing, testers randomly test the application without following any documents and any test design techniques. So manual testing is preferable here.

5. Initial stage

In the following cases, you can use manual testing. 

  • If the project is usually in the early stages of development
  • Short-term projects are there
  • Writing Scripts take a long time. 

Real life scenario of Manual Testing

Let me give you a real life example

If there is a registration page which a manual tester have to test manually.Then he will probably check whether

  • The required number of field are included.
  • If the password field is throwing error when extra characters are entered.
  • If NAME field is not taking numerical values from user.
  • Email id should contain @ sign else error should be thrown.

 

How to perform Manual Testing

  • Read and understand the software project documentation/guides.
  • Also check out the Application Under Test (AUT) if available.
  • Design test cases that cover all the requirements in the documentation.
  • Test case review and baseline with team lead, customer (if applicable) Run test cases in AUT Report an error.
  • Once the bug is fixed, rerun the failed test case to see if it passed.

Advantages of manual testing

1. More accurate

Manual testing can be tedious and time-consuming, but it provides more accurate results than automation alone. 

2. No programming knowledge is required.

Understanding requirements, documenting test cases, and executing test cases are essential tasks in manual testing, but programming is not used.

3. Recommended for dynamically changing GUI designs

Automated testing is not recommended if the application’s graphical user interface changes dynamically.

4. Recommended for usability testing

Human users can only accept the look and feel. Test tools cannot check the usability of the system. Testers interact more with the team and are more likely to find bugs. And testers can make suggestions to the development team.

Disadvantages of manual testing

1. More budget required

If budget is an issue, choosing a manual strategy may not be the best option since it will produce results faster than manually performing tests alone.

2. More skilled labor is required.

Manual testing will require skilled labor, a long time & will imply high costs.

3. More prone to human error

Manual testing is more prone to human errors such as errors due to fatigue, lack of concentration and distraction. Such errors may go undetected if overlooked during testing.

Types of Manual Testing

2022_09_MicrosoftTeams-image-10.jpg

1. Unit testing

Test each unit or component of your application’s source code to ensure that each feature works as expected. Developers, usually do it because it requires detailed knowledge of the internal program design and code.

 Also called unit tests, they simplify debugging systems and help detect and guard against future errors. For example, suppose a team is developing an e-commerce website. This task will be divided into modules like login page, username and password check, registration page, cart for adding/removing items, payment page, items page, and returns and replacement page. So these modules are checked individually by the developer.

2. Integration testing

Integration testing is testing an application using two or more integration components. In this testing, units or individual components of the software are tested in groups. The focus of the integration testing layer is to detect errors at points of interaction between integrated components or units.This is done after unit testing individual components and aims to identify issues with interfaces and their interactions.

For example, two modules, like adding/removing items module and the payment module, are checked to see if they are working fine.

3. System testing 

This test procedure is performed to evaluate a complete integrated system. The purpose of system testing is to evaluate end-to-end system specifications. Software is usually just one element of a large computer-based system. Ultimately, the software is combined with other software/hardware systems. System testing is defined as a series of tests whose sole purpose is to test an entire computerized system.

For example-After completion of an e-commerce website, it is tested for its complete functioning before giving it to the user. And check if all components give the desired output.

4. Acceptance test

The customer or end-user performs User Acceptance Testing (UAT) to ensure that the software meets agreed-upon requirements. Sometimes called pre-production testing, this is the final stage before a product is released to the market. For example-User will check if the e-commerce website is working according to its requirements.

Types of acceptance testing include alpha (done in-house) and beta (the application is released to a limited market to generate user feedback).

5. Black box testing

In black box testing, engineers don’t see the black box and only see the inputs, outputs, and hardware components that support them.

For example-When, a user clicks on a registration page; then, black box testing verifies if that registration page is opening and all the features on that page are working or not.

6. White box testing

White-box testing is a technique that allows testers to view and access an application’s internal structure or code. Using this technique, you can easily find loopholes in your application’s design and flaws in your business logic. In white box testing, elements of a software system, such as functions, functions, steps, or methods, are visible to the end user.
For example, If there is a registration page in a website then the tester is concerned about understanding the code for the registration page. He is concerned about which functions and classes are being called and when.

7. Grey box testing

Grey box testing, as the name suggests, is a combination of white-box and black-box testing. Testers don’t have complete knowledge of the internal structure or code of the application. The testing is done based on high-level database diagrams and data flow diagrams. The purpose of grey box testing is to find and isolate bugs resulting from improper code structure or application usage. This process often identifies context-specific errors related to web systems. Expand your testing by focusing on all layers of a complex system.

Conclusion

Manual testing allows the tester to explore the product’s functionality in concrete form. The tester can gather information about the product’s failure rates and ease of use.

If you liked this article, please share it with your friends and hit the like button below.

About the Author

This is a collection of insightful articles from domain experts in the fields of Cloud Computing, DevOps, AWS, Data Science, Machine Learning, AI, and Natural Language Processing. The range of topics caters to upski... Read Full Bio