Interface Testing

Interface Testing is a software testing in which it is tested whether the interface of the software is simple, accessible, customizable, responsive, supportable and is able to communicate with other softwares or any entities who may use the software.

interface-testing

Simply, when speaking about the interface, we mean that part of the software which is responsible for connecting the software to other softwares, modules or any hardware components such as network station, sensors, etc.

An interface is that part of the software, which lets the humans or any enter modules to use or interact with the software.

The term interface may look very simple in terms of the belief that interface means the part of the software which lets humans use the software. But in reality, the interface or interfacing is a broader term.

Below we shall classify how there are different types of interfaces which are related to software. The interface can be classified as follows:

  • External interface : External interface is that part of the software which is accessible to the humans and is built for humans to operate on the software. For example, the webpage of a web application.
  • Internal interface: Internal interface is those part of the software, which is used to communicate with other software modules, hardware components, etc. For example, Port Number, Protocol ID, Session ID, etc used by software which may be required when a different software or components needs to be integrated.

Examples of Ad-hoc Testing

Why Interface Testing

There are different needs for interface testing. We shall see the most important ones of them. They are:

User's Work:

Softwares are created or developed so that a particular task can be performed with ease with the help of a machine. Now the main task of the software is to provide the humans a platform through which the user may carry out their work.

Therefore, the first and foremost aim of software interface is to provide users with necessary graphics or prompts, with the help of which the user can carry out the operation.

Work Tracking:

The software may be doing its work in the background. But without an interface, it is not possible to know, how much the process is progressing or not. Also, the element in the interface should be understandable to the users.

Network:

Software is also connected to an external network. Now there should be interface elements which show the connection status, packets received, protocols active, etc.

Error Handling:

It is the interface of the software which is responsible for handling. This is not done directly, but it should display the right error messages, and alert which in fact triggers the users of the software to take necessary actions to handle the errors.

Connection Checking:

The data, field, attributes, etc which are displayed on the screen, are decided by the interface which is shown to the users. When the connection is reset or lost, the data should be updated with the rolled back data or setting the value with empty field.

Security:

A user of the software will not be always able to check whether all the modules are components are working safely in the background when a process is running. The interface is responsible for checking all while all the modules and proving the user with the error message.

TestCases for Interface Testing

Steps for Interface Testing

There is no thumb rule set for interface testing. Also, there are no such strictly defined steps which are used in interface testing. Below are some steps which could be followed to carry out the interface testing:

Configuration:

In this phase, the interface is configured along with the modules required to interact with the interface. There can be hardware as well as software configuration which may be required for the interface to work.

This is a verification phase, as in this phase, the configuration for the interface is checked and developed.

Validation:

This phase deals with the validation and verification of the interface. This is done after the completion of the configuration and the development phase. This is carried out as a part of a very low level of testing. Here, it is checked whether the addition of new elements or codes injects any error.

Maintenance:

In the maintenance phase, the performance and efficiency of the interface are observed. Also, in this phase, it is checked whether the addition of new modules or functionalities has introduced issues which the interface is not able to deal with.

The idea of Maintenance Testing

Types of Interface Testing

There are different types of and practices for interface testing. Some of the types are:

Workflow:

This is an interfacing testing type in which it is checked whether the software interface is performing the process in the sequence it should perform. For example, software should take the input first, analyze it, and then produce the result later. This is called a workflow of the software.

The workflow of software should be consistent as well as atomic, which means it should not vary from time to time for different users and at the same time should have its roll back properties while any process is running.

We may simply imagine, that if we have the software installed in the library which keeps all the records of books and allows users to issue and return the book. The interface should contain all the necessary steps which are to be performed.

Cross Value Verification:

In this process, the interface is provided with confusing values. Suppose at the date of birth of a candidate is entered as 1870. In this case, the software should calculate the age and should display the error message as an invalid date of birth.

Therefore, in this type of interface testing, the value accepted by the software is cross-checked.

Performance Testing:

Generally, when we talk about performance testing, it means testing the performance of the software when the software is under load condition and even performance test is carried out under normal conditions. There is no consideration of interfaces when we talk about performance testing.

But in many scenarios, it is seen that there are interfaces in which the load and performance are visible in the interface itself. For example in a medical scanner machine, the scans are loaded in the interface as long the scanning continues. This is important for the doctor to view all the scans live.

But to acquire, these kinds of functionalities, the interface of the software has to be designed in a very different way, for dealing with dynamic load and memory spooling.

Let us take another example, in the web-browser interface itself, there is a way to see all the request and the performance of the browser against those requests. This is an example when the interface itself is liable for displaying the performance.

Checking individual modules:

In this process, the individual modules are checked which are related to the software. For example, consider a School Admission System, in which the admission process is carried out parallel to the billing system of the process.

Now, here, it is checked whether both the process can function smoothly when made to work individually.

Methods of Penetration Testing

TestCases for Interface Testing:

There are different parameters which are useful for checking the validity of the interface of the software. Below we shall discuss some of them. Since these parameters are very useful in determining the quality of the interface, therefore the combination of these parameters can be used as test cases:

  • Fields : It is that part of the software interface which accepts data from the user and input to the system. As the total process is going to be dependent on the field, therefore there should be conditions which should be able to verify and validate the data inserted in the field before it enters the system.
  • DataTypes: DataType may seem simple to many, but it is of great importance, as when a data is stored in the database, it is stored in different fields and tables. Therefore, it is the interface which has to check whether the value entered in the field belongs to the same data type which is acceptable or not.
  • Size of The field: The size of the field means, that how may characters are going to be accepted by the field as actual input for the system or the software. For example, a field such as the phone_number may not exceed 13 characters.
  • Status Bars: The interface should contain appropriate status bar to display the status of the different process which is active or is not active inside the system.
  • Progress Bars: The interface should contain appropriate progress bar to display the progress of different process which is running in the system or the software.
  • Alert Message: Alert Message is a functionality of the software to prompt the user with an alert in case there is any emergency or crisis going on inside the software.
  • Cosmetic Inconsistencies: The main concern of cosmic inconsistencies is the simplicity of the screen, feel of the interface and how much accessible and simple the interface looks.
  • Grammars & Spellings: This checks whether the grammars and spellings are typed correctly when any document or text file is created in the software interface.
  • Shortcuts: There should be certain shortcuts which are to be made available in the interface so that the user can get access to functionality, without navigating much into the software to find the option. Example: Ctrl + J in Google chrome opens the Download Page.
  • Highlight Menu Items: The menu items should be highlighted as active or non-active.

Features of Active Testing

Summary

Interface Testing is a software testing type, in which the software's interface is tested. The part which let the user use the software, the part which is visible, the part which can prompt the user, the user which can be operated, is nothing, but the interface of the software.

Therefore, since the software is controlled by the interface, it should be perfectly designed to validate inputs, creating error messages, providing user instruction, etc, so that the software can be used with ease which is the aim of usability.

Comment / Suggestion Section
Point our Mistakes and Post Your Suggestions