DEV Community

shruthisrivathsan
shruthisrivathsan

Posted on

Software Testing

Software testing is the process of evaluating and verifying that an application does what it is supposed to do.

Testing evaluates the softwares operability, checks for and fixes bugs as and when the software is developed and improves performance and security thereby making it more comfortable for the end users. Although the main benefit of testing is to find errors and defects, it also helps to understand the expected outcome so that the tester can improve the quality of the product.

Software development and testing go hand in hand and software testing can be thought of as the most crucial step in software development life cycle as it improves consistency and performance.

Software Testing - then and now:

Earlier software testing was separated from the development process and was often conducted in the later stage of software development life cycle, after the product was built or executed. It was difficult to fix errors and retest at this stage as it led to time constraint and increased cost.

Now, software testing is a part of the development process and the software developer and testers work side by side, thereby reducing time, errors and cost, as well as increasing the quality of the product.

Execution of tests right from the early stages of software development and throughout the entire process, streamlines the process and delivers a risk-free and an user-friendly product.

Over the years, software testing has evolved considerably as companies have adopted Agile and DevOps work environments. This has led to faster and more effective testing methodologies.

Why is testing important?

  1. Finds defects early and saves money by avoiding extra costs to fix errors in the end product.
  2. Improves security of the product as security issues or breaches can be fixed immediately, thereby producing a very secure software.
  3. The expected quality of the product can be met by testing the software and making the relevant changes to improve the quality.
  4. Increases customer satisfaction. Software is developed with the purpose of customer satisfaction. Different customers have different requirements. With the help of testing it is possible to know the expectations of the end users and make required changes so as to create the best application for their needs.
  5. Helps check scalability - how well the software handles i. increased user traffic and data volume.
  6. Helps determine the performance of the product.

Software Testing Life Cycle is the systematic approach devised to test software of an application to ensure it meets the requirements, is secure and free of bugs and defects. The following are the stages in STLC.

  • Requirement Analysis
  • Devise testing plan
  • Test case development
  • Set up test environment
  • Test execution
  • Test closure

Manual Testing:

In manual testing test cases are manually entered by a tester without any automated tools. The tester identifies bugs, defects and defects and fixes them. There are different methods(both functional and nonfunctional) of software testing. The following are a few:

  • Black box testing: This method checks the functionality of the software.
  • White box testing This method checks the internal structure, design and coding of the software.
  • Grey box testing This method is a combination of black box and white box methods where the tester has basic knowledge of the internal structure of the software.
  • Regression testing This method of testing checks if the updates or changes made have caused new defects in the existing functions.

Stages in Manual Testing:

  1. Unit testing - each component of the code is checked individually
  2. Integration testing - multiple units are integrated to check if the units to work together correctly
  3. System testing - to check the system meets the desired requirements
  4. User interface testing - checks user experience
  5. Acceptance testing - checks if the software as a whole is fit for the end user.

Software testing is therefore most important as it helps create high-quality applications with very few or no errors. A system that meets or even exceeds customer expectations leads satisfied customers and to potentially more sales.

Top comments (0)