Professional Documents
Culture Documents
Domain Testing
Domain Testing
(with Example)
For a newbie, it’s easy to assume that Testing is executing the various section of code on an ad-hoc basis
and verifying the results. But in the real world, Testing is a very formal activity and is documented in
detail. Test Documentation makes planning, review, and execution of testing easy as well as verifiable.
The degree of test formality depends on
The type of application under test
Standards followed by your organization
The maturity of the development process.
Testing activities generally consume 30% to 50% of software development project effort.
Documentations help to identify Test process improvement that can be applied to future projects.
Online purchasing is very common nowadays. While selling the product or software, the online seller has
to keep in mind that the product he is selling should be bug-free otherwise seller might lose business and
reputation while the buyer of the software may waste his or her money in buying defective software.
To endure the competitive market, it is a necessity that the software or applications you provide to buyers
are worth the amount they are paying. To deliver a good quality product it is very important the
application or software goes through different stages of development in terms of quality, compatibility,
reliability, and delivery.
The application could also impact due to different versions, resolution, internet speed and configuration,
etc. Hence it’s important to test the application in all possible manners to reduce failures and overcome
embarrassments of bug leakage. As a Non- functional test, Compatibility testing is to endorse that the
application runs properly in different browsers, versions, OS, and networks successfully.
Compatibility tests should always perform in a real environment instead of a virtual environment.
Test the compatibility of the application with different browsers and operating systems to guarantee
100% coverage.
Types Of Software Compatibility Testing
Browser compatibility testing
Hardware
Networks
Mobile Devices
Operating System
Versions
It is very popular in compatibility testing. It is to check the compatibility of the software application on
different browsers like Chrome, Firefox, Internet Explorer, Safari, Opera, etc.
Hardware
It is to check the application/ software compatibility with the different hardware configurations.
Network
It is to check the application in a different network like 3G, WIFI, etc.
Mobile Devices
It is to check if the application is compatible with mobile devices and their platforms like android, iOS,
windows, etc.
Operating Systems
It is to check if the application is compatible with different Operating Systems like Windows, Linux,
Mac, etc.
Versions
It is important to test software applications in different versions of the software. There are two different
types of version inspection.
Backward Compatibility Testing: Testing of the application or software in old or previous versions. It
is also known as downward compatible.
Forward Compatibility Testing: Testing of the application or software in new or upcoming versions. It
is also known as forward compatible
Why Do We perform Compatibility Testing?
Compatibility testing is to check whether the application working in the same way for all platforms.
Usually, the dev team and testing team test the application on a single platform. But the once application
is released in production, the customer may test our product on a different platform and they may find
bugs in the application which is not worthy in terms of quality.
To reduce such issues and not upset your customers it is important to test the application on all platforms.
Make a note of the most important testing parameter for your application where you feel the application
can behave weirdly. Decide versions of browsers, operating systems, and devices where you would like to
test your application.
The best practice is to analyze the requirement and cross-check with the client or customer for the
browser matrix. Let the customer decide which all browsers, OS, and versions they would like us to test
the application.
With the help of Google Analytics or an alternative type of statistical analysis system set up on your
application can give you clear statistics of the widely used browser with their version and operating
system.
Select pages to test
Filter out the main urls, and pages of your application. The selection of the pages totally depends on your
application. You would require considering the majorly used modules as a part of compatibility testing. If
your application consists of a certain template format, it’s fine if you consider that only as a part of
compatibility testing.
Example 1:
Let’s consider an ATM system function where if the user enters the invalid password three times
the account will be locked.
In this system, if the user enters a valid password in any of the first three attempts the user will
be logged in successfully. If the user enters the invalid password in the first or second try, the
user will be asked to re-enter the password. And finally, if the user enters incorrect password
3rd time, the account will be blocked.
State transition diagram
In the diagram whenever the user enters the correct PIN he is moved to Access granted state, and
if he enters the wrong password he is moved to next try and if he does the same for the 3 rd time
the account blocked state is reached.
State Transition Table
Correct PIN Incorrect PIN
S1) Start S5 S2
st
S2) 1 attempt S5 S3
nd
S3) 2 attempt S5 S4
rd
S4) 3 attempt S5 S6
S5) Access Granted – –
S6) Account blocked – –
In the table when the user enters the correct PIN, state is transitioned to S5 which is Access
granted. And if the user enters a wrong password he is moved to next state. If he does the same
3rd time, he will reach the account blocked state.
For eg we can take the behavior of mixer grinder. The state transition for this will be like
1. switch on -- turn towards 1 then 2 then 3 then turn backwards to 2 then 1 then off
2. switch on - directly turn backwards to 3 then turn towards to off then turn towards 1 then
2 then 3 then turn backwards to 2 then 1 then off
Each represents a state of machine. Like this we can draw state transition diagram. Valid test
cases can be generated by:
Start from the start state
Choose a path that leads to the next state
If you encounter an invalid input in a given state, generate an error condition test
case
Repeat the process till you reach the final state