Table 1: Some MR properties for a BST insert and delete.
op 1 op 2 Metamorphic properties
insert delete
insert k v (delete k’ t)= delete k’ (insert k v t)
delete insert
delete k (insert k’ v’ t) = insert k’ v’ (delete k t)
ations under test otherwise the test might miss some
subtle faults.
For future work, we plan to combine the proposed
approach to our earlier work presented in (Alzahrani
et al., 2017), where we used PBT tools to test mod-
els generated by formal methods tools such as TLA+
(Lamport, 1994).
REFERENCES
Alzahrani, N., Spichkova, M., and Blech, J. O. (2017).
From temporal models to property-based testing. In
Evaluation of Novel Approaches to Software Engi-
neering, pages 241–246. SciTePress.
Appel, A. W., Beringer, L., Chlipala, A., Pierce, B. C.,
Shao, Z., Weirich, S., and Zdancewic, S. (2017). Po-
sition paper: the science of deep specification. Philos.
Trans. R. Soc. A., 375(2104).
Brun, M. and Traytel, D. (2019). Generic authenticated data
structures, formally. In Interactive Theorem Proving.
Chan, F., Chen, T., Cheung, S. C., Lau, M., and Yiu, S.
(1998). Application of metamorphic testing in numer-
ical analysis. In Int. Conf. on Software Engineering.
Chen, T. Y. (2015). Metamorphic testing: A simple method
for alleviating the test oracle problem. In Automation
of Software Test, pages 53–54. IEEE.
Chen, T. Y., Kuo, F.-C., Liu, H., Poon, P.-L., Towey, D.,
Tse, T. H., and Zhou, Z. Q. (2018). Metamorphic Test-
ing: A Review of Challenges and Opportunities. ACM
Computing Surveys, 51(1):1–27.
Chen, T. Y., Kuo, F.-C., Merkel, R. G., and Tse, T. (2010).
Adaptive random testing: The art of test case diversity.
Journal of Systems and Software, 83(1):60–66.
Chen, T. Y., Kuo, F.-C., Towey, D., and Zhou, Z. Q. (2015).
A revisit of three studies related to random testing.
Science China Information Sciences, 58(5):1–9.
Chen, T. Y., Poon, P.-L., and Xie, X. (2016). Metric: Meta-
morphic relation identification based on the category-
choice framework. Journal of Systems and Software,
116:177–190.
Claessen, K. and Hughes, J. (2000). QuickCheck: A
lightweight tool for random testing of Haskell pro-
grams. In Functional Programming, pages 268–279.
Claessen, K. and Pałka, M. H. (2013). Splittable pseudoran-
dom number generators using cryptographic hashing.
ACM SIGPLAN Notices, 48(12):47–58.
Gotlieb, A. and Botella, B. (2003). Automated metamor-
phic testing. In Computer Software and Applications
Conference, pages 34–40. IEEE.
Hudak, P., Hughes, J., Peyton Jones, S., and Wadler, P.
(2007). A history of haskell: being lazy with class.
In History of programming languages, pages 12–1.
Hughes, J., Pierce, B. C., Arts, T., and Norell, U. (2016).
Mysteries of dropbox: property-based testing of a dis-
tributed synchronization service. In Software Testing,
Verification and Validation, pages 135–145. IEEE.
Jackson, D. (2012). Software Abstractions: logic, language,
and analysis. MIT press.
Lamport, L. (1994). The temporal logic of actions.
ACM Tran. on Programming Languages and Systems,
16(3):872–923.
Lamport, L. (2002). Specifying systems, volume 388.
Addison-Wesley Boston.
Liu, H., Kuo, F.-C., Towey, D., and Chen, T. Y. (2013). How
effectively does metamorphic testing alleviate the or-
acle problem? IEEE Transactions on Software Engi-
neering, 40(1):4–22.
Liu, H., Liu, X., and Chen, T. Y. (2012). A new method for
constructing metamorphic relations. In Quality Soft-
ware, pages 59–68. IEEE.
Mayer, J. and Guderlei, R. (2006). An empirical study
on the selection of good metamorphic relations. In
Computer Software and Applications Conference, vol-
ume 1, pages 475–484. IEEE.
Merkle, R. C. (1987). A digital signature based on a con-
ventional encryption function. In Theory and appli-
cation of cryptographic techniques, pages 369–378.
Springer.
Miller, A., Hicks, M., Katz, J., and Shi, E. (2014). Authen-
ticated data structures, generically. ACM SIGPLAN
Notices, 49(1):411–423.
Segura, S., Towey, D., Zhou, Z. Q., and Chen, T. Y. (2020).
Metamorphic testing: Testing the untestable. IEEE
Software, 37(3):46–53.
Tao, Q., Wu, W., Zhao, C., and Shen, W. (2010). An au-
tomatic testing approach for compiler based on meta-
morphic testing technique. In Asia Pacific Software
Engineering Conference, pages 270–279. IEEE.
Weyuker, E. J. (1982). On testing non-testable programs.
The Computer Journal, 25(4):465–470.
Zhu, H. (2015). Jfuzz: A tool for automated java unit test-
ing based on data mutation and metamorphic testing
methods. In Trustworthy Systems and Their Applica-
tions, pages 8–15. IEEE.
ENASE 2022 - 17th International Conference on Evaluation of Novel Approaches to Software Engineering
560