TY - GEN
T1 - Using obfuscators to test compilers
T2 - 47th IEEE Annual Computers, Software, and Applications Conference, COMPSAC 2023
AU - Cho, Injae
AU - Towey, Dave
AU - Kar, Pushpendu
N1 - Funding Information:
ACKNOWLEDGMENTS The authors acknowledgethe financial support from the Artificial Intelligence and Optimisation (AIOP) research group, and the Faculty of Science and Engineering (FoSE), at the University of Nottingham Ningbo China (UNNC).
Publisher Copyright:
© 2023 IEEE.
PY - 2023
Y1 - 2023
N2 - Android compilers play a crucial role in Android app development. The correctness of the apps relies on the compilers because the source code of the app is translated into the target language by the compilers. The use of obfuscators is becoming the standard in app development to prevent reverse engineering or code tampering. Despite their importance, both compilers and obfuscators lack an oracle, which is the mechanism to determine the correctness of the execution, and hence they can be called untestable software. Metamorphic Testing (MT) is a state-of-the-art testing method that can test untestable software. MT tests software based on Metamorphic Relations (MRs). Recent studies have shown that program transformation, an MT-based compiler-testing strategy, is highly effective in revealing bugs in compilers. However, this strategy requires sophisticated tools that could take significant time to develop. Therefore, program transformation using obfuscators is proposed. Based on research into testing obfuscators using MT, it is suggested that an MT-based compiler-testing strategy could be achieved by using obfuscators. In addition, this method has the potential to detect bugs in both compilers and obfuscators. This paper reports on our experience using MT techniques to test compilers and obfuscators. We present three related MRs, two of which uncover evidence of faults.
AB - Android compilers play a crucial role in Android app development. The correctness of the apps relies on the compilers because the source code of the app is translated into the target language by the compilers. The use of obfuscators is becoming the standard in app development to prevent reverse engineering or code tampering. Despite their importance, both compilers and obfuscators lack an oracle, which is the mechanism to determine the correctness of the execution, and hence they can be called untestable software. Metamorphic Testing (MT) is a state-of-the-art testing method that can test untestable software. MT tests software based on Metamorphic Relations (MRs). Recent studies have shown that program transformation, an MT-based compiler-testing strategy, is highly effective in revealing bugs in compilers. However, this strategy requires sophisticated tools that could take significant time to develop. Therefore, program transformation using obfuscators is proposed. Based on research into testing obfuscators using MT, it is suggested that an MT-based compiler-testing strategy could be achieved by using obfuscators. In addition, this method has the potential to detect bugs in both compilers and obfuscators. This paper reports on our experience using MT techniques to test compilers and obfuscators. We present three related MRs, two of which uncover evidence of faults.
KW - Android Runtime (ART)
KW - Compilers
KW - Metamorphic Relation (MR)
KW - Metamorphic Testing (MT)
KW - Obfuscators
KW - Oracle Problem
UR - http://www.scopus.com/inward/record.url?scp=85168900183&partnerID=8YFLogxK
U2 - 10.1109/COMPSAC57700.2023.00276
DO - 10.1109/COMPSAC57700.2023.00276
M3 - Conference contribution
AN - SCOPUS:85168900183
T3 - Proceedings - International Computer Software and Applications Conference
SP - 1786
EP - 1791
BT - Proceedings - 2023 IEEE 47th Annual Computers, Software, and Applications Conference, COMPSAC 2023
A2 - Shahriar, Hossain
A2 - Teranishi, Yuuichi
A2 - Cuzzocrea, Alfredo
A2 - Sharmin, Moushumi
A2 - Towey, Dave
A2 - Majumder, AKM Jahangir Alam
A2 - Kashiwazaki, Hiroki
A2 - Yang, Ji-Jiang
A2 - Takemoto, Michiharu
A2 - Sakib, Nazmus
A2 - Banno, Ryohei
A2 - Ahamed, Sheikh Iqbal
PB - IEEE Computer Society
Y2 - 26 June 2023 through 30 June 2023
ER -