top of page

Best Testing Practice

Testing Types

1. Manual testing : Manual testing includes testing a software manually, i.e., without using any automated

tool or any script

2. Automation Testing: Automation testing, which is also known as Test Automation, is when the tester writes

scripts and uses another software to test the product. This process involves automation of a manual process.

Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and


Levels Of Testing

1. Unit Testing : in unit testing individual component of software tested. The purpose of

this testing is that each module is working properly

It focuses on the smallest unit of software design

(done by developer by using sample input and observing its sample output)

2. Integration Testing: in integration Testing individual units are combined and tested as group (developer)

(i) Top-down

(ii) Bottom-up

(iii) Sandwich

(iv) Big-Bang

Main Purpose of Integration Testing :

To check moudules are communicating each other as DFD Data Flow Diagram which is specified in

TDD ( Technical Document Diagram )

3. System Testing : in this testing we can test whole application (complete / integrated software is tested)

done by tester

4. Acceptance Testing : a level of software Testing in which software is tested for user acceptance

UAT done at client location where software is actually used

→ Alpha Testing : done by tester in company in presence of customer

→ Beta Testing : done by customer to check software is ok , satisfy requirement

Testing Types

1. Functional Testing

2.Non-Functional Testing

Functional testing

Is the process through which QAs determine if a piece of software is acting in accordance with pre-

determined requirements. It uses black-box testing techniques, in which the tester has no knowledge of the

internal system logic. Functional testing is only concerned with validating if a system works.

White box testing >> |internal logic | developer

Black box testing → | no need code |only functional |tester

Functional Testing : Testing what system does

Functional testing is a type of black-box testing. “does this actually work?”

The ultimate goal of functional testing is to ensure that software works according to specifications and

user expectations

input values

test cases

Compare actual and expected output

1. Non Functional Testing :

• Load testing

• Reliability

• The readiness of a system

• Usability testing

Eg. A practical example would be: checking how many people can simultaneously check out of a shopping


2. Black Box Testing : (without code) High level

Black box testing is that kind of software testing you can do when you do not have the source code,

just the executable code in hand

The testing is done without the internal knowledge of the products

3. White box testing : (with code) low level

Monitoring internal structure . check internal logic . done by developer

4. Smoke testing : (Testing on newly released build → compulsary requirement )

It is first testing on newly released build ... (Build Verification Testing)

Check → the deployed software build is stable or not.

Different Types of Testing:

Black Box testing: Mainly perform by testers

White box testing: Mainly perform by developers

Unit testing: Part of White box testing

Acceptance testing: This is the final testing done by Customer based on the agreements Load / stress

Performance testing : Testing an application load capacity

Usability testing: Testing to determine the user friendly ness of the application

Install / Uninstall testing: Testing of full, partial, or upgrade install / uninstall processes.

Recovery / failover testing: Testing to determine how well a system recovers from crashes, failures,

or other major problems.

Incremental integration testing: Continuous testing of an application as new functionality is added

Ad-hoc testing: Conducting testing without requirements

Comparison testing: Comparing software weaknesses and strengths to competing products.

Alpha testing: Part of UAT

Beta testing: Part of UAT

Integration testing: validating combined modules of an application

Functional testing: part of black box testing

System testing: part of black box testing and validating the system requirements

End to End testing: similar to system testing

Sanity testing or smoke testing: An initial validation of a New build or release

Regression testing: validating the existing functionality of the application once new fixes added

Compatibility testing: Testing an application in different environments.

White box testing

Is an approach that allows testers to inspect and verify the inner workings of a software system—its

code, infrastructure, and integrations with external systems

White box testing techniques

There are many ways you can analyze software with white box testing. Most testers will use a process called

code coverage analysis to eliminate gaps in the testing of the code. There are a variety of techniques you can

use to accomplish this, including:

Statement coverage:

This technique ensures that each line in the code is tested at least once to find faulty code more easily.

Branch coverage:

Using this technique, each possible path or decision point of a software application is checked for


Condition coverage:

All individual conditions are checked.

Multiple condition coverage:

All imaginable combinations of all the conceivable condition outcomes are tested at least once.

Basis path testing:

Control graphs are created from either flowcharts or code. Cyclomatic complexity is then calculated to

define the number of independent paths so that the minimum number of test cases can be designed for

each path.

Flow chart notation:

This technique uses a directed graph made up of nodes and edges, where each node represents a decision

point or sequence of statements.

Cyclomatic complexity:

This is the measure of a software's logical and cyclomatic complexity. It is used to define how many

independent paths are present.

Loop testing:

Loops are commonly used in white box testing and are fundamental to many algorithms. Problems are

often found at the beginning or the end of a loop. Loop testing can be divided into simple loops, nested

loops and concatenated loops.

Source: Google and SDET- QA Automation Techie

20 views0 comments

Recent Posts

See All

In the early stages of a visualization project, we often start with two interrelated questions: Where can I find reliable data? What does this data truly represent? Information does not magically appe

bottom of page