PROSES TESTING                Testing dan Implementasi Sistem                    Dosen : Mei P. Kurniawan                 ...
PROSES TESTINGA. Kesalahan Pengujian   1. Fault (Kekeliruan)       Fault merupakan kesalahan pada sebuah baris kode atau l...
bug yang dilaporkan tidak memenuhi kebutuhan sistem, tetapi secara       signifikan mempengaruhi kualitas sistem dengan ca...
C. Proses Pengujian Akhir       Proses pengujian akhir sulit untuk ditentukan karena kebanyakan aplikasiperankat lunak mod...
2. Jumlah siklus pengujia       3. Jumlah bug prioritas tinggi   D. Automatic Testing   Otomatisasi testing adalah alat ba...
6. Script testing dapat menjadi aset yang dapat digunakan kembali untuk testing yangsama pada proyek testing yang lain.7. ...
5. Test Data Generatorsmerupakan sistem analisis otomatis yang membantu pengguna aplikasi dalammemilih data uji yang menye...
2. Environment Simulator,merupakan tool untuk sistem berbasis komputer khusus, yang mampu untuk mengujimodel lingkungan ek...
Kualitas Software didefinisikan sebagai kesesuaian yang diharapkan pada      semua perangkat lunak yang dibangun berkaitan...
Kemudahan pemindahan software ke platform lain. Portability pada software, sangattergantung kepada teknologi yang digunaka...
pengujian (testing), perlu dilakukan stress testing, suatu proses pengujian yangmenekankan pada kemampuan software pada sa...
10. InteroperabilityKemampuan untuk membedakan system dan mengorganisasikan unuk bekerjasama(inter operate). Dan interface...
Di lain pihak, dari sudut pandang proses, standard ISO 9001 dapat digunakan untukmengukur kualitas perangkat lunak. Dan di...
Kualitas software diukur dengan metode penjumlahan dari keseluruhan kriteria dalamsuatu faktor sesuai dengan bobot (weight...
Tabel 2: Contoh Pengukuran Usabilitas Dua Perangkat LunakTabel 3: Hasil Pengukuran Usabilitas Dua Perangkat LunakDari peng...
DAFTAR PUSTAKAS Presman, Roger.2002.Rekayasa Perangkat Lunak Pendekatan Praktisi.PenerbitAndi:YogyakartaSimarmata, Janner....
Upcoming SlideShare
Loading in …5
×

Software testing

1,601 views

Published on

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

Software testing

  1. 1. PROSES TESTING Testing dan Implementasi Sistem Dosen : Mei P. Kurniawan Kelompok 3 Yulia Muharomah 09.12.4156 Zeptifa Wardani 09.12.4132 Ferry Dwi Laksono 09.12.4162 Dwi Sundari 09.12.4125 Tias Arini 09.12.4131Sekolah Tinggi Ilmu Manajemen dan Komputer AMIKOM Yogyakarta 2012
  2. 2. PROSES TESTINGA. Kesalahan Pengujian 1. Fault (Kekeliruan) Fault merupakan kesalahan pada sebuah baris kode atau lebih. Kesalahan bisa saja tidak tampak pada program dengan indikasi perangkat lunak bekerja sebagaimaa harapan pengembang. Bahkan mungkin untuk waktu yang lama, sebuah baris program bisa saja tidak tersentuh oleh eksekusi sehingga tidak tampak sebagai kekeliruan. 2. Eror (Kesalahan) Hal yang akan muncul pada saat terjadi kekeliruan adalah kesalahan. Bila kekeliruan dalam baris dieksekusi, perangkat lunak akan melakukan operasi yang tidak sesuai dengan keinginan pengembang sehingga menghasilkan respons yang salah. 3. Failure (Kegagalan) Dalam beberapa kasus, kekeliruan akan muncul sebagai kegagalan. Kegagalan perangkat lunak merupakan sederetan ketidakmampuan perangkat lunak untuk menjalankan fungsinya. Misalnya kesalahan keluaran perangkat lunak, proses eksekusi yang tidak normal, waktu eksekusi dan kapasitas penyimpanan yang membengkak, dan lain-lain. Kemudian failure masih dibagi lagi, yaitu : - Requirement faillure bug yang dilaporkan berhubungan dengan kegagalan sistem untuk memenuhi kebutuhan. - Non requirement failure
  3. 3. bug yang dilaporkan tidak memenuhi kebutuhan sistem, tetapi secara signifikan mempengaruhi kualitas sistem dengan cara yang tidak dapat diterima. - Waiver failure bug yang dilaporkan mendeskripsikan kegagalan, tetapi developer menuntut dan menganggap hal tersebut tidak signifikan mempengaruhi kualitas dan user experience. - External failure bug yang dilaporkan menunjukkan kegagalan karena faktor eksternal atau di luar kontrol dari sistem yang diuji. - Test failure developer meyakini bahwa pengujian yang dikembalikan adalah invalid error. B. Proses Pengujian Awal Pengujian kadang-kadang disalah pahami sebagai kegiatan after the fact,dilakukan setelah pemrograman sebuah produk dilakukan. Namun, pengujian harusdilakukan setiap tahapan pengembangan produk. Penetapan pengujian data harusdiperoleh, kebenaran dan konsistesinya harus dipantau selama proses pengembangan. Jika kita membagi siklus hidup pengembangan perangkat lunak menjadi“Analisis Kebutuhan”,”Desain”,”Pemrograman/Konstruksi” dan “Operasi danPemeliharaan” maka pengujian harus dilakukan di setiap tahapan pengembangantersebut jika pengujian menemukan kesalahan dan pernyataan masalah atau desainbisa mendatangkan biaya terlalu tinggi. Tidak hanya kesalahan utama yang harusdiperbaiki, tetapi seluruh struktur dibangun diatasnya juga harus diubah. Oleh karenaitu, pengujian tidak boleh terisolasi sebagai kegiatan inspeksi, tetapi harus melibatkanseluruh SDLC untuk menghasilkan produk yang berkualitas.
  4. 4. C. Proses Pengujian Akhir Proses pengujian akhir sulit untuk ditentukan karena kebanyakan aplikasiperankat lunak modern sangat kompleks dan berjalan sebagai lingkunganinterdependen dan pengujian lengkap pun tidak pernah bisa dilakukan. Kapanmenghentikan pengujian? Menjadi salah satu pertanyaan yang paling sulit bagiperekayasa penguji. Faktor uum dalam memutuskan untuk berhenti adalah : 1. Tenggat waktu (deadline) yaitu tenggat rilis dan pengujian 2. Kasus-kasus pengujian diselesaikan dengan presentase tertentu yang dilewatkan 3. Biaya pengujian habis 4. Pemenuhan kode/fungsionalitas/persyaratan menjangkau titik yang telah ditentukan 5. Tingkat pada bug yang dapat ditemukan terlalu kecil 6. Beta atau pengujian alfa telah berakhir periodenya 7. Risiko dalam proyek dapat diterima dibawah batas. Pada kenyataannya, keputusan menghentikan pengujian berdasarkan padatingkat risiko yang dapat diterima oleh manajemen. Sebagai catatan, pengujian adalahproses yang tidak pernah berakhir dan tidak pernah mengaggap bahwa pengujian100% telah selesai, kita hanya dapat meminimalkan risiko pegiriman produk kepadaklien dengan X pengujian yang sudah diselesaikan. Risiko dapat diukur oleh aalisisrisiko, tetapi durasi kecil/anggaran rendah/ randahnya sumber daya proyek, dapatdisimpulkan dengan : 1. Mengukur pemenuhan pengujian
  5. 5. 2. Jumlah siklus pengujia 3. Jumlah bug prioritas tinggi D. Automatic Testing Otomatisasi testing adalah alat bantu yang digunakan untuk mempermudah prosesdan dokumentasi tes, mengefisienkan eksekusi dari tes, dan mempermudahpengukuran pada tes. Sehingga diharapkan dapat memberikan peningkatan yangcukup besar dalam manajemen proses, meminimalkan keterlibatan manusia, danreplikasi pekerjaan. Otomatisasi testing adalah area yang paling tinggi tingkatperkembangannya dalam industri testing. Alasan untuk melakukan otomatisasi proses software adalah untuk meningkatkankualitas dan produktifitas kerja. Organisasi membutuhkan suatu strategi otomatisasiuntuk menuntun dalam menggunakan metode-metode dan teknik-teknik baru. Hal inimembutuhkan pengetahuan tentang apa yang dibutuhkan, pengetahuan terhadap apayang fisibel, dan pengembangan suatu rencana yang telah ditetapkan. Alasan dibutuhkannya otomatisasi testing Mengapa otomatisasi testingdibutuhkan? Dari uraian singkat di atas, terdapat beberapa alasan pentingnyamelakukan otomatisasi testing, adalah sebagai berikut:1. Testing selalu diharapkan pada masalah jadwal yang ketat2. Testing sering diulang- ulang banyak sekali3. Testing berkemungkinan untuk sijalankan 24 jam sehari, atau tidak pada jam kerja.4. Testing dapat dilakukan dengan lebih cepat dan akurat, dimana ketidaksonsistenanmanusai dapat diminimalkan.5. Dokumentasi testing dapat dilakukan secara konsisten, sehingga dapat diauditsecara penuh dan berkala.
  6. 6. 6. Script testing dapat menjadi aset yang dapat digunakan kembali untuk testing yangsama pada proyek testing yang lain.7. Mempercepat dalam peninjauan kembali terhadap testing itu sendiri8. Dapat meningkatkan proses Dikarenakan ujicoba software menghabiskan sekitar 40% dari total usaha yangdiperlukan untuk sebuah proyek pengembangan software, maka tools tools yangdapat mengurangi waktu uji sangat dibutuhkan. Dengan melihat manfaatpotensialnya, maka dibentuklah generasi pertama dari automated test tools. Millermendeskripsikannya menjadi beberapa kategori, diantaranya : 1. Static Analyzer, program sistem analisis ini mendukung untuk pembuktian dari pernyataan tanpabukti statis, perintah-perintah yang lemah dalam struktur program dan format. 2. Code Auditors, sebuah filter dengan kegunaan khusus yang digunakan untuk memeriksa kualitassoftware untuk memastikan bahwa software tersebut telah memenuhi standarspengkodean minimum 3. Assertion Processors,sistem preprocessor/postprocessor ini digunakan untuk memberitahukan programmerdengan menyediakan klaim, yang disebut assertion, yaitu mengenai suatu perilakuprogram yang benar-benar ditemukan saat pelaksanaan program riil. 4. Test File Generators, merupakan pembangun processor, dan dipenuhi dengan definisi awal nilai, filemasukan yang serupa untuk program yang sedang diujikan.
  7. 7. 5. Test Data Generatorsmerupakan sistem analisis otomatis yang membantu pengguna aplikasi dalammemilih data uji yang menyebabkan program berperilaku khusus. 6. Test Verifiers,tool ini mengukur cakupan uji internal, terkadang berhubungan dengan uji strukturkontrol dari objek uji, dan melaporkan cakupan nilai untuk para ahli jaminankualitas 7. Test Harnesses.Tools ini mendukung pemrosesan uji coba dengan (1) meng-instal program kandidatdalam lingkungan uji, (2) berikan input data, dan (3) simulasikan denganmenggunakan stubs perilaku dari modul-modul subordinat. 8. Output Comparators, tool ini membuatnya sangat memungkinkan untuk membantingkan sekumpulanoutput dari suatu program dengan sekumpulan output dari proses sebelumnya(yangtelah diarsipkan) untuk menentukan perbedaan diantara keduanya.Dunn menambahkan tool otomatis diatas, dantaranya : 1. Symbolic Execution System,tool ini penampilkan ujicoba program dengan menggunakan input aljabar, dari padanilai data numerik,. Software yang diuji akan menguji satu class data uji dari padasatu kasus uji spesifik. Output yang dihasilkan dalam bentuk aljabar dan dapatdibandingkan dengan output yang diharapkan yang telah ditulis dalam bentuk aljabar.
  8. 8. 2. Environment Simulator,merupakan tool untuk sistem berbasis komputer khusus, yang mampu untuk mengujimodel lingkungan eksternal dari suatu software realtme, dan mensimulasikan kondisioperasi sesungguhnya secara dinamis. 3. Data Flow Analyzer,tool ini melacak aliran data yang melewati sistem, dan berusaha untukmenemukandata reference yang belum didefinisikan , peng-indeks-an yang salah, dankesalahan data terkait lainnya.Manual Testing VS Automated Testing Test Step Manual Autimated Precent Testing Testing Improve Test plan development 32 40 -25% Test case development 262 117 55% Test execution 466 23 95% Test result analyses 117 58 50% Defect tracking 117 23 80% Report creation 96 16 83% 1090 277 75% Total hours E. Kualitas Software
  9. 9. Kualitas Software didefinisikan sebagai kesesuaian yang diharapkan pada semua perangkat lunak yang dibangun berkaitan dengan fungsi perangkat lunak yang diutamakan dan untuk kerja perangkat lunak, standar pembangunan perangkat lunak yang terdokumentasi dan karakteristik yang ditunjukkan oleh perangkat lunak. Definisi ini menekankan pada tiga hal, yaitu : 1. Kebutuhan perangkat lunak adalah dasar ukuran kualitas perangkat lunak, jika perangkat lunak tidak sesuai dengan kebutuhan yang ditentukan, kualitasnya pun berkurang. 2. Jika menggunakan sebuah standar untuk pembangunan perangkat lunak, maka perangkat lunak dianggap kurang berkualitas jika tidak memenuhi standar tersebut. 3. Sering kali ada kualitas yang secara langsung diutarakan (tersurat) seperti kemudahan penggunaan dan pemeliharaan yang baik. Kualitas perangkat lunak dipertanyakan jika tidak memenuhi kebutuhan ini. Sedangkan definisi kualitas menurut The Internasional Standarts Organization (ISO) adalah totalitas fitur-fitur dan karakteristik-karakteristik dari produk atau layanan yang berpengaruh pada kemampuan untuk memenuhi kebutuhan tertentu atau kebutuhan yang tersirat. Faktor kualitas operasi produk 1. CorrecnesMemperluas sebuah program yang memenuhi spesifikasi dan tujuan pengguna. 2. Portability.
  10. 10. Kemudahan pemindahan software ke platform lain. Portability pada software, sangattergantung kepada teknologi yang digunakan. Pemilihan teknologi didasari olehpertimbangan yang matang berdasarkan hasil analisis terhadap calon pengguna. Jikacalon pengguna menggunakan platform yang heterogen, maka portability adalah halyang sangat penting. Namun portability akan berkurang prioritasnya ketika calonpengguna menggunakan spesifikasi teknologi yang seragam. 3. Reliability.Software dapat diandalkan untuk melakukan apa yang seharusnya dilakukan.Reliability adalah atribut yang tidak dapat ditawar. Hal ini dapat dicapai denganmelakukan proses analisis kebutuhan calon pengguna dengan baik. Denganmenganalisa masalah calon pengguna, lalu menyimpulkan solusi dari maka engineerdapat lebih menjamin reliability dari suatu software. Selain dari sisi analisiskebutuhan, pengujian sistem dengan mekanisme yang baik juga dapat meningkatkanreliability software. Pengujian sistem adalah fase untuk memastikan bahwa sistemsudah dapat berjalan sesuai dengan yang diharapkan oleh pengembang perangkatlunak. 4. Efficiency. Software dapat melakukan pekerjaan dengan waktu kerja dan penggunaanresource yang ekonomis. Efficiency adalah atribut yang seringkali tidak diperhatikan.Umumnya hal tersebut terjadi, karena tim pengembang fokus kepada spesifikasifungsional sistem. Ketika spesifikasi fungsional sudah terpenuhi, maka modulsoftware dianggap telah mencapai kualitas yang baik. Efficiency seringkali tidakterasa dibutuhkan pada aplikasi sistem informasi yang tidak melakukan proses yangrumit. Namun untuk proses yang rumit, efficiency menjadi hal yang sangat pentinguntuk diperhatikan. Efficiency dapat dicapai dengan disain yang baik dan codereview terhadap hasil implementasi disain yang dilakukan. Selain itu, pada saat
  11. 11. pengujian (testing), perlu dilakukan stress testing, suatu proses pengujian yangmenekankan pada kemampuan software pada saat melakukan proses pada keadaanyang tersulit (contohnya adalah dikarenakan oleh data yang sangat banyak). 5. Maintainabily Software mudah dipelihara (maintain) dan diubah. 6. Testability.Software mudah dievaluasi dengan melakukan pengujian (testing). Testability akanberpengaruh terhadap reliability. Engineer dapat menyimpulkan bahwa suatusoftware sudah cukup reliable untuk direlease adalah berdasarkan hasil pengujian.Karena itu, testability adalah atribut yang sangat penting dalam pengembagansoftware. 7. IntegrityMemperluas akses untuk perangkat lunak atau data tanpa diotorisasi dan tidakdikontrol 8. FleksibelitySoftware mampu untuk beradaptasi dan bekerja dengan efektif sesuai dengan apayang dibutuhkan user. 9. UseabilitySoftware mudah dipahami sehingga memudahkan proses pemeliharaan. Usaha yangdibutuhkan untuk mempelajari, mengoperasikan, mempersiapkan masukan, danmenerjemahkan keluaran
  12. 12. 10. InteroperabilityKemampuan untuk membedakan system dan mengorganisasikan unuk bekerjasama(inter operate). Dan interfacenya sangat compatible untuk bekerja dengan systemlainnya diwaktu ini ataupun dikemudianhari, tanpa implementasi. 11. ReuseabilitySegmen dari sourcecode dapat digunakan kembali untuk menambahkan fungsi baru. Pengukuran Perangkat LunakPertanyaan pertama yang muncul ketika membahas pengukuran kualitas perangkatlunak, adalah apa yang sebenarnya mau kita ukur.Kualitas perangkat lunak dapat dilihat dari sudut pandang proses pengembanganperangkat lunak (process) dan hasil produk yang dihasilkan (product).Dan penilaian ini tentu berorientasi akhir ke bagaimana suatu perangkat lunak dapatdikembangkan sesuai dengan yang diharapkan oleh pengguna. Hal ini berangkat daripengertian kualitas (quality) menurut IEEE Standard Glossary of SoftwareEngineering Technology [3] yang dikatakan sebagai: The degree to which a system, component, or process meets customer or user needs or expectation.Dari sudut pandang produk, pengukuran kualitas perangkat lunak dapat menggunakanstandard dari ISO 9126 atau best practice yang dikembangkan para praktisi danpengembang perangkat lunak.Taksonomi McCall adalah best practice yang cukup terkenal dan diterima banyakpihak, ditulis oleh J.A. McCall dalam technical report yang dipublikasikan tahun1977 [1].
  13. 13. Di lain pihak, dari sudut pandang proses, standard ISO 9001 dapat digunakan untukmengukur kualitas perangkat lunak. Dan diskusi tentang ini berkembang denganmunculnya tema kajian tentang CMM (The Capability Maturity Model) yangdikembangkan di Software Engineering Institute, Carnegie Mellon University sertabeberapa kajian lain seperti SPICE (Software Process Improvement and CapabilitydEtermination) dan BOOTSTRAP. CMM, SPICE dan BOOTSTRAP mengukurkualitas perangkat lunak dari seberapa matang proses pengembangannya.Tulisan ini akan mencoba fokus ke bagaimana mengukur perangkat lunak dilihat darisudut pandang produk.Parameter dan metode pengukuran When you can measure what you are speaking about, and express it in numbers, you know something about it. But when you can not measure it, when you can not express it in numbers, your knowledge is of a meagre and unsatisfactory kind. (Lord Kelvin)Pendekatan engineering menginginkan bahwa kualitas perangkat lunak ini dapatdiukur secara kuantitatif, dalam bentuk angka-angka yang mudah dipahami olehmanusia. Untuk itu perlu ditentukan parameter atau atribut pengukuran. Menuruttaksonomi McCall, atribut tersusun secara hirarkis, dimana level atas (high-levelattribute) disebut faktor (factor), dan level bawah (low-level attribute) disebut dengankriteria (criteria). Faktor menunjukkan atribut kualitas produk dilihat dari sudutpandang pengguna. Sedangkan kriteria adalah parameter kualitas produk dilihat darisudut pandang perangkat lunaknya sendiri. Faktor dan kriteria ini memiliki hubungansebab akibat (cause-effect) . Tabel 1 menunjukkan daftar lengkap faktor dan kriteriadalam kualitas perangkat lunak menurut McCall.Tabel 1: Faktor dan Kriteria dalam Kualitas Perangkat Lunak
  14. 14. Kualitas software diukur dengan metode penjumlahan dari keseluruhan kriteria dalamsuatu faktor sesuai dengan bobot (weight) yang telah ditetapkan. Rumus pengukuranyang digunakan adalah: Fa = w1c1 + w2c2 + … + wncnDimana: Fa adalah nilai total dari faktor a wi adalah bobot untuk kriteria i ci adalah nilai untuk kriteria iKemudian tahapan yang harus kita tempuh dalam pengukuran adalah sebagai berikut: Tahap 1: Tentukan kriteria yang digunakan untuk mengukur suatu faktor Tahap 2: Tentukan bobot (w) dari setiap kriteria (biasanya 0 <= w <= 1) Tahap 3: Tentukan skala dari nilai kriteria (misalnya, 0 <= nilai kriteria <= 10) Tahap 4: Berikan nilai pada tiap kriteria Tahap 5: Hitung nilai total dengan rumus Fa = w1c1 + w2c2 + … + wncnCONTOH PENGUKURAN PERANGKAT LUNAKUntuk mempermudah pemahaman, akan diberikan sebuah contoh pengukurankualitas perangkat lunak dari faktor usabilitas (usability). Yang akan diukur adalahdua buah perangkat lunak yang memiliki fungsi untuk mengkontrol peralatanelektronik (electronic device). Perangkat lunak yang pertama bernamaTukangKontrol, sedangkan kedua bernama Caktrol. Contoh dan hasil pengukurandapat dilihat pada Table 2 dan 3.
  15. 15. Tabel 2: Contoh Pengukuran Usabilitas Dua Perangkat LunakTabel 3: Hasil Pengukuran Usabilitas Dua Perangkat LunakDari penghitungan yang ada di Tabel 3, dapat kita simpulkan bahwa dari faktorusabilitas, kualitas dari perangkat lunak bernama TukangKontrol lebih baik daripadaCaktrol. Nilai total TukangKontrol untuk faktor usabilitas adalah 16.8, sedangkanCaktrol adalah 10.2 (dari maksimum total nilai 20).
  16. 16. DAFTAR PUSTAKAS Presman, Roger.2002.Rekayasa Perangkat Lunak Pendekatan Praktisi.PenerbitAndi:YogyakartaSimarmata, Janner.2010.Rekayasa Perangkat Lunak.Penerbit Andi:Yogyakarta

×