Top Banner

of 29

Materi Testing.docx

Oct 19, 2015

Download

Documents

Akbar Noer

pembelajaran testing dan implementasi dan strategi pengujian perangkat lunak
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Materi TestingTerminologi Software : seluruh komponen pengolahan data yang dapat membantu memecahkan masalah diluar dari perangkat hardware yang meliputi system design, program dan prosedur.Beberapa gambaran umum tentang perangkat lunak antara lain :1) Perintah (program computer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan.2) Struktur data yang memungkinkan program memanipulasi informasi secara proporsional.3) Dokumen yang menggambarkan operasi dan kegunaan program.Jenis-jenis software antara lain :1. CP/M-80 (control program for Microprocecor 8080) di pakai pada komputer Appel / Intel 80802. CP/m-86 (control program for Microprocecor 8086) di pakai untuk intel 80863. PC-Dos (Personal Computer Disk Operating System) di buat oleh Microsoft Corppration4. MS-DOS (Microsoft Disk Operating System) pengembangan dari PC-DOS5. MS-Windows dibuat oleh Microsoft Corporation, mulai dari Windows 3.1, Windows NT, Windows 95, Windows 98, Windows 2000 Profesional, dan Windows XP yang merupakan perbaikan dari versi sebelumnya, komponen strategisnya antara lain : Fleksibel dengan hardware yang ada saat ini Menggunakan konfigurasi hardware otomatis Prosedur instalasi mudah Fasilitas jaringan network Telah memperbaiki bug-bug pada versi sebelumnya.1. Unix adalah sistem operasi yang dikembangkan oleh Dennis M. Ritche dan Ken Thompson, di tulis dalam pemrograman bahasa C.2. Linux.3. Dll.Ada dua tipe produk perangkat lunak :1. Produk generik2. Produk pesanan (yang disesuaikan)Pengujian perangkat lunak adalah elemen kritis dari jaminan kualitas perangkat lunak dan merespresentasikan kajian pokok dari spesifikasi, desain dan pengkodean. Meningkatnya visibilitas perangkat lunak sebagai suatu elemen sistem dan biaya yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti.Pengujian termasuk dalam teknik verifikasi dan validasi (V & V). Pengujian melibatkan pelatihan perangkat lunak dengan memakai data seperti data riil yang diolah oleh perangkat lunak.Tujuan akhir dari proses verifikasi dan validasi adalah menanamkan kepercayaan bahwa system perangkat lunak siap untuk tujuannya.Apakah yang dimaksud dengan pengujian perangkat lunak ? Pengujian adalah proses menjalankan sebuah program dengan maksud menemukan kesalahan-kesalahan (error). Proses untuk menjalankan sebuah program komputer dan membandingkan tingkah laku yang sesungguhnya dengan yang diharapkan. Yang dimaksud membandingkan adalah menemukan bentuk penyimpangan-penyimpangan (jika ada). Antara lain membandingkan tingkah laku yang sesungguhnya dengan yang diharapkan. Layanan pengujian sebagai bentuk suatu rintangan untuk menyediakan produk yang berkualitas dalam mendapatkan pelangganPada saat V & V perangkat lunak, kesalahan pada perangkat lunak biasanya ditemukan dan kemudian diubah untuk membetulkan kesalahan tersebut. Proses debug ini seringkali terintegrasi dengan kegiatan verifikasi dan validasi lain. Bagaimanapun, pengujian (atau lebih umum verifikasi dan validasi) dan debug merupakan proses yang berbeda yang tidak harus diintegrasikan :1. Verifikasi dan validasi adalah proses yang meyakinkan adanya kesalahan pada sistem perangkat lunak.2. Debug merupakan proses yang menemukan dan membetulkan kesalahan tersebut.Tipe pengujian yang dapat digunakan pada berbagai tahap proses perangkat lunak :1.Pengujian cacat (Defect Testing) Menetapkan keberadaan cacat sistem. Tujuannya untuk menemukan ketidak konsistenan antara program dan spesifikasinya. Dirancang untuk mengungkapkan adanya cacat pada sistem dan bukan untuk mensimulasi penggunaan operasionalnya. Bermanfaat bagi pemrogram dan menunjukkan cacat-cacat yang ada di kode (program).2.Pengujian statistik Menguji kinerja dan keandalan program dan memeriksa bagaimana kerjanya pada kondisi operasional Dirancang untuk menunjukkan input user yang sebenarnya dan frekuensinya. Kehandalan sistem dapat dilakukan dengan menghitung kegagalan sistem yang diteliti.Sasaran Pengujian Glen Myers menyatakan bahwa sasaran dari pengujian perangkat lunak adalah :1. Pengujian adalah proses menjalankan suatu program dengan maksud menemukan kesalahan.2. Pengujian yang baik adalah yang memiliki kemungkinan tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya.3. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya.Satu hal yang perlu diingat/diperhatikan dalam pengujian terhadap perangkat lunak bahwa :Pengujian tidak dapat memperlihatkan kerusakan sistem, tetapi hanya dapat memperlihatkan bahwa ada kesalahan perangkat lunak. Kaner, Falk dan Nguyen mengusulkan atribut-atribut daripengujian yang baik sebagai berikut :1. Pengujian yang baik memiliki probabilitas yang tinggi untuk menemukan kesalahan.2. Pengujian yang baik tidak redundan.3. Pengujian yang baik seharusnya jenis terbaik4. Pengujian yang baik tidak boleh terlalu sederhana atau terlalu kompleks.Tidak semua pengujian akan berhasil dengan baik. Masih ada beberapa kekurangan yang terdapat pada pengujian suatu perangkat lunak.Kekurangan-kekurangan tersebut antara lain :1.Tidak pernah cukup melakukan banyak ujian yang layak.2.Pengujian tidak akan menemukan semua kesalahan3.Pengujian sulit dan menghabiskan banyak waktu4.Pengujian sebagian besar masih merupakan tugas yang tidak resmi.Prinsip-prinsip Pengujian Sebelum menetapkan metode pengujian, seorang ahli pada bidang software harus mengerti betul atau memahami prinsip dasar yang menuntun pengujian perangkat lunak. Prinsip-prinsip pengujian secara umum yang banyak dianut oleh para ahli perangkat lunak, antara lain :

Seorang Programmer seharusnya tidak menguji programnya sendiri. Sebaiknya satu pengujian tidak hanya mengerjakan program yang dianggap benar, tetapi tidak mengerjakan yang dianggap salah. Tujuan dari pengujian adalah untuk menemukan kesalahan, bukan untuk menunjukkan bahwa program tersebut salah. Tidak ada sejumlah pengujian yang dapat menjamin bahwa program bebas dari kesalahan. Bagian-bagian dari program di mana terdapat banyak kesalahan yang telah ditemukan adalah suatu tempat yang baik untuk menemukan kesalahan yang lebih banyak. Tujuannya adalah bukan untuk mempermalukan programmer.

Selain pernyataan diatas, Roger S. Pressman mendefinisikan sendiri mengenai prinsip-prinsip pengujian terhadap perangkat lunak : Pengujian harus sesuai dengan persyaratan konsumen. Para ahli harus betul-betul mengetahui spesifikasi dari produk (software) yang diinginkan konsumen. Pengujian harus direncanakan lama sebelum pengujian itu di mulai. Prinsip Pareto berlaku untuk pengujian perangkat lunak. 80 % kesalahan yang ditemukan, hanya dapat ditelusuri sampai 20 % dari semua modul program. Pengujian harus dimulai dari yang kecil dan berkembang ke pengujian yang besar. Pengujian berfokus dalam usaha menemukan kesalahan pada modul yang terintegrasi, dan akhirnya pad asistem secara keseluruhan. Pengujian yang sempurna tidak mungkin. Agar efektif, pengujian harus dilakukan oleh pihak ketiga yang independent (third party). Pengujian yang memiliki probabilitas tinggi untuk menemukan kesalahan. Pembuat sistem bukanlah orang yang paling tepat untuk melakukan semua pengujian bagi perangkat lunak.Kegagalan dan Kesalahan Kesalahan sistem tidak selalu mengakibatkan eror sistem, karena status salahnya mungkin bersifat sementara dan dapat diperbaiki sebelum terjadi perilaku yang merupakan eror.Jenis kegagalan dan kesalahan pada sistem antara lain : Kegagalan sistem (system failure)Peristiwa yang terjadi pada suatu waktu ketika sistem tidak memberikan layanan sebagaiman diharapkan oleh user. Eror sistem (system eror)Perilaku eror sistem dimana perilaku, sistem yang tidak sesuai dengan spesifikasinya Kesalahan sistem (system fault)Status sistem yang tidak benar, yaitu status sistem yang tidak diharapkan oleh perancang sistem. Eror atau kesalahan manusia (human error)Perilaku manusia yang mengakibatkan kesalahan sistem.Bagaimana kesalahan tersebut mempengaruhi kita ?Telah diketahui bahwa salah satu tujuan dari pengujian terhadap perangkat lunak, adalah untuk menemukan suatu kesalahan. Kesalahan-kesalahan tersebut mempunyai tingkatan-tingkatan yang diukur dengan istilah yang dimengerti oleh manusia. Tingkatan-tingkatan kesalahan tersebut dikategorikan sebagai berikutA. MILD (ringan)Gejala dari kesalahan yang mengganggu kita secara estetis Kesalahan pengejaan Kesalahan penempatanB. MODERATE (sedang) Kesalahan yang berpengaruh pada penampilan system Informasi yang menyesatkanC. ANNOYING (menjengkelkan) Kesalahan dari system karena adanya suatu virus. Nama yang terpotong Tagihan untuk Rp. 0,00 di cetak / dikirimD. DISTURBING (mengganggu) Sistem menolak untuk menangani transaksi yang sah Kartu kredit yang dilaporkan tidak bisa digunakanE. SERIOUS (serius) Perhitungan yang salah Hal ini menghilangkan hubungan pada proses transaksi Tidak mencetak setiap pembayaranF. VERY SERIOUS (sangat serius) Kesalahan yang menyebabkan system melakukan transaksi yang salah Sebuah system kredit dapat melakukan kesalahan perhitungan.G. EXTREME (besar) Masalah yang tidak terbatas pada beberapa transaksi Sering berubah-ubah atau masalah yang tidak lazimH. INTOLERABLE (kurang tahan) Pertimbangan yang serius diberikan untuk mematikan system.I. CATASTROPHIC (bencana besar) Sistem yang salah

Testability (Kemampuan Test)Testabilitas perangkat lunak adalah seberapa mudah sebuah program komputer dapat diuji. Karena pengujian sangat sulit, maka perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi mudah. Kadang-kadang pemrogram bersedia melakukan hal-hal yang akan membantu proses pengujian, dan membuat checklist (daftar periksa) mengenai masalah-masalah desain yang mungkin, fitur dan lain sebagainya yang dijadikan sebagai pedoman dalam melakukan pengujian.Beberapa checklist dibawah ini, akan membantu sebagai pedoman dalam kegiatan pengujian perangkat lunak :1. OPERABILITY. (Mampu menjalankan/operasi.) Semakin baik hal tersebut dijalankan, pengujian akan semakin efesien. Sistem memiliki sedikit kesalahan. Tidak ada kesalahan yang menghalangi jalannya pengujian. Produk berkembang dalam tahapan fungsional (memungkinkan pengembangan dan pengujian secara simultan)2. OBSERVABILITY(Kemampuan untuk mengamati/meneliti) Apa yang dilihat adalah apa yang diuji. Output yang berbeda dikeluarkan oleh masing-masing input. Tahap dan variabel sistem dapat dilihat atau diantrikan selama eksekusi. Sistem dan variabel yang lalu dapat dilihat atau diantrikan (misalnya, logaritma transaksi) Semua faktor yang mempengaruhi output dapat dilihat. Output yang tidak benar dapat diidentifikasi dengan mudah. Kesalahan internal dideteksi secara otomatis melalui mekanisme pengujian itu sendiri. Kesalahan internal dilaporkan secara otomatis. Kode sumber dapat diakses.3. CONTROLLABILITY(Kemampuan untuk mengawasi) Semakin baik kita dapat mengontrol perangkat lunak, semakin banyak pengujian yang dapat diotomatisasi dan dioptimalkan. Semua output yang baik, dapat diperoleh melalui beberapa kombinasi input. Semua kode dapat dijalankan melalui berbagai kombinasi input. Keadaan dan variabel perangkat lunak dan perangkat keras dapat dikontrol secara langsung oleh penguji. Format input dan output konsisten dan terstruktur. Pengujian dapat dispesifikasi, dioptimasi, dan direproduksi dengan baik.4. DECOMPOSABILITY(Kemampuan untuk menyelesaikan). Dengan mengontrol ruang lingkup pengujian, kita dapat dengan lebih cepat mengisolasi masalah dan melakukan pengujian kembali secara lebih halus. Sistem perangkat lunak dibangun dari modul-modul yang independen. Modul-modul dapat diuji secara independen.5. SIMPLICITY (Kemampuan untuk menyederhanakan kerumitan). Semakin sedikit yang diuji, semakin cepat kita dapat mengujinya. Fungsi yang sederhana (kumpulan fitur adalah kebutuhan minimum untuk memenuhi persyaratan). Struktur yang sederhana (arsitektur dimodularisasi untuk membatasi penyebaran kesalahan). Kode yang sederhana (standar pengkodean diadopsi demi kemudahan inspeksi dan pemeliharaan)6. STABILITY(Mampu menyeimbangkan ). Semakin sedikit perubahan, semakin sedikit gangguan dalam pengujian. Perubahan perangkat lunak jarang terjadi. Perubahan perangkat lunak dapat dikontrol. Perubahan perangkat lunak memvalidasi pengujian yang sudah ada. Kegagalan perangkat lunak dapat diperbaiki dengan baik.7. UNDERSTANDBILITY (kemampuan untuk memahami/mengerti). Semakin banyak informasi yang kita dapat, semakin mudah pengujian dilakukan. Rancangan dapat dipahami dengan baik. Ketergantungan antara komponen internal, eksternal, dan yang dipakai bersama, dipahami dengan baik. Perubahan rancangan dibicarakan. Dokumentasi teknik dapat diakses dengan cepat. Dokumen teknik diorganisasikan dengan baik. Dokumentasi teknik spesifik dan detail. Dokumentasi teknik akurat. MENGAPA PROGRAM MENGALAMI KERUSAKAN ? Ketika orang mengerjakan tugas-tugas yang kompleks, mereka membuat kesalahan yang tidak dapat dihindari. Mereka lebih memperbaiki kerusakan-kerusakan selama pengujian. Mereka harus memperbaiki banyak kesalahan sebelum program akan berjalan semuanya. MEMPERBAIKI KERUSAKAN ADALAH SESUATU YANG MAHAL Dengan waktu sehari, pengujian perangkat lunak secara umum masih mempunyai banyak kerusakan Komputer akan menjalankan program yang tidak sempurna ketika menghadapi kerusakan, program tidak akan mengerjakan apa yang seharusnya dikerjakan. Bahkan mungkin menyebabkan kerugian. Semakin lama kerusakan tersisa, semakin buruk memperbaikinya membutuhkan biaya lebih untuk perbaikan kerusakan yang tersisa akan menjadi penyebab gangguan REVIEW (Peninjauan) Melakukan peninjauan adalah langkah yang terpenting, karena dapat mengembangkan kualitas perangkat lunak. Lebih awal mengenali dan mengatasi masalah, semakin mudah dan murah untuk memperbaikinya. APA YANG PERLU DITINJAU ? REQUIREMENT & ANALYSIS (pemahaman dan analisa) DESIGN (rancangan) CODE (kode) DOCUMNTATION (dokumentasi) TEST PLAN & CASES (rencana ujian dan kasus)TESTING TECHNIQUE / Teknik Pengujian Pengujian merupakan elemen yang paling kritis dari penilaian perangkat lunak yang telah dikerjakan.Pembahasan : Dasar-dasar pengujian perangkat lunak Perancangan permasalahan pengujian yang berfokus pada kumpulan teknik yang digunakan untuk membuat pengujian sesuai dengan permasalahan dan juga disesuaikan dengan tujuan pengujian secara keseluruhan.Pengujian merupakan salah satu dari siklus pengembangan perangkat lunak yang jika ditinjau dari sudut pandang psikologi adalah penghancuran dibandingkan penyusunan.Aliran Informasi Pengujian Aliran informasi yang terdapat pada saat pengujian dilaksanakan dapat digambarkan sebagai berikut :Terdapat 2 (dua) tingkatan yang tersedia pada proses pengujian, yaitu : Konfigurasi perangkat lunak yang mencakup spesifikasi keperluan perangkat lunak, spesifikasi perancangan, test case, dan program sumber. Konfigurasi pengujian yang mencakup rencana dan prosedur uji coba, test case dan hasil yang diharapkan.Desain Test CaseDengan melihat lagi sasaran pengujian, kita harus mendesain pengujian yang memiliki kemungkinan tertinggi dalam menemukan kesalahan dengan jumlah waktu dan usaha yang minimum.Terdapat 2 (dua) macam test case : Pengetahuan fungsi yang spesifik dari produk yang telah dirancang untuk diperlihatkan, test dapat dilakukan untuk menilai masing-masing fungsi apakah telah berjalan sebagaimana yang diharapkan. Pengetahuan tentang cara kerja dari produk, test dapat dilakukan untuk memperlihatkan cara kerja dari produk secara rinci sesuai dengan spesifikasinya.Terdapat dua pendekatan dalam teknik pengujian perangkat lunak : Black Box TestingDilakukan untuk testing pada interface perangkat lunak. Test case ini bertujuan untuk menunjukkan fungsi perangkat lunak tentang cara beroperasinya, apakah pemasukan data keluaran telah berjalan sebagaimana yang diharapkan dan apakah informasi yang disimpan secara eksternal selalu dijaga kemutakhirannya. White Box TestingMeramalkan cara kerja perangkat lunak secara rinci, karenanya logikal path (jalur logika) yang melewati perangkat lunak diuji dengannmemberikan test case yang menguji serangkaian kondisi dan loop secara spesifik.Secara sekilas dapat disimpulkan bahwa metoda White Box Testing merupakan petunjuk untuk mendapatkan program yang benar, karena semuanya dilakukan dengan mendefinisikan seluruh jalur logika, mengembangkan test case untuk mengerjakan program, dan mengevaluasi hasilnya, sehingga test case akan mengerjakan logika program secara mendalam.WHITE BOX TESTINGPengujian white box adalah metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case.Pengujian White Box disebut juga : Glass Box Testing (Pengujian kotak bening) Code Base Testing (Source kodenya dimunculkan) Structural Testing (Struktur program ditampilkan)Dengan menggunakan metoda White Box Testing, perekayasa sistem akan dapat melakukan test case yang :1. Menjamin bahwa seluruh independent path di dalam modul telah dikerjakan paling tidak satu kali.2. Mengerjakan seluruh keputusan logika pada sisi true dan false3. Melaksanakan seluruh loop sesuai dengan batasannya4. Mengerjakan seluruh struktur data internal yang menjamin validitasBASIS-PATH TESTINGPengujian basis path adalah teknik pengujian white box yang diusulkan oleh Tom MacCabe.Tujuannya memperoleh ukuran kekomplekan logikal dari perancangan prosedural dan menggunakannya sebagai petunjuk untuk menetapkan basis set dari jalur eksekusi.Objek dari pengujian path adalah untuk meyakinkan bahwa penerapan masalah ujian untuk masing-masing path yang melalui program dilaksanakan setidaknya sekali.Point permulaan dari pengujian path adalah Folwgraph program yang menunjukkan keputusan program dan aliran kontrol.Metode pengujian basis path dapat diaplikasikan pada desain prosedural atau kode sumber.Cyclomatic Complexity Adalah metrik perangkat lunak yang menyediakan ukuran kuantitatif dari kekomplekan logika suatu program. Nilai yang dihitung untuk cyclomatic complexity menentukan jumlah independent path dalam basis set suatu program. Memberikan batas atas bagi jumlah pengujian yang harus dilakukan untuk memastikan bahwa seluruh statemen telah dilaksanakan sedikitnya sekali. Independet path adalah jalur yang melintasi atau melalui program dimana sekurang-kurangnya terdapat proses perintah yang baru atau kondisi yang baru. Dalam flowgraph, independent path harus bergerak sekurang-kurangnya pada satu edge yang belum dilewati sebelum jalur tersebut didefinisikan.Cyclomatic Complexity digunakan untuk mencari jumlah path dalam satu flowgraph. Dapat dicari dengan 3 (tiga) metode, yaitu : Cyclomatic comlpexity V untuk flowgraph dihitung dengan rumus :V(G) = E N + 2dimana E = jumlah Edge, dan N = jumlah Node Cyclomatic comlpexity V untuk flowgraph dapat dicari dengan rumus :V(G) = P + 1dimana P = jumlah predikat node Jumlah region dalam flowgraph mempunyai hubungan dengan cyclomatic complexity.V(G) = RNilai cyclomatic complexity memberi batas untuk jumlah jalur independen yang membentuk basis set dan implikasinya, batas atas jumlah pengujian yang harus didesain dan dieksekusi untuk menjamin semua statemen program.Graph metrik Adalah matrik empat persegi yang mempunyai ukuran (jumlah baris dan kolom) yang sama dengan jumlah node pada flowgraph. Masing-masing baris dan kolom mempunyai hubungan dengan node yang telah ditentukan. Pemasukan data matrik berhubungan dengan hubungan (edge) antarnode. dikembangkan untuk membantu pengujian basis path atau struktur data.LOOP TESTINGLoop merupakan kendala yang sering muncul untuk menerapkan algoritma dengan cepat. Pengujian loop merupakan teknik pengujian white box yang berfokus pada validitas dari loop. Terdapat 4 kelas dari loop, : Simple loop. Nested loop. Concanated loop. Unstructured loop.Simple Loop Diaplikasikan pada bentuk loop yang sederhana, dimana n adalah jumlah maksimum yang diijinkan untuk melalui loop. lewati loop secara keseluruhan. hanya satu yang melalui loop m dapat melalui loop dimana m = n atau m < nNested loop teruskan sampai semua loop selesai diuji.Concanated Loop Dapat diuji dengan menggunakan pendekatan simple loop bila masing-masing dari loop independent terhadap yang lain. Bila dua loop dirangkai dan pencacah loop untuk loop 1 digunakan sebagai harga awal untuk loop 2, kemudian loop tersebut menjadi tidak independen, maka pendekatan yang diaplikasikan ke loop tersebut direkomendasikan.Unstructured Loop Apabila memungkinkan, kelas loop ini harus didesain lagi untuk mencerminkan penggunaan konsepsi pemrograman terstruktur.Black Box Testing Metode pengujian black box berfokus pada keperluan fungsional dari perangkat lunak dan domain informasi. Analis sistem memperoleh kumpulan kondisi dari input yang akan mengerjakan seluruh keperluan fungsional program. Cenderung diaplikasikan selama tahap akhir pengujian. Disebut juga pengujian behavioral/pengujian partisi/pengujian interface. Memperhatikan dari sudut pandang Input data dan Output data. Perangkat lunak ditinjau sebagai kotak hitam yang menyalurkan input kepada output berdasarkan rincian dimana perangkat lunak tersebut harus melakukannya. Periksa kecocokan dari pengujian S/W yang membentuk tingkah laku. Mencari kesalahan-kesalahan yang dihasilkan oleh kesalahan Kesalahan perangkat lunak adalah bagian dari perangkat lunak yang tidak menurut pada penyedian definisi itu sendiri dalam dokumen pengembangan.Tujuannya untuk mencari kesalahan-kesalahan pada : Fungsi yang salah atau hilang. Kesalahan pada interface. Kesalahan pada struktur data atau akses database. Kesalahan performansi (kinerja). Kesalahan initialisasi dan tujuan akhir.Type dari pengujian black box :1. Equivalence Class Partitioning. (pembagian kelas yang sama) Metode pengujian black box yang memecah atau membagi domain input dari suatu program ke dalam kelas-kelas data. Perancangan test case berdasarkan evaluasi kelas equivalence untuk kondisi input. Kelas equivalence menggambarkan kumpulan keadaan yang valid dan tidak valid untuk kondisi input. Kondisi input dapat berupa nilai numerik, range dari nilai, kumpulan nilai yang berhubungan atau kondidi boolean.Kelas equivalence dapat ditentukan sesuai pedoman berikut ini : Bila kondisi input menentukan suatu range, maka kelas equivalence valid dan dua yang invalid ditentukan. Bila kondisi input membutuhkan suatu harga khusus, maka satu kelas equivalence valid dan dua yang invalid ditentukan. Bila kondisi input menentukan anggota suatu himpunan, maka satu kelas equivalence valid dan dua yang invalid ditentukan. Bila kondisi input adalah boolean, maka satu kelas dan satu yang tidak valid ditentukan.Contoh :Dalam persamaan matematika.1 juta