Вы находитесь на странице: 1из 1

2-4

Pervasive Communications Handbook

customers. The software testing process involves generating test cases that are applied to
the software implementation under test to obtain the test results, and evaluating the test
results against the known specifications. A discrepancy between the test result and the
corresponding specification points to a software fault. Test case selection (also known as,
test adequacy problem) and test result evaluation (also known as test oracle problem) are
the two most important problems in software testing. Test adequacy refers to methods of
how to select test cases from a very large input domain for the software unit under test. The
evaluation of test results is done by comparing the test execution results with the related
specifications or supposedly correct version of the implementation when the same test case
is applied. The testing techniques that use some sort of coverage criteria are referred to as
coverage-based testing. A coverage criterion serves both as a stopping rule of the test case
selection process and as measurement for the effectiveness of a test suite. This coverage is
calculated by applying all the selected test cases and computing the proportion of the test
requirements that has been exercised. The test case selection process stops when the coverage of the test requirement meets some pre-defined satisfactory level. Coverage-based testing can be further classified into structural testing and functional testing. Structural testing
(also known as white-box testing or code-based testing) refers to the class of criteria on the
coverage of different types of program elements when the implementation (i.e., the source
code) is available to the testers. The basic structural criteria include statement coverage,
branch coverage, and path coverage. Functional testing (also known as black-box testing or
specification-based testing) refers to the testing approaches where the functional specifications are used to guide the test case selection. Different functional testing strategies
depending upon the nature of the specification are used.
Software testing for context-aware applications suffers from both the test adequacy
problem and the test oracle problem in pervasive environment. We need to test contextaware applications for several types of mobile devices, different platforms, over different
types of carrier networks under different contexts changes. Unlike conventional programming paradigms with standardized formats and features, context-aware applications do not have any uniform architecture model so far. There are several challenges to
the testing of context-aware applications. Context-aware applications may not only
evolve with the changes in features, but may also evolve with environmental changes
such as addition, removal, and modification of contexts. When the applications evolve,
a major challenge is how to efficiently perform testing (especially, regression testing) on
the new evolved system. Furthermore, unlike traditional software applications, software
failures in context-aware applications may emerge not only due to program faults but
also from unreliable and/or inconsistent context sources. These factors make the debugging process more difficult [1].
This chapter presents the challenges in testing context-aware applications, and surveys the recently reported testing techniques for such applications. A discussion is also
be made on the available tools and support for testing context-aware applications.

2.2 Modeling Context-Aware Systems


Models for context-aware systems define and describe the contexts, and how contexts are
created and used for adaptation in an application. The models basically define how to

Вам также может понравиться