Answers

Question and Answer:

  Home  Software Quality Analysis

⟩ How to test the middleware? esp for an Online Banking software?

Test Strategy for Middleware and Firmware

We have defined middleware and firmware and understand that

they are different, yet have many characteristics in common

when it comes to testing. The discussion of test strategy

for these types of software will include both middleware

and firmware, and can be extended to test any software

which is not accessed by a user interface.

Early Testing

Early testing will multiply the testing effectiveness of

any software application, regardless of technology.

However, in the world of middleware and firmware early

testing is most critical because finding defects at later

stages carries a higher penalty of rework. This is due to

the extent of integration with hardware and other software.

The problem with early testing in this environment is that

with so many integration dependencies, how does someone

create test harnesses and stubs that allow for an accurate

test? Manually, the job is possible, but can be

overwhelming when there are many interfaces involved. If

you are developing in a language that has tool support for

structural test case design and testing, you may find that

the job can be very easy. Specifically, for C++ and Java,

Parasoft (www.parasoft.com) has a great toolset to design

and perform structural tests, with a feature to

automatically create a test harness and test stubs. Similar

tools are available from International Software Automation

(ISA) www.softwareautomation.com.

Developer Testing

Developer testing is essential to avoid high rework costs.

To the testers, the software is a black box. Only the

developers have the view and access to the code to test all

conditions. In addition, not only are functional cases at

stake, but also the structural tests for memory boundary

violations and memory leaks.

My experience is that developers can test software if the

have a good process to follow, standards to show what is

expected of them in terms of testing, and a way to hold

developers accountable for the quality of their work.

Management must also be making the message loud and clear

that testing is part of the job and that quality is a

shared responsibility between developers, testers, QA, and

management.

An Object-oriented View of Testing

In the object-oriented view of testing, tests are isolated

at a smaller scope, yet can have high complexity due to the

interfaces with other objects. The object-oriented view of

testing must be able to deal with classes, methods, and

attributes and to validate those at a high level of

coverage.

In Shel Siegel's book, "Object-Oriented Software Testing,"

he describes the Hierarchical approach to O-O testing.

"The hierarchical approach is at the heart of the object-

oriented testing system. This test approach uses and builds

upon several well-understood testing techniques, tying them

together into a comprehensive testing system. The

hierarchical approach leverages the fact that "everything

is a system." It defines and applies testing standards for

several levels of software component: objects, classes,

foundation components, and systems. The hierarchical

approach designates as SAFE those components that meet the

testing standards for that kind of component. Once you

designate a component as SAFE, you can integrate it with

other SAFE components to produce the next-level component.

In turn, you test this component to the level of safety

associated with the component level it represents. SAFE is

always a relative state. It depends entirely on the

standards you choose to enforce, your application, your

attitude toward risk, and the specific risks and risk

management practices you adopt in your project. The

hierarchical approach provides guidelines for minimum

safety; you decide what is right for you."

 148 views

More Questions for you: