5

I have googled many times but still not understand clearly about interface testing in software testing, who can explain this , many thanks?

3

7 Answers 7

7

You have some choices here. You can go with formal definitions like the ISTQB definition, or you can treat the definitions the way your organization handles them. Software testing is a field where definitions tend to vary depending on the understanding of the team and how they work.

That said, in my experience interface testing can be one of two things:

  • A type of integration test that focuses on the interface between components/systems.
  • A test of a defined interface into a component or system. This is usually the kind of interface testing I've done (I've also seen this called API testing).

Integration testing is generally what it says on the box: testing integrated components or systems to exercise the interactions between them and flush out any bugs. I've also seen integration testing used to describe testing interactions between the application in test and third party systems (where this could also be considered API testing of the AIT's use of the third party API).

As always, I tend not to focus on the official definitions because in my experience the official definitions are often modified in the field by the needs of the application in test and the testers working with it.

5
  • "Software testing is a field where definitions tend to vary depending on the understanding of the team and how they work." This is something I never understand. Each time I come to a company and see a own glossary with testing teams I think, "Why define people terms they already are defined? Why use the company not the standards? Many misunderstandings and disputes about definition of testing terms would be redundant." So this question and your answer with the nice example show me why these glossaries exist. Thank you!
    – Twaldigas
    Jul 28, 2014 at 11:39
  • 1
    @Twaldigas - so many aspects of testing depend heavily on context, and that does include the definitions - which is not always a good thing. It would be nice to have more widely accepted definitions so we didn't need to build our own glossaries, but at the same time, we still need to communicate where we work which means using the definitions there.
    – Kate Paulk
    Jul 28, 2014 at 15:23
  • @KatePaulk You have a typo in ISTQB Jul 29, 2014 at 5:50
  • @Lord_Gestalter - thanks! I've corrected it.
    – Kate Paulk
    Jul 29, 2014 at 11:03
  • @KatePaulk That's what reviews are for ;-) Jul 30, 2014 at 5:23
3

I take a look into the ISTQB glossary and found this two definitions:

interface testing: An integration test type that is concerned with testing the interfaces between components or systems.

integration testing: Testing performed to expose defects in the interfaces and in the interactions between integrated components or systems. See also component integration testing, system integration testing.

http://www.istqb.org/downloads/viewcategory/20.html


After some research I also found this:

  • Integration tests means hardware and software tests. The whole system.
  • Interface tests do only check the software components like data transfers between the applications / modules.
3
  • 1
    This definition from ISTQB is very vague. Actually this reads like they are exactly the same, except that integration testing adds "interactions" to the definition. Don't we mostly test interactions even when testing an interface. This does not solve the problem of the original poster, even I am confused now. :) Jul 28, 2014 at 10:47
  • @NielsvanReijmersdal For my understanding is interface testing a part of integration testing, but not integration testing at all. But yes, the definition is very vague. So maybe the clear answer is: No difference exist.
    – Twaldigas
    Jul 28, 2014 at 10:59
  • ISTQB is fantastic a providing definitions but less at giving examples for them.
    – dzieciou
    Jul 28, 2014 at 11:08
1

Interface Testing:

• Interface Testing is a software testing type that checks the communication between two different software systems.

• Interface is the connection that integrates two components.

• The interface could be anything like web services, APIs, etc. Testing of these connecting interfaces is termed as Interface Testing.

• Interface testing is tricky and boring

• Interface testing is performed only on the code

An interface is software that consists of sets of messages, commands, and other attributes that enable communication between a device and a user.

Example of Interface Testing

Suppose for any xyz application, the interface takes XML file as an input and delivers JSON file as an output. To test the interface of this application, all it requires is the specifications of XML file format and JSON file format. With the help of these specifications, we can create a sample input XML files and feed into the interface. And then validating the input (XML) and output (JSON) file with the requirement is Interface testing.

enter image description here

Integration Testing:

• Integration testing is the process of testing the interface between two software units or module.

• The focus of integration testing is to determine the correctness of the interface. Integration testing exposes faults in the interaction between integrated units.

• After the unit testing of all the modules, integration testing is performed.

• Integration Testing is the software testing type where software modules are integrated logically and tested as a group.

• Integration testing is easy but lengthy.

• Integration testing is performed on both code and GUI of the application.

A typical software project consists of manifold software modules that are coded by dissimilar programmers. Integration Testing focuses on verifying data communication among these modules.

0

When thinking of interface testing, u need to stop thinking of interface as GUI, but think as a point of interaction btwn objects. So when we say interface testing we mean are the objects able to interact without any problem. Remember it start with unit test, then component testing then integration testing that leads to system. Interface testing thus is part of integration testing as you are integrating the components together, seeing whether the components can interface/communicate with each other until its integrated to a system.

0

The major difference, (I see) is interface testing can be done in isolation whereas integration testing requires at least 2 entities to interact.

"Interface" is a very vague and broad term and can mean multiple things on many levels.

Interface Testing: In general, I would define it as a testing at the boundary where an entity interacts with the outer world.That entity may be from unit to system level.It can be a method,component,service or even an etire system.

Example: GUI of an web application, 3rd party Web services Public APIs.


Integration Testing: On the other hand it happens at that boundary level where 2 entities interact with each other.It covers and validates those interaction scenarios(without testing the internals of those entities in isolation.

Again those entities can be from small components to entire systems.

Example: 2 modules of an application,Web services calls in Web Application.

0

Interface Testing is a type of software testing type that checks the proper communication between two different software systems. The interface could be anything like APIs, web services etc. Testing of these connecting interfaces is defined as Interface Testing. This is a very important task that is done in top software testing companies.

Mentioned below are the phases of Interface testing:

1) Configuration and development: When the interface is configured, and once the development starts, the configuration settings need to be verified as per the requirement.

2) Validation: When the development is completed, the interface needs to be validated and verified, this can also be done as a part of unit testing.

3) Maintenance: Once the whole software is ready and deployed, then the interface needs to be monitored for its performance and any issue should be uncovered if there is any issue.

Once satisfied with the interface, we validate it for the workflow, functionality etc. We can run load, stress and performance tests.

-1

Interface testing: means to check the connectivity between the modules or components.or to check the communication established between the objects.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.