Posted by : Unknown
Kamis, 14 Februari 2019
Beberapa definisi tentang testing:
1. Menurut Hetzel 1973:
Testing adalah proses pemantapan kepercayaan akan kinerja program atau sistem sebagaimana yang diharapkan.
Testing adalah proses pemantapan kepercayaan akan kinerja program atau sistem sebagaimana yang diharapkan.
2. Menurut Myers 1979:
Testing adalah proses eksekusi program atau sistem secara intens untuk menemukan error.
Testing adalah proses eksekusi program atau sistem secara intens untuk menemukan error.
3. Menurut Hetzel 1983 (Revisi):
Testing adalah tiap aktivitas yang digunakan untuk dapat melakukan evaluasi suatu atribut atau kemampuan dari program atau sistem dan menentukan apakah telah memenuhi kebutuhan atau hasil yang diharapkan.
Testing adalah tiap aktivitas yang digunakan untuk dapat melakukan evaluasi suatu atribut atau kemampuan dari program atau sistem dan menentukan apakah telah memenuhi kebutuhan atau hasil yang diharapkan.
4. Menurut Standar ANSI/IEEE 1059:
Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defects / errors / bugs) dan mengevaluasi fitur-fitur dari entitas software.
Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defects / errors / bugs) dan mengevaluasi fitur-fitur dari entitas software.
Beberapa pandangan praktisi tentang testing, adalah sebagai berikut:
· Melakukan cek pada program terhadap spesifikasi.
· Menemukan bug pada program.
· Menentukan penerimaan dari pengguna.
· Memastikan suatu sistem siap digunakan.
· Meningkatkan kepercayaan terhadap kinerja program.
· Memperlihatkan bahwa program berkerja dengan benar.
· Membuktikan bahwa error tidak terjadi.
· Mengetahui akan keterbatasan sistem.
· Mempelajari apa yang tak dapat dilakukan oleh sistem.
· Melakukan evaluasi kemampuan sistem.
· Verifikasi dokumen.
· Memastikan bahwa pekerjaan telah diselesaikan.
Berikut ini adalah pengertian testing yang dihubungkan dengan proses verifikasi dan validasi software: Testing software adalah proses mengoperasikan software dalam suatu kondisi yang di kendalikan, untuk (1) verifikasi apakah telah berlaku sebagaimana telah ditetapkan (menurut spesifikasi), (2) mendeteksi error, dan (3) validasi apakah spesifikasi yang telah ditetapkan sudah memenuhi keinginan atau kebutuhan dari pengguna yang sebenarnya.
· Verifikasi adalah pengecekan atau pengetesan entitas-entitas, termasuk software, untuk pemenuhan dan konsistensi dengan melakukan evaluasi hasil terhadap kebutuhan yang telah ditetapkan. (Are we building the system right ?)
· Validasi melihat kebenaran sistem, apakah proses yang telah ditulis dalam spesifikasi adalah apa yang sebenarnya diinginkan atau dibutuhkan oleh pengguna. (Are we building the right system?)
- Deteksi error: Testing seharusnya berorientasi untuk membuat kesalahan secara intensif, untuk menentukan apakah suatu hal tersebut terjadi bilamana tidak seharusnya terjadi atau suatu hal tersebut tidak terjadi dimana seharusnya mereka ada.
Schema Waterfall
Gambar 1.1 Schema Waterfall
Dari beberapa definisi di atas, dapat kita lihat akan adanya banyak perbedaan pandangan dari praktisi terhadap definisi testing. Testing merupakan aktifitas pengumpulan informasi yang dibutuhkan untuk melakukan evaluasi efektifitas kerja.Jadi tiap aktifitas yang digunakan dengan obyektifitas untuk menolong kita dalam mengevaluasi atau mengukur suatu atribut software dapat disebut sebagai suatu aktifitas testing. Termasuk di dalamnya review, walk-through, inspeksi, dan penilaian serta analisa yang ada selama proses pengembangan. Dimana tujuan akhirnya adalah untuk mendapatkan informasi yang dapat diulang secara konsisten (reliable) tentang hal yang mungkin sekitar software dengan cara termudah dan paling efektif, antara lain:
· Apakah software telah siap digunakan?
· Apa saja resikonya?
· Apa saja kemampuannya?
· Apa saja keterbatasannya?
· Apa saja masalahnya?
· Apakah telah berlaku seperti yang diharapkan?
Definisi Sederhana Kualitas
Berikut ini beberapa definisi sederhana tentang kualitas:
1. Menurut CROSBY:
Kualitas adalah pemenuhan terhadap kebutuhan.
Kualitas adalah pemenuhan terhadap kebutuhan.
2. Menurut ISO-8402:
Kualitas adalah keseluruhan dari fitur yang menjadikan produk dapat memuaskan atau dipakai sesuai kebutuhan dengan harga yang terjangkau.
Kualitas adalah keseluruhan dari fitur yang menjadikan produk dapat memuaskan atau dipakai sesuai kebutuhan dengan harga yang terjangkau.
3. Menurut W.E. Perry:
Kualitas adalah pemenuhan terhadap standar.
Kualitas adalah pemenuhan terhadap standar.
4. Menurut R. Glass:
Kualitas adalah tingkat kesempurnaan.
Kualitas adalah tingkat kesempurnaan.
Hubungan Testing dan Kualitas
Definisi software berkualitas adalah software yang bebas error dan bug secara obyektif, tepat waktu dan dana, sesuai dengan kebutuhan atau keinginan dan dapat dirawat (maintainable).
Pengertian kata obyektif adalah suatu proses pembuktian yang terstruktur, terencana dan tercatat / terdokumentasi dengan baik.Pendekatan yang obyektif sangat diperlukan karena kualitas adalah suatu hal yang tidak nyata dan subyektif. Ia tergantung pada pelanggan dan hal-hal lain yang mempengaruhinya secara keseluruhan.
Pelanggan pada proyek pengembangan software dapat meliputi pengguna akhir (end-users), tester dari pelanggan, petugas kontrak dari pelanggan, pihak manajemen dari pelanggan, pemilik saham, reviewer dari majalah, dan lain-lain, dimana tiap tipe pelanggan akan mempunyai sudut pandang sendiri terhadap kualitas.
Testing membuat kualitas dapat dilihat secara obyektif, karena testing merupakan pengukuran dari kualitas software. Dengan kata lain testing berarti pengendalian kualitas (Quality Control - QC), dan QC mengukur kualitas produk, sedangkan jaminan kualitas (Quality Assurance – QA) mengukur kualitas proses yang digunakan untuk membuat produk berkualitas.
Faktor Kualitas Secara Umum
Faktor-faktor kualitas software secara umum dapat dibedakan menjadi tiga faktor, yaitu fungsionalitas, rekayasa, dan adaptabilitas. Berikut contoh yang mengilustrasikan beberapa faktor-faktor komponen yang sering digunakan:
1. Fungsionalitas (Kualitas Luar)
· Kebenaran (Correctness)
· Reliabilitas (Reliability)
· Kegunaan (Usability)
· Integritas (Integrity)
2. Rekayasa (Kualitas Dalam)
· Efisiensi (Efficiency)
· Testabilitas (Testability)
· Dokumentasi (Documentation)
· Struktur (Structure)
3. Adaptabilitas (Kualitas ke Depan)
· Fleksibilitas (Flexibility)
· Reusabilitas (Reusability)
· Maintainabilitas (Maintainability)
Karena itu testing yang bagus harus dapat mengukur semua faktor-faktor yang berhubungan, yang tentunya tiap faktor komponen akan mempunyai tingkat kepentingan berbeda-beda antar satu aplikasi dengan aplikasi yang lain.
Contohnya pada sistem bisnis yang umum komponen faktor kegunaan dan maintainabilitas merupakan faktor-faktor kunci, dimana untuk program yang bersifat teknik mungkin tidak menjadi faktor kunci.Jadi agar testing dapat sepenuhnya efektif, maka harus dijalankan untuk melakukan pengukuran tiap faktor yang berhubungan dan juga menjadikan kualitas menjadi nyata dan terlihat.
Kualitas Software Penting bagi Organisasi Software Kualitas software
Dipengaruioleh biaya dan jadual disebabkan kemampuan rekayasa software dari pihak pengembang yang tak mencukupi, dan kemampuan pelanggan yang sangat kurang (bahkan tak mampu) untuk memberikan spesifikasi kebutuhan dari sistem. Organisasi software harus melakukan proses analisa, evaluasi dan pengembangan yang berkesinambungan agar software yang semakin efektif, efisien, terukur,terkendali dan dapat diulang secara konsisten dalam menghasilkan suatu produk (software) yang berkualitas, tepat waktu dan pendanaan.
Tujuan Testing
Secara umum objektivitas dari testing adalah untuk melakukan verifikasi, validasi, dan deteksi error untuk menemukan masalah dan tujuan dari penemuan ini adalah untuk membenarkannya.
Objektivitas Testin / Tujuan Testing
· Meningkatkan kepercayaan bahwa sistem dapat digunakan dengan resiko yang dapat di terima
· menyediakan informasi yang dapat mencegah terulangnya error yang pernah terjadi
· menyediakan informasi yang dapat membantu untuk deteksi error secara dini
· mencari error dan kelemahan atau keterbatasan system
· mencari sejauh apa kemampuan dari system
· menyediakan informasi untuk kualitas dari produk software
Misi Team Testing
Jika melakukan sebuah testing, tidak dapat secara maksimal jika kita melakukannya dengan sendiri saja. Dibutuhkan sebuah team yang baik,mampu saling padu bekerja sama untuk melakukan testing dengan baik. Terdapat beberapa misi penting selain mencari kesalahan atau error dari sebuah aplikasi yaitu:
· Misi dari tim testing tidak hanya melakukan testing, tapi juga untuk membantu meminimalkan resiko kegagalan proyek
· Tester tidak melakukan pembenahan atau pembetulan kode
· Tester adalah individu yang memberikan hasil pengukuran dari kualitas produk
· Tester sering digabungkan dengan User (RAD)
· Skill komunikasi juga diperlukan untuk seorang Tester untuk dapat menginformasikan kepada Debugger dengan baik,biasanya alat komunikasinya menggunakan template.
v Schema antara Tester dan Debugger
Gambar 1.2 Schema antara Tester dan Debugger
v *Tester adalah individu yang memberikan hasil pengukuran dari kualitas produk. Seorang pengembang bertugas membangun tetapi tester justru lebih berusaha untuk menghancurkan.
Psikologi Testing
Tester mempunyai Sifat Destruktif , sedangkan pengembang atau Developer bersifatKonstruktif.
Prinsip - Prinsip Testing
1. Tidak dapat terpenuhi (komplit) ==> Karena banyaknya kombinasi test yang amat besar dan luas.
- Domain masukan
- Kompleksitas
- Jalur program
2. Testing merupakan pekerjaan yang memiliki tingkat kesulitan tinggi dan dibutuhkan kreatifitas
- Agar mampu melakukan testing dengan baik dibutuhkan pengenalan dan pemahaman terhadap sistem itu sendiri.
- Sistem yang ditesting tidak mudah dan sederhana, jadi dibutuhkan kreatifitas, pengetahuan bisnis, pengetahuan testing, dan metodologi testing agar mampu melakukan testing dengan baik.
3. Mencegah terjadinya kesalahan
- Dalam proses testing, tidak hanya dilakukan proses pengembangan semata.
- Hasil - hasil testing yang telah dihasilkan diasosiasikan pada tiap fase pengembangannya.
4. Penanganan resiko
- Sumber daya yang dibutuhkan untuk melakukan proses testing dapat diukur dari skala prioritas, kompleksitas, dan kesulitan testing yang ada.
- Biaya keterlambatan pengiriman produk.
- Kemungkinan munculnya atau terdapatnya cacat.
- Biaya yang disebabkan oleh cacat
5. Perencanaan yang baik
- Untuk menjaga alur dari proses testing agar nantinya tidak menyimpang dari apa tujuan awal yang telah ditetapkan.
- Untuk menjaga kesesuaian penggunaan sumber daya yang ada dan jadwal proyek yang telah ditetapkan.
- Untuk membuat test case yang baik, sehingga dengan menetapkan apa hasil yang akan diharapkan tester yang nantinya akan melakukan test tersebut.
6. Membutuhkan Independensi
- Jika membutuhkan pengukuran yang berbeda atau tidak biasa dibutuhkan penunjang yang berbeda pula yaitu tester yang tidak biasa.
- Tester independen juga dikatakan sebagai pengamat yang tidak biasa dan mengukur kualitas software secara akurat.
- Testing harus dilakukan oleh pihak ke - 3.