Download - Pert 2 Pengenalan Testing&Implementasi
Pengujian Perangkat LunakHeri Setiawan
Pengujian Perangkat Lunak(Software Testing)
Pengujian (Testing)• Pengujian perangkat lunak (Software testing) adalah proses untuk
mengukur kualitas dari perangkat lunak yang dikembangkan.• Kualitas perangkat lunak (software quality) mengukur seberapa baik
sistem perangkat lunak dirancang (quality of design), dan tingkat kesesuaian perangkat lunak dengan rancangan yang telah dibuat (quality of conformance).
• Standar internasional yang digunakan untuk mengevaluasi kualitas perangkat lunak adalah ISO 9126 yang mendefinisikan karakteristik perangkat lunak yang berkualitas.
Definisi testing
• Menurut standar ANSI/IEEE 1059Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defect/errors/bugs) dan mengevaluasi fitur-fitur dari entitas software
• Testing software adalah proses mengoperasikan software dalam kondisi yang dikendalikan, untuk :• Verifikasi apakah telah berlaku sebagaimana telah ditetapkan
(menurut spesifikasi)• Are we building the system right?• Mendeteksi error• Validasi apakah spesifikasi yang telah ditetapkan sudah memenuhi
keinginan atau kebutuhan dari pengguna sebenarnya• Are we building the right system?
Why test software?
“Software bugs, or errors... ...cost the U.S. economy an estimated $59.5 billion
annually...more than a third of these costs, or an estimated $22.2 billion ... could be
eliminated by an improved testing ...”
NIST (National Institute of Standards and Technology), 2002
Tujuan Pengujian Perangkat Lunak
• " Pengujian Perangkat Lunak adalah proses mengeksekusi program atau sistem dengan maksud untuk menemukan kesalahan " *
atau• " Setiap kegiatan yang bertujuan untuk mengevaluasi atribut atau
kemampuan dari program atau sistem dan menentukan bahwa itu memenuhi hasilnya diperlukan " **
* Glenford Myers, The art of software testing
** William Hetzel, The Complete Guide to Software Testing
When to stop testing?• Pengujian lengkap dari suatu sistem umumnya tidak layak ( terlalu
mahal ) • Pengujian biasanya berhenti : • ketika sumber daya habis atau • ketika perangkat lunak memenuhi persyaratan atau • ketika manfaat dari pengujian lanjutan tidak dapat membenarkan
biaya pengujian ditambahkan
Implementasi Perangkat Lunak(System Implementation)
System Implementation• Implementasi sistem atau penawaran Adopsi dengan transfer (
konversi ) antara sistem lama ke sistem baru dalam suatu organisasi . Jadi jika sebuah perusahaan bekerja dengan sistem perangkat lunak lama , mungkin ingin menggunakan sistem baru yang lebih efisien , memiliki kapasitas kerja yang lebih dll Jadi sistem baru perlu diadopsi, di mana setelah itu dapat digunakan .
Tahap Pengujian & Implementasi dalam Siklus Hidup Pengembangan Sistem
(Testing & Implementation Phases in SDLC)
Traditional SDLC
11
(1) Systems Investigation
(2) Systems Analysis
(3) Systems Design
(4) Programming
(5) Testing
(6) Implementation
(7) Operation
(8) Maintenance
Go Back to a previous Stage or Stop
An eight-stage systems development life cycle (SDLC)
Testing & Implementation Phases in SDLC• Testing (Pengujian)• Cek untuk melihat apakah sistem informasi akan menghasilkan hasil yang
diharapkan dan diinginkan dalam kondisi tertentu• Implementation (Implementasi)• The process of converting from the old system to the new system• Four major conversion strategies
• Parallel conversion: sistem lama dan baru beroperasi secara bersamaan untuk beberapa waktu
• Direct conversion: sistem lama dihentikan dan sistem baru diaktifkan pada titik tertentu dalam waktu
• Pilot conversion: memperkenalkan sistem baru di salah satu bagian dari organisasi
• Phased conversion: memperkenalkan komponen dari sistem baru
Contract Review• Keberhasilan dari tahap implementasi sangat ditentukan oleh
tahap analisa dan perancangan sistem dan pembuatan kontrak pengembangan perangkat lunak.
• Sebelum suatu proyek pengembangan sistem perangkat lunak dilaksanakan, maka sebaiknya proses peninjauan rancangan kontrak harus dilakukan seteliti mungkin dan dengan hati-hati.
• Multimedia: m0604MUL-Contract-Review.zip
Purpose of test management• Untuk merancang dan menerapkan strategi tes yang efektif dan
ekonomis• Elemen kunci : • Perencanaan pengujian• Spesifikasi pengujian• Pelaksanaan Pengujian • Uji pemantauan dan pelaporan • Evaluasi sistem
The Tools You Need
• A thorough test plan: meramalkan dan menghindari masalah yg potensial.
• A well-engineered test system : sistem yang akan di tes
• A state-based bug tracking database : basis data pencatatan kesalahan
• A comprehensive test tracking spreadsheet :daftar pengujian
• A simple change management database : perubahan sederhana pada managemen basis data
Diperlukan untuk pengelolaan proses pengujian.
The Resources You Need• A practical test lab• Test Engineers and Technician• Contractors and Consultants• External test Labs and Vendors
Diperlukan untuk menjalankan proses pengujian.
Dasar Sistem Pengujian
• Suatu pengujian yang akan dilakukan harus mempunyai fokus yang jelas.
• Ada 3 pertanyaan yang harus dijawab sebelum melakukan suatu pengujian:• What you might test (kemungkinan apa saja yang diuji)?• What you should test (Apa saja yang harus diuji) ?• What you can test (Apa saya yang dapat diuji)?
• Jawaban -> membantu menentukan fokus pengujian yang dilakukan.
• Fokus pengujian yang jelas akan menentukan kualitas dari sistem yang diuji.
1. What you might test?Usaha Pengujian yang Diperluas(The Extended Test Effort)
Usaha Pengujian yang Diperluas
• Dalam suatu proyek pengembangan perangkat keras maupun perangkat lunak, sudah banyak proses pengujian yang dilakukan di luar organisasi.
• Ada 2 pandangan yang digunakan untuk menilai bagaimana kelompok diluar organisasi pengujian formal berkontribusi pada suatu proses pengujian:1. Test Granularity : level of focus of a test2. Test Phases : Jenis pengujian yg dilakukan dalam
berbagai macam tahapan pengujian.
Test Granularity• Fokus tes ini Mengacu pada kehalusan atau kekasaran • Dapat dianggap sebagai berjalan di sepanjang spektrum mulai dari
struktur untuk menguji perilaku sistem
Structural Test• Tes struktural menemukan bug dalam operasi tingkat rendah
seperti yang yang terjadi turun di tingkat baris kode , skema database , chip , subassemblies , dan antar muka .
• Structural tests are based on how a system operates
Who did the structural test?• Expert Programmers can be good structural testing• Penguji mengembangkan tes yang paling struktural dengan
melihat kode dan data struktur
Behavioural Test• Behavioural tests / Tes Perilaku sering digunakan untuk menemukan
bug dalam operasi tingkat tinggi , pada tingkat fitur , profil operasional , dan skenario pelanggan
• Tes fungsional berdasarkan apa yang harus dilakukan oleh sistem • Pengujian perilaku melibatkan pemahaman rinci tentang domain
aplikasi , masalah bisnis yang dipecahkan , dan misi sistem berfungsi
Who did the behavioral test?• Penguji yang memahami desain sistem , setidaknya pada tingkat
tinggi , sehingga mereka secara efektif dapat menemukan bug umum untuk jenis desain .
• Selain memahami beberapa isu teknologi seputar sistem yang diuji , penguji perilaku harus memahami teknik tes perilaku khusus yang paling efektif dalam menemukan bug tersebut
What is Good Behavioral Test?
Behavioral testing is the primary test technique for most independent test organizations
“Pengujian perilaku adalah teknik tes utama untuk sebagian besar organisasi tes independen”
Live Testing• Live Test involve putting customers, content experts, early
adopters and other end users in front of the system• In some cases, we encourage the testers to try to break the
system• Well-known form: Beta Testing• Live testing melibatkan menempatkan pelanggan , ahli
konten , pengadopsi awal dan pengguna akhir lainnya di depan sistem
• Dalam beberapa kasus , pengujian mendorong para penguji untuk mencoba memecahkan sistem
• Bentuk terkenal : Pengujian Beta
Test Phases• Unit Testing (Pengujian Unit)
• Component or Subsystem Testing (Komponen atau subsistem Pengujian)
• Integration or Product Testing (Integrasi atau Produk Pengujian)
• String Testing• System Testing (Pengujian sistem )
• Acceptance or User Acceptance Testing (Penerimaan atau penerimaan Pengguna )
• Pilot Testing (Pengujian percontohan)
Benefit of Phased Test Approach
• Structural Testing can build product stability• Structural testing using scaffolding or stubs can start early• You can detect bugs earlier and more efficiently• You can gather better metrics and use best-practice techniques in your
testing effort• Phases provide real and psychological milestones against which you
can gauge the "doneness" of testing and thus the project• Pengujian struktural dapat membangun stabilitas produk• Pengujian Struktural menggunakan perancah atau bertopik dapat
dimulai lebih awal • Anda dapat mendeteksi bug lebih awal dan lebih efisien • Anda dapat mengumpulkan metrik yang lebih baik dan menggunakan
teknik praktek terbaik dalam upaya pengujian • Fase memberikan tonggak nyata dan psikologis terhadap yang Anda
dapat dengan mengukur " kematangan " dari pengujian proyek
Terima Kasih