Pengembangan sistem otomatisasi pembangkitan kasus uji dengan algoritma genetika dan test case generation method

Authors

  • Moh Arsyad Mubarak Setyawan Universitas Brawijaya, Malang
  • Fajar Pradana Universitas Brawijaya, Malang
  • Bayu Priyambadha Universitas Brawijaya, Malang

DOI:

https://doi.org/10.26594/teknologi.v10i1.1912

Abstract

Pengujian perangkat lunak merupakan salah satu bagian penting dari pembuatan perangkat lunak. Pada pengujian perangkat lunak terdapat pengujian unit. Pengujian unit merupakan proses pengujian komponen yang berfokus untuk memverifikasi unit terkecil pada perancangan perangkat lunak. Pada tahap pengujian unit terdapat proses pembangkitan kasus uji. Selama ini, pembangkitan kasus uji dari suatu kode program dilakukan secara manual se-hingga membutuhkan waktu yang lama. Hal ini dikarenakan banyaknya kemungkinan jalur pada kode sumber yang akan diuji.  Dalam penelitian ini dibangun suatu sistem otomatis untuk membangkitkan kasus uji. Alur kerja sistem dimulai dari analisa kode sumber dengan Spoon Library, selanjutnya dibentuk CFG (Control Flow Graph) dan DDG (Dynamic Directed Graph). Dari DDG tersebut akan dibangkitkan jalur layak yang terdapat pada DDG, dengan menggunakan algoritma genetika diharapkan dapat mengoptimalkan penentuan jalur independen. Dari masing-masing jalur independen akan dibangkitkan kasus ujinya dengan metode test case generation. Pengujian akurasi sistem pada sistem otomatisasi pembangkit kasus uji dengan jumlah populasi 5, 10 dan 15 serta jumlah maksimum generasi 50, 100, 200 dan 250 dihasilkan jumlah populasi paling optimal yaitu 10 dan maksimum generasi optimal yaitu 200 dengan akurasi 93,33%. Pada jumlah populasi dan maksimum generasi sesudahnya tidak terjadi peningkatan akurasi yang signifikan. Tiap peningkatan jumlah populasi dan maksimum generasi dapat meningkatkan akurasi sistem.

 

 

Software testing is one of the most important part of making software. On the software testing there are unit testing. Unit Testing is a process for verifying component, focusing on the smallest unit of software design. In the unit testing phase contained test case generation process. During this time, the generation of test cases of a program code is done manually. In this study, constructed an automated system to generate test cases. The workflow system starts from the analysis of the source code with the library spoon and then create CFG (Control Flow Graph) and DDG (Dynamic Directed graph). From the DDG will be raised feasible path using a genetic algorithm. Furthermore, from fea-sible path sought independenth path which is a path base d on the level of uniqueness of the path to the other path. From each independenth path raised the test case with a test case generation method. Testing accuracy of the system on the automation system generating test cases with populations of 5,10 and 15 as well as the maximum number of generations 50, 100, 200 and 250 produced the most optimal population number is 15 and the most optimal maximum generation is 200 with accuracy 93.33%. Each increase in the number of population and maximum generation can improve the accuracy of the system. Level accuracy with population number over 10 and maximum generation over 200 has no increace accuracy significant.

Author Biographies

Moh Arsyad Mubarak Setyawan, Universitas Brawijaya, Malang

Teknik Informatika

Fajar Pradana, Universitas Brawijaya, Malang

Teknik Informatika

Bayu Priyambadha, Universitas Brawijaya, Malang

Teknik Informatika

References

Capers, J. (1996). Applied software measurement (Second Edition ed.). McGraw-Hill.

Chaudhary, P., & Yadav, C. S. (2012). An Approach for Calculating the Effort Needed on Testing Projects. International Journal of Advanced Research in Computer Engineering & Technology, 1(1), 035-040.

Ghiduk, A. S. (2014). Automatic generation of basis test paths using variable length genetic algorithm. Information Processing Letters, 114(6), 304-316. doi:https://doi.org/10.1016/j.ipl.2014.01.009

Htoon, C., & Thein, N. L. (2005). Model-based Testing Considering Cost, Reliability and Software Quality. 6th Asia-Pacific Symposium on Information and Telecommunication Technologies. Yangon, Myanmar: IEEE. doi:https://doi.org/10.1109/APSITT.2005.203649

Pawlak, R., Monperrus, M., Petitprez, N., Noguera, C., & Seinturier, L. (2016). SPOON: A library for implementing analyses and transformations of Java source code. Software: Practise and Experience, 46(9), 1155-1179. doi:https://doi.org/10.1002/spe.2346

Pham, D. T., & Karaboga, D. (1998). Cross breeding in genetic optimisation and its application to fuzzy logic controller design. Artificial Intelligence in Engineering, 12(1–2), 15-20. doi:https://doi.org/10.1016/S0954-1810(96)00034-9

Watson, A. H., & McCabe, T. J. (1996). Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric. Gaithersburg, Maryland: National Institute of Standards and Technology (NIST).

Wijayasiriwardhane, T. K., Wijayarathna, P. G., & Karunarathna, D. D. (2011). An automated tool to generate test cases for performing basis path testing. International Conference on Advances in ICT for Emerging Regions (ICTer). Colombo, Sri Lanka: IEEE. doi:https://doi.org/10.1109/ICTer.2011.6075032

Downloads

Published

2020-04-04

Issue

Section

Articles