ScholarGate
Asisten

Pengujian Perangkat Lunak

Pengujian perangkat lunak adalah eksekusi dinamis suatu program dengan masukan terpilih untuk mendeteksi cacat dan memperoleh keyakinan bahwa perangkat lunak berperilaku sesuai yang diharapkan.

Temukan Topik dengan PaperMindSegeraFind papers & topics
Tools & resources
Unduh salindia
Learn & explore
VideoSegera

Definition

Pengujian perangkat lunak adalah aktivitas merancang dan melaksanakan kasus uji — masukan yang dipasangkan dengan hasil yang diharapkan — untuk mengungkapkan perbedaan antara perilaku aktual dan yang disyaratkan serta untuk memperkirakan keandalan perangkat lunak.

Scope

Topik ini mencakup tingkat pengujian (unit, integrasi, sistem, penerimaan); teknik kotak hitam seperti partisi ekuivalensi, analisis nilai batas, dan pengujian kombinatorial; teknik kotak putih yang didorong oleh kriteria cakupan kode; pengujian regresi, kinerja, dan eksplorasi; otomatisasi pengujian; serta teori kecukupan dan cakupan pengujian.

Core questions

  • Bagaimana kasus uji yang efektif dipilih dari ruang masukan yang sangat besar dan tidak dapat dikelola?
  • Kriteria cakupan apa yang mengukur kecukupan rangkaian uji?
  • Bagaimana tingkat pengujian dari unit hingga penerimaan saling melengkapi?
  • Bagaimana pengujian dapat diotomatisasi dan diintegrasikan ke dalam alur pengiriman?

Key theories

Desain pengujian kotak hitam dan kotak putih
Teknik kotak hitam memperoleh pengujian dari spesifikasi melalui partisi dan analisis batas, sementara teknik kotak putih memperoleh pengujian dari struktur kode yang dipandu oleh kriteria cakupan; keduanya saling melengkapi.
Kriteria cakupan dan kecukupan pengujian
Kriteria kecukupan seperti cakupan pernyataan, cabang, dan kondisi, serta kriteria berbasis model atas grafik aliran kontrol dan data, memberikan tujuan yang terukur tentang seberapa menyeluruh rangkaian uji menjalankan suatu program.

Clinical relevance

Pengujian adalah cara yang paling banyak dipraktikkan untuk memastikan perangkat lunak berperilaku benar sebelum dirilis; pengujian otomatis yang dirancang dengan baik dapat mendeteksi regresi sejak dini, mendukung refactoring dan pengiriman berkelanjutan, serta merupakan inti dari perangkat lunak yang dapat diandalkan.

Evidence & guidelines

ISO/IEC/IEEE 29119 menyediakan standar internasional untuk proses, dokumentasi, dan teknik pengujian perangkat lunak, dan area pengetahuan Pengujian Perangkat Lunak SWEBOK memberikan gambaran umum konsensus.

History

Pengujian berkembang dari debugging ad hoc menjadi disiplin ilmu dengan perlakuan sistematis oleh Myers pada tahun 1979; teori cakupan, pengujian berbasis model, dan otomatisasi pengujian berkembang selama dekade-dekade berikutnya, dan pengembangan berbasis pengujian (test-driven development) serta integrasi berkelanjutan menjadikan pengujian otomatis sebagai praktik tangkas (agile) inti.

Debates

Seberapa banyak pengujian otomatis yang bermanfaat
Keseimbangan yang tepat antara pengujian otomatis unit, integrasi, dan end-to-end masih diperdebatkan; piramida pengujian lebih menyukai banyak pengujian unit yang cepat daripada pengujian end-to-end yang lambat, tetapi para kritikus mencatat bahwa keseimbangan ini bergantung pada jenis dan risiko sistem.

Key figures

  • Glenford Myers
  • Paul Ammann
  • Jeff Offutt
  • Boris Beizer

Related topics

Seminal works

  • myers2011
  • ammann2016
  • swebok2014

Frequently asked questions

Mengapa kita tidak bisa menguji setiap masukan yang mungkin?
Ruang masukan yang mungkin dan jalur eksekusi sangat besar atau tak terbatas untuk sebagian besar program, sehingga pengujian menyeluruh tidak dapat dilakukan; pengujian sebaliknya memilih kasus representatif dan batas menggunakan teknik sistematis untuk memaksimalkan deteksi cacat per pengujian.
Apa perbedaan antara tingkat pengujian?
Pengujian unit menguji komponen individual secara terpisah, pengujian integrasi memeriksa interaksinya, pengujian sistem mengevaluasi seluruh sistem terhadap persyaratannya, dan pengujian penerimaan mengonfirmasi bahwa sistem memenuhi kebutuhan pengguna; setiap tingkat menargetkan jenis cacat yang berbeda.

Methods for this concept

Related concepts