Chapter 9 Software testing strategies

dokumen-dokumen yang mirip
TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

Chapter 6. Development and quality plans

Chapter 11 Assuring the quality of software maintenance components

Chapter 1 The software quality challenge

chapter 7 Integrating quality activities in the project life cycle Empat model proses pengembangan perangkat lunak akan dibahas dalam bagian ini:

Chapter 2 What is Software Quality?

Chapter 5. Contract Review

SOFTWARE QUALITY ASSURANCE

Reviews. Chapter Tujuan Review

Komponen-komponen dari Sistem Penjaminan Kualitas Software

Pertemuan 12 dan 13 SQA TIK : Menjelaskan konsep dan strategi Software Quality Assurance

MANAJEMEN KUALITAS PROYEK

Pengujian dan Implementasi Sistem Informasi

DESAIN TEST CASE. Tugas ke 11 Rekayasa Perangkat Lunak

Dibuat Oleh : 1. Andrey ( )

Chapter 3 Software Quality Factors

JAMINAN KUALITAS PERANGKAT LUNAK

ABSTRAKSI DEKOMPOSISI PENGUJIAN Dalam REKAYASA PERANGKAT LUNAK

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

TESTING & IMPLEMENTASI SISTEM 4KA. Mengukur Produktivitas Perangkat Lunak. helen.staff.gunadarma.ac.id

Teknik Informatika S1

TEKNIK PENGUJIAN PERANGKAT LUNAK (Software Testing Techniques)

BAB I PENDAHULUAN. 1.1 Latar Belakang dan Permasalahan

Kualitas Software dan Pengujian

Teknik Pengujian Perangkat Lunak By : Afijal. M.Kom

KONTROL KUALITAS PADA PERANGKAT LUNAK

BAB 3 PENGUJIAN DALAM SIKLUS PENGEMBANGAN

BAB II LANDASAN TEORI

Tugas Rekayasa Perangkat Lunak

PENGEMBANGAN PERANGKAT LUNAK

PENGEMBANGAN PERANGKAT LUNAK. Setia Wirawan

PENGUJIAN PERANGKAT LUNAK. Muhammad Riza Hilmi, ST.

TESTING PROGRAM. Pertemuan Nurul Adhayanti

BAB 1 PENDAHULUAN. Secara umum, diketahui bahwa dalam suatu siklus pengembaangan perangkat lunak selalu terdapat empat proses utama, yaitu :

BAB I PENDAHULUAN 1.1 Latar Belakang

136 Pemeliharaan Perangkat Lunak

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

Nama : Rendi Setiawan Nim :

PEMROGRAMAN TERSTRUKTUR

TESTING & IMPLEMENTASI SISTEM 4KA. Teknik Pengujian Perangkat Lunak. helen.staff.gunadarma.ac.id

PENGUJIAN PERANGKAT LUNAK (SOFTWARE TESTING)

Testing dan Implementasi Sistem Informasi

Rekayasa Perangkat Lunak

SOFTWARE QUALITY ASSURANCE

A. Pengujian Perangkat Lunak

BAB I PENDAHULUAN. bermutu pada tingkat pendidikan. Hal ini dianggap oleh sebagian orang sebagai sebuah kendala

Pendahuluan. Tes Implementasi System. Yahya Erdipasa, ST., M.Kom (candidate) Teknik Informatika

SOFTWARE TESTING. Ratna Wardani

MAKALAH DESAIN TEST CASE. NAMA : RANI JUITA NIM : DOSEN : WACHYU HARI HAJI. S.Kom.MM

Manajemen Proyek Minggu 2

BAB 9 FASE PEMROGRAMAN 2. LANGKAH-LANGKAH PEMROGRAMAN (THE PROGRAMMING STEPS)

Implementasi Sistem dan Maintenace Sistem. Sistem Informasi Universitas Gunadarma 2012/2013

PEMELIHARAAN PERANGKAT LUNAK (SOFTWARE MAINTENANCE)

2. BAB II LANDASAN TEORI. lanjut sehingga terbentuk suatu aplikasi yang sesuai dengan tujuan awal.

3/17/16 Testing dan Audit Perangkat Lunak - Universitas Mercu Buana Yogyakarta

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

TESTING DAN IMPLEMENTASI SISTEM. WAHYU PRATAMA, S.Kom., MMSI.

ERP (Enterprise Resource Planning) Pertemuan 6

BAB I PENDAHULUAN 1.1 Latar Belakang

Bab 10 Manajemen Komunikasi Proyek

BAB III METODOLOGI PENELITIAN. tools yang akan digunakan untuk merancang aplikasi generator denah

PENJAMINAN KUALITAS SOFTWARE pada SIKLUS HIDUP PENGEMBANGAN PERANGKAT LUNAK PROTOTYPING

BAB II LANDASAN TEORI. harapan akan memperoleh laba dari adanya transaksi-transaksi tersebut dan. atas barang atau jasa dari pihak penjual ke pembeli.

Pengembangan Perangkat Lunak. Fakultas Ilmu Komputer dan Teknologi Informasi Jurusan Sistem Informasi Univesitas Gunadarma

Adrian Nugraha Putra

Manajemen Proyek Sistem Informasi DAY-1. Wiratmoko Yuwono, ST

BAB II LANDASAN TEORI. pembelian dilakukan dengan mengubah bentuk barang. 2003). Menurut Soemarso S.R (1994) kegiatan pembelian dalam perusahaan

Proses PL dan Metrik Proyek

BAB I PENDAHULUAN. Negara berkembang Hal ini dilakukan guna meningkatkan taraf hidup dan

BAB 1. PENDAHULUAN. 1.1 Latar Belakang

Penyusunan Perangkat Kontrol Kualitas Perangkat Lunak Pada Aplikasi School Social Network (SSN) Berdasarkan ISO 25030

BAB V IMPLEMENTASI SISTEM

BAB V IMPLEMENTASI SISTEM. tersebut siap diterapkan atau diimplementasikan. Tahap Implementasi Sistem

BAB II LANDASAN TEORI. pengertian. Secara garis besar ada dua kelompok pendekatan, yaitu:

BAB 2 LANDASAN TEORI Enterprise Resource Planning (ERP)

BAB 1 PENDAHULUAN 1.1 LATAR BELAKANG

BAB 4 PROSES PERANGKAT LUNAK & METRIK PROYEK

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

METODE PENGUJIAN PERANGKAT LUNAK

BAB II LANDASAN TEORI

ANALISIS, DESAIN DAN IMPLEMENTASI SISTEM INFORMASI

Chapter 4 SOFTWARE QUALITY ASSURANCE - REVIEW

Hanif Fakhrurroja, MT

BAB 4 PELAKSANAAN PENGUJIAN

Tugas Softskill. Universitas Gundarma. : Sistem Informasi Manajemen. : Waldhi Supriono NPM : Kelas : 2 DB 12

BAB III METODOLOGI PENELITIAN

10/21/2016. Titan Parama Yoga, S.Kom, M.Kom

Metrik Proses dan Proyek Perangkat Lunak KARMILASARI

TEKNIK PENGUJIAN PERANGKAT LUNAK. Ign.F.Bayu Andoro.S, M.Kom

TESTING & IMPLEMENTASI SISTEM 4KA PENDAHULUAN. helen.staff.gunadarma.ac.id

PROSES PERANGKAT LUNAK & METRIK PROYEK

BAB III METODOLOGI PENELITIAN. dalam pengumpulan data atau informasi guna memecahkan permasalahan dan

BAB II LANDASAN TEORI. sehingga komputer dapat memproses input menjadi output.

BAB II TINJAUAN PUSTAKA. dan menyebarkan data dan informasi (Murhada dkk, 2011). Menurut Al-Bahra Bin

Testing dan Implementasi

MODEL PENGEMBANGAN SISTEM

BAB 3 ANALISIS DAN PERANCANGAN SISTEM. Ada beberapa masalah dalam pengenalan tulisan tangan matematika yang dapat

Pertemuan 3 Metodologi Pengembangan Sistem Informasi

I. PENDAHULUAN. Perkembangan software sekarang ini sudah semakin maju. Banyak softwaresoftware

Transkripsi:

Chapter 9 Software testing strategies Testing software adalah tool pertama untuk menjamin kualitas software yang diterapkan untuk mengontrol kualitas produk software sebelum pengiriman atau instalasi di tempat pelanggan. Pada awalnya, testing terbatas pada tahap akhir pembangunan, setelah seluruh paket telah selesai. Kemudian, pentingnya deteksi dini terhadap cacat pada software menyebabkan konsep jaminan kualitas berubah. Prara profesional SQA didorong untuk memperluas kegiatan testing terhadap coding pada setiap bagian proses produksi, yang menyebabkan adanya testing setiap unit dari modul software dan testing terintegrasi seluruh modul. Umumnya semua kegiatan testing adalah dengan cara menjalankan aplikasi mereka langsung dari kodenya, tidak dengan cara meninjau dokumentasi pembangunan. Beberapa penulis cenderung untuk memperluas lingkup testing lebih jauh dan mempertimbangkan bahwa semua siklus hidup jaminan kualitas software difungsikan sebagai suatu jenis kegiatan testing. Testing software tidak diragukan lagi sebagai konsumen terbesar dari sumber daya jaminan kualitas software. Dalam sebuah survei yang dilakukan pada bulan November 1994, Perry (1995) menemukan bahwa rata-rata, 24% dari anggaran pembangunan proyek dialokasikan untuk testing. Selain itu, 32% dari anggaran manajemen proyek direncanakan untuk kegiatan testing. Sehubungan dengan sumber daya waktu, rata-rata 27% dari waktu proyek adalah berupa jadwal untuk testing. Peserta survei juga menunjukkan bahwa mereka berencana untuk mengalokasikan waktu yang lebih substansial (rata-rata 45%) untuk testing tetapi karena beberapa tekanan yang biasanya timbul menjelang akhir proyek, maka manajer proyek umumnya terpaksa mengurangi waktu testing yang sudah dijadwalkan. Jenis testing ini tentunya bukan satu-satunya tool SQA yang diterapkan terhadap kode software. Tool lainnya misalnya dengan inspeksi dan penelusuran terhadap kode yang dicetak terlebih dahulu, tanpa benar-benar menjalankan program. Prosedur-prosedur seperti ini disinyalir menghasilkan hasil yang baik dalam mengidentifikasian cacat kode. Namun demikian, cara ini tidak pernah dapat menggantikan fungsi testing sebelumnya, yang dapat meneliti fungsi produk software dalam kondisi yang benar-benar digunakan oleh pelanggan. 9.1 Definisi dan tujuan Berbagai definisi untuk software testing yang ditemukan dalam literatur mengungkapkan lingkup proses yang bervariasi, yang mungkin terbatas atau diperluas. Definisi (klasik) menurut Myers (1979, Bab 10) "Testing adalah proses eksekusi program dengan maksud untuk menemukan kesalahan. " Definisi yang agak inklusif, kegiatan mulai dari pemeriksaan kode yang dilakukan oleh seorang pemimpin tim, uji coba menjalankan software yang dilakukan oleh seorang rekan, serta tes dyang ilakukan oleh unit testing, semua dapat dianggap kegiatan testing. Dua definisi testing oleh IEEE Std 610,12 (IEEE, 1990): (1) Proses mengoperasikan suatu sistem atau komponen dalam kondisi tertentu, mengamati atau hasil rekaman, dan membuat evaluasi dari beberapa aspek dari sistem atau komponen.

(2) Proses menganalisa item software untuk mendeteksi perbedaan antara kondisi yang ada dan yang diperlukan (suatu bug) dan mengevaluasi fitur dari setiap item software. Perlu dicatat bahwa menurut definisi kedua, menjalankan program sebagai bagian dari proses testing adalah tidak diperlukan. Definisi yang diterapkan dalam buku ini menekankan karakteristik operasi testing secara formal. Lihat Bingkai 9.1. Bingkai 9.1. Software tes - definisi Software tesing adalah proses formal yang dilakukan oleh tim pengujian khusus di mana suatu unit perangkat lunak, beberapa unit perangkat lunak yang terintegrasi atau seluruh paket perangkat lunak diperiksa dengan menjalankan program pada komputer. Semua tes yang terkait dilakukan sesuai dengan prosedur pengujian yang disetujui pada kasus uji yang disetujui. Kata-kata dan frase ditekankan dalam definisi tersebut memungkinkan kita untuk membandingkan karakteristik kunci dari testing software dengan orang software sebagai alat-alat jaminan kualitas siklus hidup: Formal - rencana uji Software merupakan bagian dari pengembangan proyek dan rencana kualitas, dijadwalkan terlebih dahulu dan sering menjadi item sentral dalam pengembangan kesepakatan yang ditandatangani antara pelanggan dan pengembang. Dengan kata lain, pemeriksaan software secara ad hoc oleh rekan atau pemeriksaan teratur oleh pemimpin tim pemrograman tidak dapat dianggap sebagai tes software. Tim testing khusus. Sebuah tim independen atau konsultan eksternal yang mengkhususkan diri dalam testing ditugaskan untuk melakukan tugas-tugas ini terutama dalam rangka untuk menghilangkan bias dan untuk menjamin testing yang efektif oleh para profesional terlatih. Selain itu, secara umum diterima bahwa testing yang dilakukan oleh pengembang sendiri akan menghasilkan hasil yang buruk, seperti orang-orang yang mengembangkan produk asli akan sulit untuk mengungkapkan kesalahan yang mereka tidak dapat mengidentifikasi sebelumnya. Menjalankan program - Segala bentuk kegiatan jaminan kualitas yang tidak melibatkan kegiatan menjalankan software, misalnya pemeriksaan kode, tidak dapat dianggap sebagai dari kegiatan testing. Persetujuan prosedur testing. Proses testing dilakukan sesuai dengan rencana dan prosedur testing yang telah disetujui sebagai suatu prosedur SQA yang diadopsi oleh organisasi yang sedang mengembangkan software. Persetujuan kasus uji. Kasus uji untuk diperiksa dan didefinisikan secara penuh dalam perencanaan uji. Tidak ada kelalaian atau penambahan yang diharapkan terjadi selama testing. Dengan kata lain, setelah prosesuji dimulai, tester tidak diperkenankan untuk mengambil kebijaksanaan dengan cara menghilangkan kasus uji yang anggapnya berlebihan atau menambahkan sebuah kasus uji baru, meskipun mungkin menjanjikan. Tujuan testing ini ditampilkan dalam Bingkai 9.2 Bingkai 9.2 Tujuan software testing Tujuan langsung

Untuk mengidentifikasi dan mengungkapkan kesalahan sebanyak mungkin dalam software yang diuji. Untuk membawa software yang yang diuji ke tingkat kualitas yang dapat diterima, setelah kesalahan yang diidentifikasi dikoreksi dan di testing ulang. Untuk melakukan tes yang diperlukan secara efisien dan efektif, dalam keterbatasan anggaran dan penjadwalan. Tujuan tidak langsung Untuk mengkompilasi catatan kesalahan software untuk digunakan dalam pencegahan kesalahan (oleh tindakan koreksi dan pencegahan). Myers (1979) dengan rapi meringkas masalah ini: "Jika tujuan Anda adalah untuk menunjukkan tidak adanya kesalahan Anda tidak akan menemukan banyak. Jika tujuan Anda adalah untuk menunjukkan adanya kesalahan, Anda akan menemukan sebagian besar dari mereka. " Kata-kata dari tujuan kedua mencerminkan fakta bahwa software yang bebas bug adalah merupakan aspirasi yang utopis. Oleh karena itu, kami lebih memilih ungkapan "tingkat kualitas yang dapat diterima ", yang berarti bahwa persentase tertentu dari bug, dapat ditoleransi untuk pengguna, akan tetap tidak teridentifikasi setelah instalasi software. Persentase ini jelas bervariasi oleh paket software dan pengguna, tetapi harus lebih rendah untuk paket risiko kegagalan yang tinggi. 9.2 Strategi testing software Meskipun metodologi testing dapat bervariasi, seringkali jauh, ini diterapkan dalam kerangka dua strategi testing dasar: Untuk menguji software secara keseluruhan, setelah paket selesai tersedia; atau dikenal sebagai "testing big bang". Untuk menguji software sedikit demi sedikit, dalam modul yang sudah selesai (unit test), kemudian untuk menguji kelompok modul terintegrasi dengan modul yang baru selesai (tes integrasi). Proses ini berlanjut sampai semua modul paket telah diuji. Setelah fase ini selesai, seluruh paket diuji secara keseluruhan (uji sistem). Strategi testing biasanya disebut "testing incremental". Selanjutnya, testing incremental juga dilakukan menurut dua strategi dasar: bottom-up dan top-down. Kedua strategi testing incremental berasumsi bahwa paket software dibangun dari hirarki modul software. Dalam testing top-down, modul pertama diuji adalah modul utama, modul tingkat tertinggi dalam struktur software; modul terakhir yang diuji adalah modul tingkat terendah. Di bottom-up testing, urutan testing dibalik: modul tingkat terendah diuji pertama, dengan modul utama diuji terakhir. Gambar 9.1 mengilustrasikan testing top-down dan bottom-up dari sebuah proyek pengembangan software yang sama terdiri dari 11 modul. Pada bagian atas, Gambar 9.1 (a), proses pengembangan software dan testing selanjutnya dilakukan bottom-up, dalam empat tahap, sebagai berikut: Tahap 1: tes unit modul 1 sampai 7. Tahap 2: Tes Integrasi A dari modul 1, dan 2 dikembangkan dan diuji di tahap 1, dan terintegrasi dengan modul 8, yang dikembangkan pada tahap saat ini. Tahap 3: Dua tes integrasi terpisah, B, pada modul 3, 4, 5 dan 8, terintegrasi dengan modul 9, dan C, untuk modul 6 dan 7, terintegrasi dengan modul 10.

Tahap 4: Sistem testing dilakukan setelah B dan C telah terintegrasi dengan modul 11, yang dikembangkan pada tahap saat ini. Pada Gambar 9.1 (b), pengembangan software dan testing dilakukan top-down dalam enam tahap. Ini harus jelas bahwa perubahan strategi testing memperkenalkan perubahan besar dalam jadwal tes. Testing akan dilakukan sebagai berikut: Tahap 1: testing unit modul 11. Tahap 2: tes integrasi sebuah modul terintegrasi dengan modul 11 9 dan 10, yang dikembangkan pada tahap saat ini. Tahap 3: uji Integrasi B dari A terintegrasi dengan modul 8, yang dikembangkan pada tahap saat ini. Tahap 4: uji Integrasi C B terintegrasi dengan modul 6 dan 7, yang dikembangkan pada tahap saat ini. Tahap 5: tes Integrasi D C terintegrasi dengan modul 1, dan 2 dikembangkan di tahap saat ini.

Tahap 6: uji sstem D terintegrasi dengan modul 3, 4 dan 5, yang dikembangkan pada tahap saat ini. Jalur tambahan yang ditunjukkan pada Gambar 9.1 hanya dua dari banyak kemungkinan jalur. Jalur yang ada pada contoh adalah "horizontal berurutan", meskipun dapat memilih jalan yang "vertikal berurutan" ("kedalaman pertama"). Jika kita mengubah jalur horizontal berurutan dari urutan atas-bawah ditunjukkan pada Gambar 9.1 (b), untuk urutan vertikal, testing akan dilakukan seperti berikut: Tahap 1: Unit testing modul 11. Tahap 2: Tes Integrasi A integrasi dari modul 11 dengan modul 9, yang dikembangkan pada tahap saat ini. Tahap 3: Integrasi uji B dari A dengan modul 8, yang dikembangkan pada tahap saat ini. Tahap 4: Integrasi uji C B dengan modul 1 dan 2, yang dikembangkan pada tahap saat ini. Tahap 5: Integrasi tes D C dengan modul 10, dikembangkan di saat panggung. Tahap 6: Integrasi uji T dari integrasi D dengan modul 6 dan 7, yang dikembangkan pada tahap saat ini. Tahap 7: Sistem testing dilakukan setelah E telah terintegrasi dengan modul 3, 4, dan 5 dikembangkan dalam tahap saat ini. Bottom-up vs top-down strategi Keuntungan utama dari strategi bottom-up adalah kinerjanya yang relatif mudah, sedangkan kerugian utama adalah keterlambatan di mana program secara dapat diamati pada tahap testing modul terakhir. Keuntungan utama dari strategi top-down adalah adanya kemungkinan untuk menunjukkan fungsi seluruh program segera setelah selsai modul tingkat paling atas. Dalam banyak kasus, ini karakteristik memungkinkan untuk melakukan identifikasi lebih darin hasil analisis dan kesalahan desain yang berhubungan dengan algoritma, persyaratan fungsional, dan sejenisnya. Kerugian utama dari strategi ini adalah kesulitan relatif mempersiapkan stub yang diperlukan, yang sering membutuhkan pemrograman yang sangat rumit. Kerugian lain adalah kesulitan yang relatif dalam menganalisis hasil tes. Ahli testing terus memperdebatkan strategi mana yang lebih baik - bottom-up atau top-down. Sementara posisi yang diambil bervariasi, tampaknya bahwa strategi yang dipilih sebenarnya ditentukan oleh pengembang, apakahbottom-up atau top-down. Jelas, penguji harus mengikuti pendekatan pengembang karena sangat penting bahwa testing akan dilakukan segera setelah modul telah dikodekan. Pelaksanaan strategi testing yang berbeda dari strategi pembangunan akan menyebabkan penundaan substansial dalam penjadwalan tes. Big bang vs testing incremental Penerapan strategi testing big bang berdampak pada kerugian yang sangat parah, kecuali program yang di test berukuran sangat kecil dan sederhana. Identifikasi kesalahan menjadi cukup rumit sehubungan dengan jumlah software yang besar. Meskipun sumber daya telah diinvestasikan, efektivitas pendekatan ini relatif sedikit. Selain itu, ketika dihadapkan dengan seluruh paket software, koreksi kesalahan seringkali merupakan tugas yang berat, membutuhkan pertimbangan yang matang atas kemungkinan efek samping dari proses koreksi pada beberapa modul pada satu dan waktu yang sama. Kendala ini jelas membuat estimasi sumber daya testing yang diperlukan dan jadwal testing menjadi tidak jelas. Berbeda dengan testing big bang, bahwa esting incremental menyajikan beberapa keuntungan, yang utama adalah sebagai berikut:

(1) Incremental testing biasanya dilakukan pada modul-modul software yang relatif kecil, seperti unit atau tes integrasi. Hal ini membuat lebih mudah untuk mengidentifikasi persentase kesalahan bila dibandingkan dengan testing pada seluruh paket software. (2) Identifikasi dan koreksi kesalahan akan jauh lebih sederhana dan membutuhkan sumber daya yang lebih sedikit karena itu dilakukan pada volume yang terbatas dari software. Singkatnya, dalam incremental testing, sebagian besar dari kesalahan dapat diidentifikasi dan dikoreksi pada tahap awal pengembangan dan testing, yang mencegah lolosnya kecacatan ke tahap pengembangan yang lebih kompleks, di mana mereka akan memerlukan sumber daya lebih signifikan untuk koreksi. Kerugian utama dari testing incremental adalah jumlah sumber daya pemrograman yang diperlukan untuk persiapan stubs dan driver untuk unit dan tes integrasi. Kelemahan utama lain adalah kebutuhan untuk melaksanakan beberapa operasi testing untuk program yang sama (testing big bang hanya membutuhkan operasi testing tunggal). 9.3. Klasifikasi testing software Tes software dapat diklasifikasikan menurut konsep testing atau klasifikasi persyaratan yang berlaku (lihat Bab 3). 9.3.1 Klasifikasi menurut konsep testing Ada sebuah perdebatan atas apakah fungsi testing software semata-mata hanya dengan melihat output yang cukup sesuai sebagai tingkat kualitas yang dapat diterima. Beberapa menyatakan bahwa struktur internal software dan perhitungan (yaitu, struktur matematika yang mendasari, juga dikenal sebagai "mekanisme" software) harus dimasukkan ke dalam proses testing. Berdasarkan dua konsep atau pendekatan yang berbeda, dua jenistesting telah dikembangkan: Black Box Testing (fungsionalitas). Mengidentifikasi bug suatu software dengan melihat output yang salah. Testing black box mengabaikan jalur internal perhitungan dan pengolahan yang dilakukan. White Box Testing (struktural). Memeriksa jalur perhitungan internal untuk mengidentifikasi bug. Bingkai 9.3 Black Box and white Box Testing - IEEE definisi Black box testing : (1) Testing yang mengabaikan mekanisme internal sistem atau komponen dan fokus semata-mata pada output yang dihasilkan dalam menanggapi input yang dipilih dan kondisi eksekusi. (2) Testing dilakukan untuk mengevaluasi pemenuhan sistem atau komponen dengan kebutuhan fungsional yang ditentukan. White box testing : Testing yang memperhitungkan mekanisme internal sistem atau komponen. Karena pertimbangan biaya, sebagian besar testing dilakukan saat ini testing black box, yang relatif lebih murah.

9.3.2 Klasifikasi sesuai dengan kebutuhan Bab 3 menyajikan model klasik McCall untuk klasifikasi persyaratan kualitas software. Modelnya telah ditambahkan pada klasifikasi tes yangakan dilakukan untuk memastikan proses testing mencakup seluruh persyaratan masing-masing. Persyaratan dan tes yang sesuai ditunjukkan dalam Tabel 9.1. Penerapan white box dan black box testing dalam tes persyaratan kinerja telah mengungkapkan keuntungan dan kerugian dari setiap konsep testing. Lebih khusus, seperti yang sudah tersirat, white box menguji pengolahan data dan ketepatan perhitungan sedangkan black box menguji output yang benar. Tes maintainability dapat diimplementasikan oleh kedua white box dan black box tes, sebagai temuan dari masing-masing konsep testing saling melengkapi. 9.4 White box testing Realisasi dari konsep testing white box memerlukan verifikasi dari setiap pernyataan program dan komentar. Seperti yang ditunjukkan pada Tabel 9.2, testing white box memungkinkan tes kinerja pengolahan data dan perhitungan ketepatan, tes software kualifikasi, tes pemeliharaan dan tes usabilitas. Dalam rangka untuk melakukan tes kebenaran data yang pengolahan dan perhitungan, setiap operasi komputasi dalam urutan operasi yang diciptakan oleh masing-masing kasus uji harus diperiksa. Beralih ke kualifikasi software, fokus test ini bergeser ke pemeriksaan kode software (termasuk komentar) sesuai dengan standar coding dan instruksi kerja. Maintainability test mengacu pada fitur-fitur khusus, seperti yang dipasang untuk mendeteksi penyebab kegagalan, modul struktur yang mendukung adaptasi software dan perbaikan software, dll. Tes reusability memeriksa sejauh bahwa reused software dapat dimasukkan dalam paket dan adaptasi dilakukan dalam rangka membuat bagian-bagian dari software saat ini agar dapat digunakan kembali untuk paket software masa depan. 9.4.1 Tes kebenaran pengolahan data dan perhitungan Menerapkan konsep testing white box, yang didasarkan pada pemeriksaan pengolahan data untuk setiap kasus uji. Dua pendekatan alternatif telah muncul: Cakupan jalur - rencana uji untuk menutupi semua jalur yang mungkin, di mana cakupan diukur dengan persentase jalan tertutup. Cakupan baris - merencanakan tes untuk menutup semua baris kode program, di mana cakupan diukur dengan persentase garis tertutup.

9.4.2 Kebenaran tes dan cakupan jalur Jalur yang berbeda dalam sebuah modul software yang diciptakan oleh pilihan dalam pernyataan bersyarat, seperti IF-THEN-ELSE atau DO WHILE atau DO UNTIL. Testing jalan adalah dimotivasi oleh aspirasi untuk mencapai cakupan yang lengkap dari sebuah program dengan menguji semua path yang mungkin. Oleh karena itu, " line coverage" metrik mengukur kelengkapan tes jalan adalah didefinisikan sebagai persentase dari jalur program yang dijalankan selama uji (diaktifkan oleh uji kasus termasuk dalam prosedur testing ). 9.4.3 Kebenaran cakupan tes dan baris Konsep cakupan line memerlukan bahwa, untuk cakupan baris penuh, setiap baris kode akan dieksekusi setidaknya sekali selama proses testing. Cakupan metrik baris untuk kelengkapan testing baris ("testing jalur dasar") rencana diidefinisikan sebagai persentase dari baris memang dijalankan selama testing. Untuk lebih memahami esensi testing jalur dasar dari sebuah program, referensi ke flow chart dan grafik aliran program dapat membantu. Dalam diagram alir, daimon menyajikan pilihan yang dicakup oleh pernyataan bersyarat (keputusan), sedangkan empat persegi panjang atau persegi panjang suksesi merupakan bagian software menghubungkan pernyataan bersyarat mereka. Dalam grafik aliran program, node mewakili bagian software dan dengan demikian menggantikan persegi aliran satu atau lebih tabel. Tepi mengindikasikan urutan dari bagian software. Node yang memiliki dua atau lebih ujung meninggalkan mewakili pernyataan bersyarat. Contoh berikut menunjukkan flow chart dan grafik aliran program untuk modul software Argometer yang menghitung tarif taksi. Sumber: Software Quality Assurance From theory to implementation by Daniel Galin Terjemahan: Dadang Latif, M.Kom