Upulee Kanewala

Automatic detection of metamorphic relations

Metamorphic testing is a method for automating the testing process for programs without test oracles. This technique operates by checking whether the program behaves according to a certain set of properties called metamorphic relations. A metamorphic relation is a relationship between multiple input and output pairs of the program. Unfortunately, finding the appropriate metamorphic relations required for use in metamorphic testing remains a labor intensive task, which is generally performed by a domain expert or a programmer. We developed a method based on machine learning techniques to predict metamorphic relations of a given function. We use a set of features extracted from the functions' control flow and data dependency information.

Testing scientific software

Scientific software plays an important role in critical decision making, for example making weather predictions based on climate models, and computation of evidence for research publications. Recently, scientists have had to retract publications due to errors caused by software faults. Scientific software poses special challenges for testing and we conducted extensive systematic literature surveys to identify these special challenges.

Test oracles

Test oracles are an essential component of testing that has received less attention. We investigate techniques for creating automated test oracles that can automate the testing process.

Copyright © minimalistica · Design: Luka Cvrk, Solucija