Software testing: types and methods

August 16, 2016 | by Monica Rodriguez

In App development, developers, QA testing, UX

Software testing is a tool used to identify the quality of the computer software and check for possible errors.  It is the process of executing an application under positive and negative conditions by manual or automated means. 

Make your App an Amazing App

Software testing checks for specifications, functionality, and performance.  It is hugely important for many different reasons.  Software testing is designed to catch defects and errors in development phases.  It ensures customer satisfaction and provides a reliable and high-quality product.  This, in turn, leads to lower maintenance and service costs down the road.  Testing is required for an effective performance of software application and product.  For more information on Software Testing Life Cycle (STLC), check out Gustavo Castro’s post.

There are three different methods to software testing: Black Box Testing, White Box Testing, and Grey Box Testing.

1. Black Box Testing

This method that focuses on testing the functionality of a program, a component, or an application against its own specifications. Specifically, this technique determines whether combinations of inputs and operations produce expected results.  This method attempts to find errors or faulty programming with any incorrect or missing functions, in interface errors, in behavior or performance errors, and in initialization and termination errors.

2. White Box Testing

The internal structure/ design/ implementation of the item being tested is known to the tester. The tester chooses input to create paths through the code and determines the appropriate outputs. Programming know-how and implementation knowledge is essential for White Box Testing. This is abour software testing beyond the user interface and into the nitty-gritty of a system.  It is applicable to the following levels of software testing: unit testing and testing paths within a unit, integration testing for testing paths between units, and system testing for testing paths between subsystems.

3. Grey Box Testing

This is a combination of Black Box Testing method and White Box Testing method.  In Black Box Testing, the internal structure of the item being tested is unknown to the tester and in White Box Testing, the internal structure is known. In Gray Box Testing, the internal structure is partially known. This involves having access to internal data.

Software testing is a process of executing a program or app with the intent of finding the software bugs.

There are also many different types of software testing: unit testing, integration testing, smoke testing, ad-hoc testing, regression testing, performance testing, security testing, stress testing, and UAT testing.  Below find some examples and definitions of various testing types.

Unit testing is normally performed by the programmer that developed the program. Integration testing works with client and server applications.  It often involves multiple iterations through the integration test processSmoke testing is the initial testing process exercised to check whether the software under test is ready and stable enough for further testing.  Ad-hoc testing is an informal type of test that aims to break the system.  It makes sure the crucial parts of the application work. 

Regression testing involves assuring that all aspects of an application system remain functional after testing. Performance testing checks the speed with which applications can work under certain workloads.  Security testing works to ensure the safety and confidentiality of a system by checking for information leaks.  Stress testing works above normal operational capacity, often to breaking points.  UAT, or User Acceptance Testing, employs real-life-users to work the system under real-world scenarios.

Testing every detail and functionality in an application is incredibly important to ensure the quality of product and satisfaction of your customers.  At Definity First, we play close attention to the details in order to deliver the best results. Any software enquiry? Contact us! [email protected]