SOFTWARE TESTING
Software testing adalah aktivitas-aktivitas yang bertujuan untuk mengevaluasi atribut-atribut atau kemampuan sebuah program atau sistem dan penentuan apakah sesuai dengan hasil yang diharapkan. Testing adalah proses pemeriksaan program dengan tujuan tertentu dalam menemukan kesalahan sebelum diserahkan ke pengguna.
Verification: Apakah kita membangun produk dengan benar, Software seharusnya sesuai dengan spesifikasinya. Gunakan proses software yang bagus. Validation: “Apakah kita membangun produk yang benar, Software seharusnya melakukan apa yang pengguna benar-benar butuhkan.
Tahapan Testing
Terdapat cukup banyak pendekatan yang dilakukan untuk melakukan testing. Salah satu definisi testing adalah “sebuah proses yang melakukan pertanyaan terhadap sebuah produk untuk dinilai”, di mana “pertanyaan” merupakan segala sesuatu yang diberikan kepada produk sebagai pengujian.
Beberapa tahapan testing yang umum dilalui oleh aplikasi adalah sebagai berikut:
1.Unit/ComponentTesting.
Terbagi atas testing terhadap unit dan component. Unit testing merupakan proses testing, di mana Anda melakukan testing pada bagian basic dari kode program. Contohnya adalah memeriksa kode program pada event, procedure, dan function. Unit Testing meyakinkan bahwa masing-masing unit tersebut berjalan sebagaimana mestinya.Pada Unit Testing, Anda memeriksa bagian kode program secara terpisah dari bagian yang lain. Anda dapat langsung melakukan Unit Testing setiap kali sebuah kode unit (event, procedure, function) selesai dibuat. Anda dapat memeriksa kode unit dengan menjalankannya baris per baris untuk memastikan bahwa proses yang dilakukan berjalan sebagaimana yangAndainginkan.
2.IntegrationTesting.
Setelah Anda melakukan Unit/Component Testing, langkah berikutnya adalah memeriksa bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individual. Sebagai contoh, Anda memiliki sebuah proses yang dikerjakan oleh dua function, di mana satu function menggunakan hasil output dari function yang lainnya. Kedua function ini telah berjalan dengan baik secara individu pada Unit Testing. Pada tahap Integration Testing, Anda memeriksa hasil dari interaksi kedua function tersebut, apakah bekerja sesuai dengan hasil yang diharapkan. Anda juga harus memastikan bahwa seluruh kondisi yang mungkin terjadi dari hasil interaksi antarunit tersebut menghasilkanoutputyangdiharapkan.
3.SystemTesting.
Mencakup testing aplikasi yang telah selesai didevelop. Karena itu, aplikasi harus terlihat dan berfungsi sebagaimana mestinya terhadap end-user atau pengguna akhir. Untuk itu, testing dilakukan dengan menggunakan data yang menggambarkan data yang digunakan oleh pengguna sesungguhnya terhadap aplikasi. Jika aplikasi Anda di-develop untuk lingkungan yang besar,
Anda dapat melakukan testing pada dua komputer yang berbeda. Komputer yang Anda gunakan sebagai komputer testing harus terlebih dahulu dikonfigurasi hanya dengan:
a. Operating system yang dibutuhkan.
b. Driver yang diperlukan oleh aplikasi.
c. Aplikasi yang dites.
Dengan menggunakan konfi gurasi yang paling minimal dan sederhana, maka dapat membantu Anda untuk memastikan bahwa permasalahan yang timbul selama testing berlangsung adalah merupakan kesalahan aplikasi, dan bukan kesalahan yang berasal dari aplikasi atau software lain.
4.AcceptanceTesting.
Seperti Integration Testing, Acceptance Testing juga meliputi testing keseluruhan aplikasi. Perbedaannya terletak pada siapa yang melakukan testing. Pada tahap ini, end-user yang terpilih melakukan testing terhadap fungsi-fungsi aplikasi dan melaporkan permasalahan yang ditemukan. Testing yang dilakukan merupakan simulasi penggunaan nyata dari aplikasi pada lingkungan yang sebenarnya. Proses ini merupakan salah satu tahap final sebelum pengguna menyetujui dan menerima penerapan sistem aplikasi yang baru. Karena itu pada tahap ini sudah tidak difokuskan untuk mengangkat permasalahan kecil seperti kesalahan pengetikan, ataupun kosmetik aplikasi. Hal-hal minor seperti di atas sudah seharusnya ditangani selama Unit/Component Testing dan Integration Testing.
5.RegressionTesting.
Merupakan bagian penting dari masing-masing tahap proses testing. Regression Testing mencakup pengujian ulang terhadap unit, component, proses, atau keseluruhan aplikasi setelah perbaikan suatu kesalahan dilakukan.Regression Testing memastikan permasalahan yang terjadi telah ditanggulangi, dan tidak terdapat permasalahan baru yang timbul sebagai efek perbaikan tersebut. Selain itu, tahap ini tidak hanya berguna untuk melakukan pengujian aplikasi, tetapi dapat juga digunakan untuk melakukan pemantauan kualitas dari output yang dihasilkan. Sebagai contoh, Regression Testing memantau ukuran file, waktu yang dibutuhkan untuk melakukan suatu tes, waktu yangdibutuhkanuntukmelakukankompilasi,danlainsebagainya.
White-Box Testing
Black_Box Testing
Strategi OO Testing
Unit Testing
Software Quality Assurance (Jaminan Kualitas Perangkat Lunak)
Software Quality Assurance (SQA) diaplikasikan secara menyeluruh pada proses pengembangan
software. SQA meliputi : (1) analisis, perancangan, pengkodean, dan metode serta peralatan ujicoba, (2)
Tinjauan ulang teknikal secara formal yang diaplikasikan pada setiap tahapan pengembangan software, (3)
strategi ujucoba dengan banyak tahapan (multitiered), (4) pengawasan terhadap dokumentasi software dan
perubahan yang dialaminya, (5) suatu prosedur untuk menjamin pemenuhan standar pengembangan software
(jika ada), (6) mekanisme pengukuran dan laporan .
Setiap pengembang software pasti setuju jika dikatakan bahwa kualitas software merupakan salah satu
tujuan yang penting. Banyak definisi mengenai kualitas software, tetapi disini kualitas software didefinisikan
sebagai : penyesuaian fungsional yang ditetapkan secara eksplisit dan kebutuhan performa, standar
pengembangan yang terdokumentasi secara eksplisit, dan karakteristik implisit yang diharapkan dari seluruh software yang dikembangkan secara professional.
Pengujian Life Cycle
– Merupakan pengujian performansi yang dilakukan secara paralel dengan pengembangan sistem.
– Pengujian life cycle termasuk kategori full testing
– Bertujuan untuk menghilangkan defect sedini mungkin
Jenis Pengujian
• Pengujian Pra-Implementasi
– pengujian sebelum aplikasi dioperasikan
– sistem berfungsi sesuai spesifikasi yang ditetapkan
– Menghilangkan defect
– Menghilangkan defect
• Pengujian Pasca-Implementasi
– pengujian setelah aplikasi dioperasikan (bagian
dari tahap Maintenance)
Defect pada Aplikasi
– Salah menginterpretasikan user requirement
– User salah menspesifikasikan requirement
– Kesalahan pencatatan requirement
– Rancangan tidak sesuai requirement
– Program tidak sesuai rancangan
– Program tidak sesuai rancangan
– Program tidak sesuai spesifikasi
– Error saat pemasukan data
– Error saat pengujian
– Salah memperbaiki error
– Perbaikan menyebabkan defect yang lain
Definisi diatas menjelaskan 3 hal penting, yaitu :
1. Kebutuhan software merupakan pondasi/dasar dari kualitas yang akan diukur. Sedikitnya penyesuaian
terhadap kebutuhan, maka semakin tidak berkualitas.
2. Standar yang dispesifikasikan mendefinisikan sekumpulan kriteria pengembangan yang memandu
pengembangan software. Jika kriteria tidak disertakan, maka dapat dipastikan hasil akhir akan
berkualitas rendah.
3. Terdapat kebutuhan implisit (implicit requirements) yang terkadang tidak disebutkan (misalkan,
keinginan untuk kemampuan pemeliharaan yang mudah). Jika software menyesuaikan kepada
kebutuhan eksplisit, tetapi tidak kepada kebutuhan implisit, maka kualitas software akan dipertanyakan.
Faktor-faktor kualitas software(Software quality factors)
Faktor-faktor yang dapat mempengaruhi kualitas software dibagi menjadi 2 kategori :
1. Faktor-faktor yang dapat diukur secara langsung (misalkan : error )
2. Faktor-faktor yang dapat diukur secara tidak langsung (misalkan : usability dan maintainability).
Tipe-tipe system testing
• Security
• resource usage : mengukur penggunaan RAM, ruang disk, dll
• installability : di install pada bermacam-macam keadaan (mengukur waktu install)
• recoverability : mengukur waktu untuk me-recover
• serviceability : mengukur waktu service
• load/stress: untuk data extreme dan traffic
• Regression Testing
• Acceptance Testing by user or a testing team
• Beta Testing
• Release testing
Standar ANSI/IEEE untuk test dokumentasi
• Introduction
• test plan : item dalam test,ruang lingkup, pendekatan, resource, jadwal, personel
• test design: item yang ditest, pendekatan, rencana detail
• test case : kumpulan input dan event
• test procedures : langkah-langkah untuk menyeting dan mengeksekusi test case
Sebuah proses pengujian standar biasanya meliputi dasar pengujian berikut :
(1) mempersiapkan rencana rencana uji.Dalam tes, kita sepenuhnya harus mempertimbangkan waktu pengembangan proyek secara keseluruhan dan pengembangan untuk anak serta beberapa faktor manusia dan kondisi obyektif, menciptakan tes berencana layak.Utama menelusuri isi rencana uji, penjadwalan lingkungan pengujian, uji dan persyaratan yang dibutuhkan untuk menguji pengaturan pelatihan.
(2) penyusunan kerangka kerja berdasarkan garis ujian.Ini uji.Uji jelas mendefinisikan secara rinci sistem dalam tes untuk fitur atau fitur dari masing-masing harus menyelesaikan item tes dasar dan kriteria uji penyelesaian.
(3) Menurut garis besar desain dan pengujian untuk menghasilkan kasus.Bila tes dalam desain kasus uji, uji kasus dapat dipresentasikan di depan pemanfaatan teknik dan desain, sehingga desain dan isi dokumentasi uji diukur barang , data input, proses pengujian, output yang diharapkan dan sebagainya.
(4) untuk melaksanakan implementasi ujian.Tahap dari tes ini terdiri dari serangkaian siklus uji.Dalam setiap siklus tes, penguji dan pengembang akan didasarkan pada pre-test dan mempersiapkan program persiapan tes yang bagus, perangkat lunak tes, atau peralatan untuk menyelesaikan tes.http://www.blogger.com/img/blank.gifhttp://www.blogger.com/img/blank.gif
(5) membuat uji.Test laporan selesai, untuk membentuk laporan uji yang tepat, garis utama tes menetapkan bahwa kesimpulan tes cacat dan kesalahan, juga memberikan beberapa saran, seperti metode modifikasi dapat digunakan, perubahan beban kerjahttp://www.blogger.com/img/blank.gif diproyeksikandan memodifikasi jawab petugas.
Referensi :
http://www.cetus-links.org/oo_testing.htmlhttp://syah69.blogspot.com/2008/10/seluk-beluk-testing-aplikasi.htmlhttp://didiktristianto.dosen.narotama.ac.id/files/2011/09/Pertemuan-12-SoftwareTesting.ppthttp://pasca.uns.ac.id/~saptono/testing/SoftwareTesting3.pdf