Anda di halaman 1dari 24

TESTING &

IMPLEMENTASI
Motto testing
(Myers, 1976)
■ Test case yang bagus adalah yang mempunyai kemungkinan tinggi dalam mendeteksi
defect yang sebelumnya belum ditemukan, bukan yang dapat memperlihatkan bahwa
program telah bekerja dengan benar.
■ Satu dari kebanyakan masalah sulit dalam testing adalah pengetahuan akan kapan untuk
berhenti.
■ Tidak mungkin untuk mengetes program Anda sendiri.
■ Bagian yang dibutuhkan dari tiap test case adalah deskripsi dari keluaran yang
diharapkan.
■ Hindari testing yang tidak produktif atau di awang-awang.
■ Tulis test case untuk kondisi yang valid dan tak valid.
■ Inspeksi hasil dari tiap tes.
■ Semakin meningkatnya jumlah defect yang terdeteksi dari suatu bagian program,
kemungkinan dari keberadaan defect yang tak terdeteksi juga meningkat.
■ Tunjuklah programer terbaik Anda untuk melakukan testing.
■ Pastikan bahwa testabilitas adalah suatu obyektifitas kunci dalam disain software Anda.
■ Disain dari sistem seharusnya seperti tiap modul yang diintegrasikan ke dalam sistem
hanya sekali.
■ Jangan pernah mengubah program untuk membuat testing lebih mudah (kecuali pada
perubahan yang permanen).
■ Testing, seperti tiap aktifitas kebanyakan yang lain, testing juga harus dimulai dengan
obyektifitas.
ISU
TESTING
&
IMPLEMENTASI
Software Tester dan Dokumen
1. SRS (System Requirement Specification)
dokumen yang menyediakan panduan mengenai spesifikasi requirement sistem yang
diinginkan oleh client/user secara lengkap terhadap suatu bagian/keseluruhan aplikasi. Di
dalam SRS ini terdapat bahasan mengenai use case description, level, included form,
extend, primary actor, precondition, scope, dan sebagainya.
2. SAD (Software Architecture Document) 
dokumen yang menggambarkan desain arsitektur (flow process) secara umum dari modul
yang ada dalam sebuah sistem. SAD memuat spesifikasi yang lebih rinci dari dokumen
SRS. Di dalam SAD ini terdapat bahasan mengenai overview software, references,
architectural representation (screen map, CS Management, Flow chart, database model,
sequence diagram, dan class diagram), architectural goals dan constraints, use-case view,
logical view, process view, deployment view serta size and performance.
Akuntabilitas
■ Operability
“Semakin baik Software berkerja, akan membuat software dites dengan lebih efisien.”
■ Observability
“Apa yang Anda lihat, adalah apa yang Anda tes.”
■ Controllability
“Dengan semakin baik kita dapat mengendalikan software, semakin banyak testing dapat diotomatisasi dan
dioptimalisasi.”
■ Decomposability
“Dengan pengendalian batasan testing, kita dapat lebih cepat dalam mengisolasi masalah dan melakukan testing
ulang yang lebih baik.”
■ Simplicity
“Semakin sedikit yang dites, semakin cepat kita melakukannya.”
■ Stability
“Semakin sedikit perubahan, semakin sedikit masalah / gangguan testing.”
■ Understandability
“Semakin banyak informasi yang kita miliki, kita akan dapat melakukan tes lebih baik.”
Kemampuan
Tester
■ Umum :
– Mempunyai kemampuan analisa yang kuat dan terfokus
– Mempunyai kemampuan komunikasi yang baik
– Mempunyai latar belakang QA
■ Pemahaman terhadap metodologi :
– Pengembangan rencana tes
– Pembuatan dan perawatan lingkungan tes
– Standar tes
– Dokumentasi tes (test case dan procedure test)
■ Pengetahuan akan pendekatan testing :
– Integration testing
– Acceptance testing
– Stress / volume testing
– Regression testing
– Functional testing
– End-To-End Testing
– GUI Testing
■ Pengetahuan tentang testing (berhubungan dengan pasar dari organisasi yang bersangkutan) :
– Perbankan / keuangan
– Produk komersial
– Telecom
– Internet
– Y2K
■ Pengetahuan dan pengalaman akan penggunaan alat bantu testing :
– Alat bantu capture atau playback (WinRunner)
– Alat bantu Lod testing (LoadRunner, RoboTest)
■ Kemampuan terhadap lingkungan testing
– Mainframe (MVS, JCL)
– Client-server (WinNT, UNIX)
■ Kemampuan terhadap aplikasi :
– Dokumentasi (office, excel, word, Lorus Notes)
– Database (oracle, access, 3G, 4G, SQL, RDBMS)
– Pemrograman (C++, VB, OO)
Tester
Atribut negatif yang patut dihindari :

■ Sedikit empati terhadap pengembang (developers) . Mudah terpengaruh secara emosional yang
kekanak-kanakan dalam hubungannya dengan pengembang (developers).
■ Kurang berdiplomasi. Menciptakan konflik dengan pengembang (developers) dengan menunjukan
wajah yang tak bersahabat. Seorang tester akan tersenyum bila bertatap muka dengan pengembang
(developers) saat menemukan defect, dan memberikan laporan defect yang disertai perhitungan
statistik terjadinya defect dan bug.
■ Skeptis. meminta informasi dari pengembang (developers) dengan penuh kecurigaan (tidak percaya).

■ Keras kepala. Tidak dapat fleksibel dalam mendiskusikan suatu proposal.


■  Selain itu seorang tester perlu mengetahui hambatan yang akan dihadapi dalam
berkerjasama dengan pengembang (developers), dimana pengembang (developers) pada
umumnya akan cenderung untuk melarikan diri dan bersembunyi darinya, bila mereka
merasa hal-hal sebagai berikut:
■ Percaya bahwa tester akan mengganggu perkerjaan mereka dan manambahkan
kerumitan dengan masalah-masalah yang terjadi akibat keberadaan tester.
■ Takut untuk mendiskusikan hal-hal yang berkaitan dengan pengembangan yang sedang
dilakukan, dimana hal tersebut akan dapat digunakan untuk menjatuhkan mereka.
Atribut positif yang patut dikembangkan :
■ Terencana, sistematis, dan berhati-hati (tidak sembrono)
■ Bermental juara, yaitu penerapan standar kualitas yang tinggi dalam bekerja dalam
suatu proyek.
■ Berpendirian teguh & tidak mudah menyerah
■ Praktikal, yaitu menyadari terhadap apa yang dapat dicapai terhadap batasan waktu dan
anggaran tertentu.
■ Analitikal, yaitu memiliki intiusi dalam mengambil suatu pendekatan untuk menggali
error.
■ Bermoral baik, yaitu berjuang untuk kualitas dan sukses, mengerti dan menyadari akan
biaya-biaya yang terjadi terhadap suatu kulitas yang rendah.
Testing
■ Perencanaan
■ Pembuatan testcase
■ Pelaksanaan testing
– Unit testing
– Sub-system integration testing
– System integration testing
– Acceptance testing
■ Pendokumentasian testing
Activitas Testing
 Unit/Component Testing
Terbagi atas testing terhadapt unit dan component
o Unit testing merupakan proses testing dimana pengujian dilakukan pada bagian basic dari kode
program, contohnya pada pengujian kode program pada event, procedure dan function. Dengan Unit
testing meyakinkan bahwa masing-masing unit bekerja sebagaimana mestinya
o Component testing merupakan, pengujian dilakukan pada bagian kode program secara terpisah dari
bagian yang lain, component testing dapat dilakukan setiap kali sebuah kdoe unit selesai dibuat,
pengujian kode unit pun dijalankan baris per baris untuk memastikan proses berjalan seperti yang
diinginkan

 Integrating Testing
Setelah Unit/Component testing dijalankan, langkah selanjutnya adalah memerika bagaimana unit-unit
tersebut bekerja sebagai suatu kombinasi (bekerja secara bersamaan), bukan lagi sebagai unit individu. Jika
pada tahapat unit testing ada dua function yang berjalan baik secara individu, maka pada tahap Integration
Testing, pengujian akan dilakukan dari hasil interaksi kedua function tersebut, apakah bekerja sesuai hasil
yang di harapkan, pengujian juga harus dilakukan di seluruh kondisi yang mungkin terjadi dari hasil antar
unit tersebut.
 System Testing
Menceakup testing aplikasi yang telah selesai didevelop. Karena itu, aplikasi harus terlihat dan berfungsi
sebagaimana mestinya terhadap end-user atau pengguna akhir. Untuk itu, pengujian dilakukan menggunakan data yang
menggambarkan pengguna sesungguhnya terhadap aplikasi.
 Acceptance Testing
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 desain aplikasi. Hal-hal minor seperti di atas sudah
seharusnya ditangani selama Unit/Component Testing dan Integration Testing.
 Regression 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 yang dibutuhkan untuk melakukan kompilasi,dan lain sebagainya.
Tingkatan Testing
■ Unit testing
Testing penulisan kode-kode program dalam satuan unit terkecil secara individual
■ System testing
Proses testing pada sistem terintegrasi untuk melakukan verifirkasi bahwa sistem telah
sesuai spesifikasi
■ Acceptance testing
Testing formal yang dilakukan untuk menentukan apakah sistem telah memenuhi kriteria
penerimaan dan memberdayakan pelanggan untuk menentukan apakah sistem dapat
diterima atau tidak
TERIMAKASIH

Anda mungkin juga menyukai