Dampak Test-Driven Development pada Kualitas Kode
DOI:
https://doi.org/10.26418/jp.v9i3.66815Keywords:
Test-Driven Development, Testing, Unit Test, Vitest, SveltekitAbstract
Pengembang perangkat lunak sekarang dituntut untuk memiliki perangkat lunak yang baik. Salah satu faktor yang membuat perangkat lunak tersebut baik adalah bebas dari berbagai macam bug dan program mudah untuk dirawat. Salah satu cara untuk mendapatkan hal tersebut adalah menggunakan Test-Driven Development (TDD). TDD adalah metode dengan menuliskan pengujian sebelum kode program. Dengan TDD diharapkan memiliki kualitas kode yang baik dan bebas dari berbagai macam bug. Karena hal tersebut, pada paper ini akan diteliti tentang dampak yang terjadi ketika menggunakan TDD dalam nilai-nilai seperti code coverage, halstead volume dan maintainability index. Hasilnya didapatkan bahwa dengan menggunakan TDD dapat meningkatkan matriks pada indikator tersebut karena pengembang memiliki kesempatan untuk berfokus pada penulisan test di awal sebagai awal siklus dan fokus pada akhir siklus. Berdasarkan perhitungan yang dilakukan, didapatkan hasil dengan penggunaan TDD dapat meningkatkan nilai code coverage sampai lebih dari 100%, cyclomatic complexity sebesar 15.78%, halstead volume sebesar 35% dan maintainability index sebesar 11%. Hal tersebut terjadi karena kode lebih banyak yang dijangkau oleh pengujian dan setiap siklus diakhiri dengan refactor sehingga program akan diperbaiki setiap siklus sehingga kualitas kode menjadi lebih baik.References
Y. Qamsane et al., “A Methodology to Develop and Implement Digital Twin Solutions for Manufacturing Systems,†IEEE Access, vol. 9, pp. 44247–44265, 2021, doi: 10.1109/ACCESS.2021.3065971.
S. Al-Saqqa, S. Sawalha, and H. Abdelnabi, “Agile software development: Methodologies and trends,†International Journal of Interactive Mobile Technologies, vol. 14, no. 11, pp. 246–270, 2020, doi: 10.3991/ijim.v14i11.13269.
S. Romano, F. Zampetti, M. T. Baldassarre, M. Di Penta, and G. Scanniello, “Do Static Analysis Tools Affect Software Quality when Using Test-driven Development?,†in International Symposium on Empirical Software Engineering and Measurement, IEEE Computer Society, Sep. 2022, pp. 80–91. doi: 10.1145/3544902.3546233.
R. Goldan, Y. Elzatar, A. Hendra Brata, and A. P. Kharisma, “Pengembangan Sistem Informasi Inventarisasi Aset menggunakan Metode Test Driven Development (Studi Kasus: Universitas Mulia),†2022. [Online]. Available: http://j-ptiik.ub.ac.id
A. Nur, A. Thohari, and A. E. Amalia, “IMPLEMENTASI TEST DRIVEN DEVELOPMENT DALAM PENGEMBANGAN APLIKASI BERBASIS WEB.†[Online]. Available: http://jurnal.umk.ac.id/index.php/sitech
M. M. Moe and J. C. Sanchez, “Comparative Study of Test-Driven Development (TDD), Behavior-Driven Development (BDD) and Acceptance Test-Driven Development (ATDD),†International Journal of Trend in Scientific Research and Development, vol. 3, no. 4, 2019, [Online]. Available: http://creativecommons.org/licenses/by/4.0
Jamalludin, H. Yuliansyah, S. Winiati, I. Riadi, U. Ahmad Dahlan, and J. ProfDr Supomo, “Implementasi Test Driven Development Pada Pengembangan Aplikasi Android Untuk Mahasiswa Universitas Ahmad Dahlan,†2018. [Online]. Available: http://simeru.uad.ac.id
V. Bakhtiary, T. J. Gandomani, and A. Salajegheh, “The effectiveness of test-driven development approach on software projects: A multi-case study,†Bulletin of Electrical Engineering and Informatics, vol. 9, no. 5, pp. 2030–2037, Oct. 2020, doi: 10.11591/eei.v9i5.2533.
Z. Khanam and M. N. Ahsan, “Evaluating the Effectiveness of Test Driven Development: Advantages and Pitfalls,†International Journal of Applied Engineering Research, vol. 12, pp. 7705–7716, 2017, [Online]. Available: http://www.ripublication.com
M. A. Rizkyana, A. Yunanto, A. Herdian, and Y. R. Ainul, “Implementasi Unit Testing Menggunakan Metode Test-First Development,†vol. 7, no. 1, 2021.
M. Ivankovi, G. Petrovi, R. Just, and G. Fraser, “Code coverage at Google,†in ESEC/FSE 2019 - Proceedings of the 2019 27th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Association for Computing Machinery, Inc, Aug. 2019, pp. 955–963. doi: 10.1145/3338906.3340459.
R. A. Wijaya and K. Karmilasari, “Pengukuran Kualitas Website Pengurus Cabang NU Depok Menggunakan Software Metric,†Jurnal Sisfokom (Sistem Informasi dan Komputer), vol. 10, no. 3, pp. 438–443, Dec. 2021, doi: 10.32736/sisfokom.v10i3.1267.
R. Ganang Atmaja, B. Priyambadha, and F. Pradana, “Pembangunan Kakas Bantu Untuk Mengukur Maintainability Index Pada Perangkat Lunak Berdasarkan Nilai Halstead Metrics dan McCabe’s Cyclomatic Complexity,†2019. [Online]. Available: http://j-ptiik.ub.ac.id
D. R. Wijendra and K. P. Hewagamage, “Analysis of Cognitive Complexity with Cyclomatic Complexity Metric of Software,†Int J Comput Appl, vol. 174, no. 19, pp. 14–19, Feb. 2021, doi: 10.5120/ijca2021921066.
G. H. Kencana, A. Saleh, H. A. Darwito, R. R. Rachmadi, and E. M. Sari, “Comparison of maintainability index measurement from microsoft codelens and line of code,†in International Conference on Electrical Engineering, Computer Science and Informatics (EECSI), Institute of Advanced Engineering and Science, Oct. 2020, pp. 235–239. doi: 10.23919/EECSI50503.2020.9251901.
S. Kadi, “Measuring Maintainability and latency of Node.js frameworks,†2021. Accessed: Jun. 18, 2023. [Online]. Available: https://www.diva-portal.org/smash/get/diva2:1598017/FULLTEXT02