Interface, Integration and System Bugs in Software Testing

Interface, Integration and System Bugs

Various categories of bugs in interface, integration and system bugs are:

External Interfaces
The external interfaces are the means used to communicate with the world
These include devices, actuators, sensors, input terminals, printers and communication lines
The primary design criterion for an interface with outside world should be robustness
All external interfaces, human or machine should employ a protocol. The protocol may be wrong or incorrectly implemented
Other external interface bugs are: Invalid timing or sequence assumptions related to external signals
Misunderstanding external input or output formats
Insufficient tolerance to bad input data
Internal Interfaces
Internal interfaces are similar to external interfaces but they are more controlled
Example: Communicating routines
The external environment is fixed and the system must adapt to it but the internal environment, which consists of interfaces with other components, can be negotiated
Internal interfaces have the same problem as external interfaces
Hardware Architecture
Hardware architecture related bugs originate mostly from misunderstanding how the hardware works
Example:
Address generation error
Input /  Output device operation / Instruction error
Waiting too long for a response
Incorrect interrupt handling etc.
The remedy for hardware architecture and interface problems is two-fold:
Good programming and testing
Centralization of hardware interface software in programs written by hardware interface specialists
Operating System Bugs
Programs bugs related to the operating system are a combination of hardware architecture and interface bugs mostly caused due to misunderstanding about operating system functionality
Use operating system 'interface specialists' and use explicit interface modules or macros for all operating system calls
This approach may not eliminate the bugs, but at least will localize them and make testing easier
Software Architecture
Software architecture bugs are the kind that are called interactive
Routines can pass unit and integration testing without revealing such bugs
Many of them depend on load and their symptoms emerge only when the system is stressed
Sample for such bugs: Assumption that there will be no interrupts, failure to block or unblock interrupts, Assumptions that memory and registers were initialized or not initialized etc.
Careful integration of modules and subjecting the final system to a stress test are effective methods for these bugs
Control and Sequence Bugs
These bugs include: Ignored timing, assuming that events occur in a specified sequence, working on data before all the data have arrived from disc, waiting for an impossible combination of prerequisites, missing, wrong, redundant or superfluous process steps
The remedy for these bugs in highly structured sequenced control
Specialized internal sequence control mechanisms are helpful
Resource Management Problems
Memory is subdivided into dynamically allocated resources such as buffer blocks, queue blocks task control blocks and overlay buggers
External mass storage units such as discs, are subdivided into memory resource pools
Some resource management and usage bugs: "Required resource not obtained", "Wrong resource used", "Resource is already in use", "resource dead lock", and many more
Resource management Remedies: A design remedy that prevents bugs is always preferable to a test method that discovers them
The design remedy in resource management is to keep the resource structure with fewer different kinds of resources, the fewest pools and no private resource management
Integration Bugs
Integration bugs are bugs involved with the integration, and with the interfaces between, working and tested components
These bugs results from inconsistencies or incompatibilities between components
The communication methods include data structures, call sequences, registers, semaphores, communication links and protocols results in integration bugs
The integration bugs to not constitute a big bug category (9%)
They are expensive category because they are usually caught late in the game and because they force changes in several components and / or data structures
System Bugs
System bugs covers all kinds of bugs that cannot be ascribed to a component or to their simple interactions, but result from the totality of interactions between many components such as programs, data, hardware and the operating systems
There can be no meaningful system testing until there has been through component and integration testing
System bugs are infrequent (1.7%), but very important because they are often found only after the system has been fielded

Share on Google Plus

About Data Sciences by Venu

Hi, My name is Venugopala Chary and I'm Currently working as Associate Professor in Reputed Engineerng College, Hyderabad. I have B.Tech and M.tech in regular from JNTU Hyderabad. I have 11 Years of Teaching Experience for both B.Tech and M.Tech Courses.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment