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

The Future of App Development Learning Kotlin Effectively

The Future of App Development: Learning Kotlin Effectively

Introduction to Kotlin for App Development In the realm of contemporary application development, a language...
Read More
Master the Coding World Key Strategies to Become a Successful Java Full Stack Developer in _2023

Master the Coding World: Key Strategies to Become a Successful Java Full Stack Developer in ‍2023

Introduction to the World of Java Full Stack Development Welcome to the fascinating universe of...
Read More
Revolutionising Distributed Systems An In-depth Look at Microservices Communication with Spring Cloud

Revolutionising Distributed Systems: An In-depth Look at Microservices Communication with Spring Cloud

Introduction to Microservices Communication The software development landscape has dramatically changed over the last few...
Read More