Assignments/Article By Gowsika Yogaraj

What is software testing?

Student Assignment

software testing

Published on Sep 27, 2022

Software testing is the process of inspecting software to test its quality, functionality, and usability. Software testing is the practice of executing logical tests on software programs to identify defects and document how users are intended to interact with the program. These defects are called “bugs” because they are often small, sneaky things that disrupt user experience.

Testing is not only about finding bugs but also giving confidence that you have a good product before launching it in production. A lot of people think of software testing as something you do at the end once all features have been implemented. In fact, iterations of testing can take place at any stage in development; even before coding begins. Testing can be done for almost every piece of code that goes into an application or website. The earlier these tests are performed, the cheaper it will be to correct the issues found and implement new procedures that avoid those bugs in future releases.

Software Testing

Software Testing is a way to assess the software’s quality and reduce the risk of software failure in operation. If the software does not work correctly such software is called faulty software. Testing is done to reduce the risk and find defects.

There are two types of software testing,
  • Manual Testing
  • Automation Testing

Manual Testing

It means testing of an application manually (by humans) to find defects. Test Cases are executed manually without scripts and automation tools in manual testing. The tester verifies the actual behaviour of the software product with the expected behaviour, if any difference is found it is reported as a bug.

Types of Manual Testing
  • Black Box Testing
  • White Box Testing
  • Grey Box Testing
  • Unit Testing
  • Integration Testing
  • System Testing
  • Acceptance Testing

Manual Testing Procedures

  • Understanding the requirements
  • Write the test cases
  • Conduct the tests
  • Write Good bug reports
  • Report the results

Tools used for Manual Testing

  • Test Lodge
  • Zephyr
  • Trello
  • Jira
  • Basecamp
  • Sauce Labs
  • Browser Shots


  • Live Testing
  • Low cost
  • Less Programming
  • Adaptability to change


  • Time Consuming Process
  • High Possibility of errors

Automation Testing

The tester verifies the actual behaviour of the software with the expected behaviour using automation tools and scripts.

Types of Automation Testing Functional Testing
  • Unit Testing
  • Integration Testing
  • Smoke Testing

Non-Functional Testing

  • Performance Testing
  • Regression Testing
  • Key-driven Testing
  • Data-driven Testing

The automation testing contains the following procedures

  • Test Tool selection
  • Define the scope of automation
  • Planning, design and development
  • Test Execution
  • Maintenance

Tools to Automate Testing

  • Katalon Studio
  • Selenium
  • Appium
  • Test Complete
  • Cypress
  • Ranorex Studio
  • Perfecto
  • Lambda Test
  • Postman
  • SoapUI
  • Eggplant Functional


  • Increase speed of test execution
  • Improves accuracy of software test
  • Minimizing human interaction with testing
  • Saves time and money
  • Improves reliability of test


  • Starting cost of Automation is very high
  • Automation is never 100%

Difference between Manual Testing and Automation Testing

Manual Testing Automation Testing
Done manually Done using automation tools and scripts
Time-consuming, taking up human resources Significantly faster than manual testing because it is executed by software tools.
Less Efficient More efficient
Prone to human errors No scope for human errors
Lower test coverage High test coverage
Low test execution speed Test execution speed is high
It is not accurate at all times It is more reliable
The initial investment is low The initial investment is high
Guarantee User-friendliness Does not guarantee User-friendliness
Needs no programming effort Requires programming

Student Assignment

The views expressed in this document are those of the author and do not necessarily reflect the position of the London School of Emerging Technology. View the detailed policy Disclaimer for Student and Personal Websites

Our Latest Blog

Java Spring Boot

Java Spring Boot: A Comprehensive Introduction to Microservices

Introduction to Java Spring Boot and Microservices Java Spring Boot has emerged as an important...
Read More
Fundamentals of Scala Programming

Mastering the Fundamentals of Scala Programming: A Complete Guide to Functional Programming

Introduction to Scala Programming Scala programming has gained immense popularity in recent years thanks to...
Read More
Java Programming

Java Basics for Beginners: A Step-by-Step Guide to Mastering Java Programming

Introduction to Java programming Java, a versatile and extensively utilised programming language, is popular among...
Read More