Reading:  

Getting started with Software Testing


Different levels and definitions of Software Testing

The main levels of software testing are:

  • Functional Testing
  • Non-functional Testing
  • Identify the software functions.
  • Based on the functional specifications create input data.
  • Based on the functional specifications determine the output.
  • Execution of Test case.
  • Compare the actual and expected results.
  • Bottom-up integration: This testing involves module/unit testing, followed by tests of higher-level combinations of program units called modules.
  • Top-down integration: In this testing, lower-level modules are tested after the highest-level modules are tested

Functional Testing

Functional Testing is defined as testing the each and every function of components of module or module of an application independently. Functional testing has the following steps:

Unit Testing

Individual units/components of a software/system are tested in the Unit Testing. It usually takes few inputs and single output.

Integration Testing

Integration testing is a software development process in which program modules are combined as group and tested in different ways. In this a unit is defined as the smallest part of an application which will be testable.

Once all the modules are working independently we start checking the dependent modules are working as expected, which is known as integration testing. It is a process of checking the data flow/interface between the modules.

Types of Integration testing: 

System Testing

In system testing, test engineer check the end to end flow of an application, that is navigate through all the modules and check, if the application is working as a whole or not. It also includes tests, based on requirement specifications, process of business, use cases.

 

  • System testing is to verify that the system to be delivered meets the customer specification and its purpose and it is done integration test.
  • System testing is done by domain specialist’s.
  • Both functional and non-functional requirements involves in System testing of.

Regression Testing

Regression testing is defined as re-executing old test cases across multiple releases, to make sure that change has not affected the existing functionality of the application. The main purpose of regression testing is to confirm that a recent program or code change has not adversely affected existing features. It ensures that old code in the application works accordingly even after new changes in the code.

When Regression Testing is performed:

  • Whenever there is change in requirement or code is modified.
  • Whenever bug/defect fixes.

Acceptance Testing

It is a type of testing done by customer before accepting the product. Generally it is done for customer satisfaction. The main goal of acceptance testing is to gain the confidence in the system. Acceptance tests not involves to point out simple cosmetic errors,  spelling mistakes or  gaps in interface, but also checks for the business scenarios or real time scenarios or the way the end-user uses the application. By conducting acceptance tests on an application, will help to get to know how the application will perform in production environment.

Alpha Testing

Alpha testing takes place at the developer’s site. It is testing of an application when development is about to complete. It is typically performed by a group that is independent of the design team inside the company only. It’s specially used by product development organizations.

Beta Testing

Beta testing takes place at customer site and is also known as field testing.  Beta testing is the second stage of testing, and can involve sending the product to beta test sites environment or outside the company for real-world users or offering for a free product trial over the Internet. Beta testing is usually preceded after alpha testing.

Non Functional Testing

Testing the characteristic of the component in the software application is called Nonfunctional testing. User action such as scalability or security is not part of non-functional testing.

Performance Testing

Performance testing is testing that is performed, to check the performance of a system with its limitations under a specified workload. It can be used for different purposes like to demonstrate that the system meets performance criteria and can also be compare two systems to find better performance.

Load Testing

A load test is mainly used to understand the behavior of the application under a defined specific expected load. Under normal and peak condition load testing is performed to determine a system’s behavior. It also helps to verify the operating capacity of an application and also any bottlenecks issues.

Stress Testing

Testing the behavior of an application by applying the load greater than desired load is known as stress testing. It is used to evaluate the stability of a system. The main goals of stress test to make sure the software does not crash in any conditions of insufficient resources like low disk space or memory.

Usability Testing

In usability testing the testers tests with which the user interfaces can be used. It tests that whether the application/product is user-friendly or not.

Testing the user-friendliness of the application is known as Usability testing.

User friendliness means:

  1. Easy to access: All important features should be highlighted
  2. Easy to understand: language used should be simple.
  3. Faster in access: Execution speed.
  4. Look and feel: color, font size etc.

Security Testing

Security testing is involves to check that whether the product is secured or not. The system can hack by unauthorized users or login without any authentication. It is a process to check that an information system protects data and also maintains functionality.

Portability Testing

Portability is the process of testing in which a computer software component or application can be moved from one to different. Results are usually measured in terms of the time which is required to move the software and complete updating of documentation.

Description

This tutorial has 9 parts to it, which covers basics of software testing, You will gain knowledge on various topics of software testing including testing estimation, software testing levels and also covers importance of documentations.



Prerequisites

No prior knowledge on Software Testing is essential

Learning Objectives

This tutorial is written as an overview of Software Testing

Author: Subject Coach
Added on: 10th Feb 2015

You must be logged in as Student to ask a Question.

None just yet!