Metamorphic Relations Based Test Oracles for Image Processing Applications

Metamorphic Relations Based Test Oracles for Image Processing Applications

Tahir Jameel (Beihang University, Beijing, China), Mengxiang Lin (Beihang University, Beijing, China) and Liu Chao (Beihang University, Beijing, China)
Copyright: © 2017 |Pages: 15
DOI: 10.4018/978-1-5225-0983-7.ch035
OnDemand PDF Download:
$30.00
List Price: $37.50

Abstract

Evaluation of output images carrying visual semantics is a challenging task which is carried out by domain experts through visual inspection. Automatic test oracle is required to augment the test oracle problem and to eliminate the manual efforts. Metamorphic testing is an effective technique to alleviate these problems. In this paper, the authors have demonstrated that how inherent properties of implementation under test can be used to generate an automatic test oracle for image processing applications. Metamorphic testing is a general technique in which follow-up test cases are generated using a transformation function and the anticipated output is evaluated. They have used some general metamorphic relations and also designed some algorithm specific metamorphic relations for morphological image operations. Selection of metamorphic relations is the most important step and the authors have analyzed relative effectiveness of different metamorphic relations using mutation analysis. The results show metamorphic testing is a very effective technique to automate output images evaluation and to alleviate oracle problem.
Chapter Preview
Top

1. Introduction

Image processing applications continue to provide more features, handle larger data and generate complex outputs. Advancement in signal processing and digital imaging devices has enabled their extensive use. These applications play a vital role in our daily life such as medical imaging, surveillance, biometrics etc., and the human dependence on these systems has increased the demand of their reliability.

Testing is a practical approach to evaluate the quality of these systems which includes input generation, test execution and evaluation of output. Generation of test images and evaluation of output images are considered a challenging task due to complex nature of images and their visual semantics. Currently, these applications are tested by giving manually crafted test images or commonly used standard test images. The outputs of these images are analyzed by visual inspection carried out by domain expert. This procedure is tedious and sometimes ineffective in a way that a human inspector can only analyze a limited number of images which may not enough to find out subtle errors. Automatic output image analysis is required to make the testing procedure cost effective and larger scaled.

Let function be an implementation of algorithm and be a subset of input space given by. Function is executed to produce output, whereas set of expected output of function is given by. Test oracle is a mechanism to determine whether the executed test has passed or failed. In the article by (Zhou & Huang, 2004), the authors says that in output evaluation, the actual output is compared with the expected output to analyze the correctness i.e. whether, or not. In the books by (Binder, 2000)(Weyuker, 1982), the authors says that in practice, the test oracle is either not available or very expensive to apply, which is known as test oracle problem. In case of image processing applications, sometimes test oracle cannot be clearly defined, e.g. visually similar images may have slight difference at pixel level.

Complete Chapter List

Search this Book:
Reset