Abstract
Modern information technology paradigms, such as online services and off-the-shelf products, often involve a wide variety of users with different or even conflicting objectives. Every software output may satisfy some users, but may also fail to satisfy others. Furthermore, users often do not know the internal working mechanisms of the systems. This situation is quite different from bespoke software, where developers and users typically know each other. This paper proposes an approach to help users to better understand the software that they use, and thereby more easily achieve their objectives-even when they do not fully understand how the system is implemented. Our approach borrows the concept of metamorphic relations from the field of metamorphic testing (MT), using it in an innovative way that extends beyond MT. We also propose a “symmetry” metamorphic relation pattern and a “change direction” metamorphic relation input pattern that can be used to derive multiple concrete metamorphic relations. Empirical studies reveal previously unknown failures in some of the most popular applications in the world, and show how our approach can help users to better understand and better use the systems. The empirical results provide strong evidence of the simplicity, applicability, and effectiveness of our methodology.
Original language | English |
---|---|
Pages (from-to) | 1120-1154 |
Number of pages | 35 |
Journal | IEEE Transactions on Software Engineering |
Volume | 46 |
Issue number | 10 |
DOIs | |
Publication status | Published - 2020 |
Keywords
- Change direction
- Metamorphic exploration
- Metamorphic relation
- Metamorphic relation input pattern
- Metamorphic relation pattern
- Metamorphic testing
- Oracle problem
- Software validation
- Symmetry
- User countermeasure
- User experience
ASJC Scopus subject areas
- Software