Chapter 02 -
Software Testing
Tri sugihartono, Mkom
STMIK Atma Luhur Pangkalpinang
Seberapa baik sistem yang
sudah dibangun ?
• 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.
Lingkup Pengujian
• Demonstrasi dari validitas perangkat lunak pada
setiap tahap dalam siklus hidup pengembangan
sistem
• Penentuan validitas kebutuhan pengguna akhir
sistem dan persyaratan.
• Pemeriksaan perilaku sistem dengan
menjalankan sistem data uji sample.
Masalah-masalah Umum pada
Software Testing
• Kegagalan untuk menentukan tujuan
pengujian
• Pengujian pada tahap yang salah pada
siklus hidup
• Penggunaan teknik pengujian yang tidak
efektif
Tahap Pengujian
• Kesalahan yang ditemukan pada tahap ini membuat biaya
menjadi empat kali, yaitu :
1. Biaya untuk mengembangkan kode yang salah
2. Biaya untuk pengujian untuk mendeteksi kesalahan
3. Menghapus bagian yang salah dan menambahkan yang
tepat
4. Pengujian ulang untuk memastikan bahwa sudah OK
sekarang
Software Development Life-Cycle
(SDLC)
Siklus Hidup Pengembangan Perangkat
Lunak
• Requirements (persyaratan)
• Design (desain)
• Coding/Implementation (pelaksanaan)
• Testing (pengujian)
• Installation (instalasi)
• Maintenance (pemeliharaan)
Pengujian System Development
Life Cycle (SDLC)
• Studi di IBM mengungkapkan bahwa pengujian
sebelum pengkodean adalah 50% efektif;
setelah coding adalah 80% efektif.
• Memperbaiki kesalahan setelah pengkodean
adalah 10 kali lebih mahal seperti sebelumnya,
dan 100 kali lebih mahal untuk memperbaiki
kesalahan produksi.
• Oleh karena itu, lebih ekonomis untuk
menggunakan pengujian SDLC.
Pengujian dalam SDLC
• Hal ini umumnya diketahui bahwa 64% dari
kesalahan terjadi selama tahap analisis dan
desain.
• Requirements (persyaratan):
– bahwa persyaratan yang ditentukan
memenuhi kebutuhan organisasi
• Design and programs (desain dan program) :
– bahwa desain dan menyelesaikan program
telah memenuhi persyaratan yang ditentukan
Pengujian dalam SDLC
(Lanjutan)
• Test and installation (pengujian dan instalasi) :
– Bahwa sistem yang diterapkan memenuhi
spesifikasi
• Maintenance (pemeliharaan) :
– Perubahan pekerjaan
Pada setiap tahap, dilakukan :
• Menganalisis struktur yang diproduksi pada fase
ini untuk testability internal dan kecukupan
• Menghasilkan pengujian set berdasarkan
struktur pada tahap ini
• Selain itu, selama desain dan pemrograman :
– Menentukan bahwa struktur yang konsisten dengan
struktur yang dihasilkan selama tahap sebelumnya
– Menyempurnakan dan merumuskan kembali set
pengujian yang dihasilkan sebelumnya
Verifikasi Kegiatan
• Requirements (persyaratan) :
– Menentukan pendekatan verifikasi
– Menentukan kecukupan persyaratan
– Menghasilkan data uji fungsional
– Menentukan konsistensi desain dengan
persyaratan
Verifikasi Kegiatan
(lanjutan)
• Design (desain) :
– Menentukan kecukupan desain
– Menghasilkan data pengujian struktural dan fungsional
– Menentukan konsistensi dengan desain
• Programming/Coding (pemrograman) :
– Menentukan kecukupan pelaksanaan
– Menghasilkan data pengujian struktural dan fungsional
untuk program
Verifikasi Kegiatan
(lanjutan)
• Test (pengujian) :
– Pengujian sistem aplikasi
• Installation (instalasi) :
– Sistem diuji dalam produksi
• Maintenance (pemeliharaan) :
– Memodifikasi dan pengujian ulang
14
Menguji mutu produk
Meningkatkan mutu produk
Menjamin mutu produk
Testing
Mengapa testing harus dilakaukan?
• Tujuan pengujian PL :
Menilai apakah perangkat lunak yang
dikembangkan telah memenuhi kebutuhan
pemakai
Menilai apakah tahap pengembangan
perangkat lunak telah sesuai dengan
metodologi yang digunakan
Membuat dokumentasi hasil pengujian
yang menginformasikan kesesuaian
perangkat lunak yangdiuji dengan
spesifikasi yang telah ditentukan
Melihat tujuan dari pengujian perangkat lunak, maka
dapat dijabarkan hal-hal yang harus dilakukan ketika
melakukan pengujian, yaitu :
Mengidentifikasikan dan menemukan beberapa
kesalahan yang mungkin ada dalam Perangkat Lunak
yang diuji
Setelah Perangkat Lunak dibetulkan, diidentifikasi
ulang kesalahan dan dites ulang untuk menjamin
kualitas level penerimaan
Membentuk tes yang efisien dan efektif dengan
anggaran dan jadwal yang terbatas
Mengumpulkan daftar kesalahan untuk digunakan
dalam daftar pencegahan kesalahan (tindakan
corrective dan preventive)
Is it bugs?
1. Software tidak melakukan sesuatu seperti yg
dinyatakan dalam spesifikasi produk
2. Software melakukan sesuatu yang seharusnya
tidak perlu dilakukan
3. Software melakukan sesuatu yang tidak
disebutkan dalam spesifikasi produk
4. Software tidak melakukan sesuatu seperti
spesifikasi, tetapi seharusnya software
melakukan itu
5. Software sulit dipahami, sulit digunakan dan
lambat
Ikhtisar
• Mengapa software memiliki bugs
– Miskomunikasi atau tidak ada komunikasi
– Kompleksitas software
– Kesalahan pemrograman
– Mengubah persyaratan
– Dokumentasi kode yang buruk
– Alat pengembangan software
Beberapa hal yang harus diperhatikan dalam
melakukan pengujian adalah sebagai berikut :
1. Kualitas dari proses pengetesan menentukan
kesuksesan pengujian
2. Mencegah perambatan cacat dengan menguji
pada seluruh siklus hidup perangkat lunak
3. Menggunakan alat pengujian/Testing tools
4. Harus ada seseorang ahli yang bertanggung
jawab untuk memperbaiki pross pengujian
5. Pengujian adalah disiplin professional yang
membutuhkan orang terlatih dan berkeahlian
6. Menumbuhkan tim yang bersikap positif
Ch 02 - Hubungan Software Development Life Cycle (SDLC) dan Testing

Ch 02 - Hubungan Software Development Life Cycle (SDLC) dan Testing

  • 1.
    Chapter 02 - SoftwareTesting Tri sugihartono, Mkom STMIK Atma Luhur Pangkalpinang
  • 2.
    Seberapa baik sistemyang sudah dibangun ? • 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.
  • 3.
    Lingkup Pengujian • Demonstrasidari validitas perangkat lunak pada setiap tahap dalam siklus hidup pengembangan sistem • Penentuan validitas kebutuhan pengguna akhir sistem dan persyaratan. • Pemeriksaan perilaku sistem dengan menjalankan sistem data uji sample.
  • 4.
    Masalah-masalah Umum pada SoftwareTesting • Kegagalan untuk menentukan tujuan pengujian • Pengujian pada tahap yang salah pada siklus hidup • Penggunaan teknik pengujian yang tidak efektif
  • 5.
    Tahap Pengujian • Kesalahanyang ditemukan pada tahap ini membuat biaya menjadi empat kali, yaitu : 1. Biaya untuk mengembangkan kode yang salah 2. Biaya untuk pengujian untuk mendeteksi kesalahan 3. Menghapus bagian yang salah dan menambahkan yang tepat 4. Pengujian ulang untuk memastikan bahwa sudah OK sekarang
  • 6.
    Software Development Life-Cycle (SDLC) SiklusHidup Pengembangan Perangkat Lunak • Requirements (persyaratan) • Design (desain) • Coding/Implementation (pelaksanaan) • Testing (pengujian) • Installation (instalasi) • Maintenance (pemeliharaan)
  • 7.
    Pengujian System Development LifeCycle (SDLC) • Studi di IBM mengungkapkan bahwa pengujian sebelum pengkodean adalah 50% efektif; setelah coding adalah 80% efektif. • Memperbaiki kesalahan setelah pengkodean adalah 10 kali lebih mahal seperti sebelumnya, dan 100 kali lebih mahal untuk memperbaiki kesalahan produksi. • Oleh karena itu, lebih ekonomis untuk menggunakan pengujian SDLC.
  • 8.
    Pengujian dalam SDLC •Hal ini umumnya diketahui bahwa 64% dari kesalahan terjadi selama tahap analisis dan desain. • Requirements (persyaratan): – bahwa persyaratan yang ditentukan memenuhi kebutuhan organisasi • Design and programs (desain dan program) : – bahwa desain dan menyelesaikan program telah memenuhi persyaratan yang ditentukan
  • 9.
    Pengujian dalam SDLC (Lanjutan) •Test and installation (pengujian dan instalasi) : – Bahwa sistem yang diterapkan memenuhi spesifikasi • Maintenance (pemeliharaan) : – Perubahan pekerjaan
  • 10.
    Pada setiap tahap,dilakukan : • Menganalisis struktur yang diproduksi pada fase ini untuk testability internal dan kecukupan • Menghasilkan pengujian set berdasarkan struktur pada tahap ini • Selain itu, selama desain dan pemrograman : – Menentukan bahwa struktur yang konsisten dengan struktur yang dihasilkan selama tahap sebelumnya – Menyempurnakan dan merumuskan kembali set pengujian yang dihasilkan sebelumnya
  • 11.
    Verifikasi Kegiatan • Requirements(persyaratan) : – Menentukan pendekatan verifikasi – Menentukan kecukupan persyaratan – Menghasilkan data uji fungsional – Menentukan konsistensi desain dengan persyaratan
  • 12.
    Verifikasi Kegiatan (lanjutan) • Design(desain) : – Menentukan kecukupan desain – Menghasilkan data pengujian struktural dan fungsional – Menentukan konsistensi dengan desain • Programming/Coding (pemrograman) : – Menentukan kecukupan pelaksanaan – Menghasilkan data pengujian struktural dan fungsional untuk program
  • 13.
    Verifikasi Kegiatan (lanjutan) • Test(pengujian) : – Pengujian sistem aplikasi • Installation (instalasi) : – Sistem diuji dalam produksi • Maintenance (pemeliharaan) : – Memodifikasi dan pengujian ulang
  • 14.
    14 Menguji mutu produk Meningkatkanmutu produk Menjamin mutu produk Testing Mengapa testing harus dilakaukan?
  • 15.
    • Tujuan pengujianPL : Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yangdiuji dengan spesifikasi yang telah ditentukan
  • 16.
    Melihat tujuan daripengujian perangkat lunak, maka dapat dijabarkan hal-hal yang harus dilakukan ketika melakukan pengujian, yaitu : Mengidentifikasikan dan menemukan beberapa kesalahan yang mungkin ada dalam Perangkat Lunak yang diuji Setelah Perangkat Lunak dibetulkan, diidentifikasi ulang kesalahan dan dites ulang untuk menjamin kualitas level penerimaan Membentuk tes yang efisien dan efektif dengan anggaran dan jadwal yang terbatas Mengumpulkan daftar kesalahan untuk digunakan dalam daftar pencegahan kesalahan (tindakan corrective dan preventive)
  • 17.
    Is it bugs? 1.Software tidak melakukan sesuatu seperti yg dinyatakan dalam spesifikasi produk 2. Software melakukan sesuatu yang seharusnya tidak perlu dilakukan 3. Software melakukan sesuatu yang tidak disebutkan dalam spesifikasi produk 4. Software tidak melakukan sesuatu seperti spesifikasi, tetapi seharusnya software melakukan itu 5. Software sulit dipahami, sulit digunakan dan lambat
  • 18.
    Ikhtisar • Mengapa softwarememiliki bugs – Miskomunikasi atau tidak ada komunikasi – Kompleksitas software – Kesalahan pemrograman – Mengubah persyaratan – Dokumentasi kode yang buruk – Alat pengembangan software
  • 19.
    Beberapa hal yangharus diperhatikan dalam melakukan pengujian adalah sebagai berikut : 1. Kualitas dari proses pengetesan menentukan kesuksesan pengujian 2. Mencegah perambatan cacat dengan menguji pada seluruh siklus hidup perangkat lunak 3. Menggunakan alat pengujian/Testing tools 4. Harus ada seseorang ahli yang bertanggung jawab untuk memperbaiki pross pengujian 5. Pengujian adalah disiplin professional yang membutuhkan orang terlatih dan berkeahlian 6. Menumbuhkan tim yang bersikap positif