Peningkatan Understandability pada Pengujian Unit Otomatis dengan Perbaikan Semantik dan Format
NOVI SETIANI, Dr. Ridi Ferdiana, S.T., M.T, IPM, Dr. Ir. Rudy Hartanto, S.T., M.T, IPM.
2023 | Disertasi | DOKTOR TEKNIK ELEKTROPraktik pengujian unit mampu memberikan pengaruh terhadap kualitas produk yang dikembangkan berupa penurunan kesalahan pada perangkat lunak dan peningkatan produktivitas pengembang bagi yang sudah disiplin melakukannya. Alat bantu pengujian unit saat ini telah mampu membangkitkan kasus uji secara otomatis di level method. Sejauh ini, kontribusi terbesar dalam penelitian di bidang pembangkitan kasus uji otomatis telah dilakukan oleh EvoSuite yang dikembangkan berdasarkan pada algoritma pencarian berbasis komputasi evolusioner. Namun, adopsinya di kalangan praktisi masih rendah. Salah satu kendalanya adalah sulitnya kasus uji tersebut dipahami oleh pengembang jika dibandingkan dengan kasus uji yang ditulis manual. Konsekuensinya, kasus uji yang dibangkitkan secara otomatis tidak meningkatkan kemampuan pengembang untuk menemukan kesalahan pada perangkat lunak jika dibandingkan dengan kasus uji yang dibangkitkan oleh pengembang sendiri. Namun, kedua jenis kasus uji ini dapat saling melengkapi (komplementer). Saat pengembang perlu mengobservasi, melengkapi atau memodifikasi kasus uji, maka aspek understandability pada kasus uji otomatis menjadi faktor yang penting untuk diperhatikan. Dengan menggunakan metrik kasus uji dan pengembang dibangun model understandability untuk mengklasifikasikan (F-measure 0,838 dan AUC 0,859) dan memprediksi (korelasi 0,5914 dan MAE 0,0003) apakah sebuah kasus uji dapat dipahami atau tidak oleh pengembang. Berdasarkan proses elisitasi kebutuhan kepada pengembang dan ahli, diperoleh lima faktor yang perlu dimiliki oleh kasus uji di level unit yaitu pemberian nama method yang deskriptif, pemberian nama variabel yang deskriptif, deskripsi assertion, deskripsi exception, dan urutan blok Arrange-Act-Assert. Perbaikan pada deskripsi assertion dan blok Arrange-Act mampu meningkatan pemahaman pengembang, dengan nilai t-test sebesar 2,756 dan 3,220 pada tingkat confidence 95%.
Unit testing practices are able to influence the quality of products developed in the form of reducing errors in software and increasing developer productivity for those who are disciplined in doing so. Unit testing tools are now able to generate test cases automatically at the method level. So far, the biggest contribution in research in the field of automatic test case generation has been made by EvoSuite which was developed based on evolutionary computation based search algorithm. However, its adoption among practitioners is still low. One of the obstacles is the difficulty of these test cases to be understood by developers when compared to test cases written manually. Consequently, test cases that are generated automatically do not improve a developer's ability to find errors in the software when compared to test cases that are generated by the developer himself. However, these two types of test cases can complement each other (complementary). When developers need to observe, complete or modify test cases, the understandability aspect of automated test cases is an important factor to pay attention to. By using test case metrics and the developer built an understandability model to classify (F-measure 0.838 and AUC 0.859) and predict (correlation 0.5914 and MAE 0.0003) whether a test case can be understood or not by the developer. Based on the needs elicitation process for developers and experts, five factors must be owned by test cases at the unit level, namely descriptive method names, descriptive variable names, assertion descriptions, exception descriptions, and Arrange-Act-Assert block sequences. Improvements to the description of assertions and the Arrange-Act block can increase developer understanding, with t-test values of 2.756 and 3.220 at a 95% confidence level.
Kata Kunci : pengujian unit, kasus uji, understandability, otomatis