Testing dan Implementasi Agenda Perkuliahan Testing Process Testing

  • Slides: 24
Download presentation
Testing dan Implementasi

Testing dan Implementasi

Agenda Perkuliahan Testing Process Testing Planning Hubungan antara Testing Planning & SDLC Failure &

Agenda Perkuliahan Testing Process Testing Planning Hubungan antara Testing Planning & SDLC Failure & Fault Class Test Data & Test Case

Teknik Pengujian Perangkat Lunak

Teknik Pengujian Perangkat Lunak

Teknik Pengujian Perangkat Lunak Techniques Fundamental Setiap kode sumber (source code) dibuat, software harus

Teknik Pengujian Perangkat Lunak Techniques Fundamental Setiap kode sumber (source code) dibuat, software harus di uji (ditest) untuk memperbaiki sebanyak mungkin kesalahan (errors), sebelum diserahkan ke customer Teknik Pengujian secara umum mencakup dua hal penting : - Menguji “internal program logic” dari komponen software - Menguji input dan ouput domain dari program (function, kebutuhan sistem) Uji Fungsionalitas atau Uji Kebutuhan sistem (Software Requirement Testing)

Teknik Pengujian Perangkat Lunak Techniques Fundamental Siapa yang mengerjakan ? ? Pada awalnya, “software

Teknik Pengujian Perangkat Lunak Techniques Fundamental Siapa yang mengerjakan ? ? Pada awalnya, “software engineer” mengerjakan semua test. Namun pada perkembangan proses testing, “testing specialist” yang terlibat. Kenapa testing ini penting, dilihat dari sisi implementasi? ? Setiap program selesai dibuat dan siap dijalankan, maka customer akan mengujinya terlebih dahulu Sofware harus diuji dengan intens untuk menemukan dan menghilangkan error, sebelum diserahkan ke customer

Teknik Pengujian Perangkat Lunak Techniques Fundamental Untuk menemukan sebanyak mungkin kesalahan, pengujian harus dilakukan

Teknik Pengujian Perangkat Lunak Techniques Fundamental Untuk menemukan sebanyak mungkin kesalahan, pengujian harus dilakukan secara sistematis Test Case harus dirancang dengan menggunakan pendekatan teknik (Techniques approach) Jadi apa produk dari Testing? ? Kumpulan kasus uji (a Set of Test Cases) yang dirancang baik untuk “internal program logic” (White Box Testing) dan “external requirement” (Black Box Testing). Test Case dirancang dan didokumentasi dengan baik

Teknik Pengujian Perangkat Lunak Techniques Fundamental Hasil yang diharapkan didefinisikan di awal Hasil pengujian

Teknik Pengujian Perangkat Lunak Techniques Fundamental Hasil yang diharapkan didefinisikan di awal Hasil pengujian direkam atau dicatat (testing documentation)

Teknik Pengujian Perangkat Lunak Software Testability Apa itu “software testability”? ? Menurut James bach,

Teknik Pengujian Perangkat Lunak Software Testability Apa itu “software testability”? ? Menurut James bach, software testability adalah seberapa mudah sebuah program komputer dapat diuji Testing dianggap cukup sulit dilakukan maka perlu diketahui apa yang harus dilakukan untuk meluruskannya “Testability” muncul sebagai hasil dari “good design” Ada beberapa atribut yang dapat digunakan oleh software engineer dalam membangun software

Teknik Pengujian Perangkat Lunak Software Testability Apakah software (a good software) sudah memenuhi hal-hal

Teknik Pengujian Perangkat Lunak Software Testability Apakah software (a good software) sudah memenuhi hal-hal berikut? ? Operability - The better it works, there more efficiently it can be tested Observability - What you see is what you test Controllability - The better we can control the software, the more testing can be automated and optimized

Teknik Pengujian Perangkat Lunak Software Testability Decomposability - By controlling the scope of testing,

Teknik Pengujian Perangkat Lunak Software Testability Decomposability - By controlling the scope of testing, we can more quickly isolate problems and perform smarter testing Simplicity - The less there is to test, the more quickly we can test it Stability - The fewer changes, the fewer the disruptions to testing

Teknik Pengujian Perangkat Lunak Test Case Design “Atribut of a good testing” seperti apa?

Teknik Pengujian Perangkat Lunak Test Case Design “Atribut of a good testing” seperti apa? ? Testing yang baik memiliki kemungkinan paling besar untuk menemukan error -Tester harus memahami software yang diuji dan memikirkan bagaimana software bisa gagal Testing yang baik tidak redundant/ganda - Testing time & resources terbatas - Setiap test harus mempunyai tujuan yang berbeda

Teknik Pengujian Perangkat Lunak Test Case Design “Atribut of a good testing” seperti apa?

Teknik Pengujian Perangkat Lunak Test Case Design “Atribut of a good testing” seperti apa? ? (lanjutan) Testing yang baik tidak terlalu sederhana namun juga tidak terlalu kompleks - Jangan mengkombinasikan beberapa test case kedalam sebuah test case - Test case harus dilaksanakan secara terpisah

Teknik Pengujian Perangkat Lunak Test Case Design Test Case sebagai sebuah tantangan dalam merancang

Teknik Pengujian Perangkat Lunak Test Case Design Test Case sebagai sebuah tantangan dalam merancang sebuah produk Ada banyak sekali metode merancang test case, namun digunakan metode pendekatan sistematis untuk testing Software merupakan suatu sistem yang bisa diduga

Teknik Pengujian Perangkat Lunak Test Case Design Dalam merancang test case, ada dua hal

Teknik Pengujian Perangkat Lunak Test Case Design Dalam merancang test case, ada dua hal yg diperhatikan : - Mengetahui fungsi spesifik dari produk, test dilakukan untuk menunjukkan setiap fungsi secara operasional berjalan dimana pada saat yg sama mencari error di setiap fungsi - Mengetahui cara kerja internal dari suatu software, internal operations yang mengacu pada spesifikasi dan semua komponen internal diuji

Teknik Pengujian Perangkat Lunak Test Case Design Black Box Testing - Dilakukan melalui software

Teknik Pengujian Perangkat Lunak Test Case Design Black Box Testing - Dilakukan melalui software interface (menu) - Meyakinkan bahwa fungsi-fungsi dalam software berjalan - Input dengan baik diterima ; Output dihasilkan dengan benar - Integritas dari informasi luar (database) dimaintain

Teknik Pengujian Perangkat Lunak Test Case Design White Box Testing - Pemeriksaan terhadap setiap

Teknik Pengujian Perangkat Lunak Test Case Design White Box Testing - Pemeriksaan terhadap setiap prosedur secara detail - Jalur logika (Logical Path) diuji dengan test case

Teknik Pengujian Perangkat Lunak Testing Process Unit Testing Module Testing Component Testing Sub-system Testing

Teknik Pengujian Perangkat Lunak Testing Process Unit Testing Module Testing Component Testing Sub-system Testing Integration Testing System Testing Acceptance Testing User Testing

Teknik Pengujian Perangkat Lunak Testing Process Component testing – Pengujian komponen-komponen program – Biasanya

Teknik Pengujian Perangkat Lunak Testing Process Component testing – Pengujian komponen-komponen program – Biasanya dilakukan oleh component developer (kecuali untuk system kritis) Integration testing – Pengujian kelompok komponen-komponen yang terintegrasi untuk membentuk sub-system ataupun system – Dialakukan oleh tim penguji yang independent – Pengujian berdasarkan spesifikasi sistem

Teknik Pengujian Perangkat Lunak Testing Planning Proses Pengujian – Deskripsi fase-fase utama dalam pengujian

Teknik Pengujian Perangkat Lunak Testing Planning Proses Pengujian – Deskripsi fase-fase utama dalam pengujian Pelacakan Kebutuhan – Semua kebutuhan user diuji secara individu Item yg diuji – Menspesifikasi komponen sistem yang diuji Jadwal Pengujian Prosedur Pencatatan Hasil dan Prosedur Kebutuhan akan Hardware dan Software Kendala-kendala – Mis: kekuranga staff, alat, waktu dll.

Testing Process & Planning Hubungan antara Testing Planning & SDLC Spesifikasi Kebutuhan Acceptance Test

Testing Process & Planning Hubungan antara Testing Planning & SDLC Spesifikasi Kebutuhan Acceptance Test plan Service Perancangan Sistem Spesifikasi Sistem System Integration Test plan Acceptance test Sub-System Integration Test plan System Integration test Detail Perancangan Module and Unit code and test Sub-System Integration test

Testing Process & Planning Failure and Fault Class Failure: Output yang tidak benar/tidak sesuai

Testing Process & Planning Failure and Fault Class Failure: Output yang tidak benar/tidak sesuai ketika sistem dijalankan Fault: Kesalahan dalam source code yang mungkin menimbulkan failure ketika code yg fault tersebut dijalankan

Testing Process & Planning Failure and Fault Class Failure Class Deskripsi Transient Muncul untuk

Testing Process & Planning Failure and Fault Class Failure Class Deskripsi Transient Muncul untuk input tertentu Permanent Muncul untuk semua input Recoverable Sistem dapat memperbaiki secara otomatis Unrecoverable Sistem tidak dapat memperbaiki secara otomatis Non-corrupting Failure tidak merusak data Corrupting Failure yang merusak sistem data

Testing Process & Planning Testing Clue Hanya test yang lengkap yg dapat meyakinkan sistem

Testing Process & Planning Testing Clue Hanya test yang lengkap yg dapat meyakinkan sistem terbebas dari kesalahan, tetapi hal ini sangat sulit dilakukan Prioritas dilakukan terhadap pengujian kemampuan sistem, bukan masing-masing komponennya Pengujian untuk situasi yg tipikal lebih penting dibandingkan pengujian terhadap nilai batas

Testing Process & Planning Testing Data & Test Case Test data: Input yang direncankan

Testing Process & Planning Testing Data & Test Case Test data: Input yang direncankan digunakan oleh sistem Test cases: Input yang digunakan untuk menguji sistem dan memprediksi output dari input jika sistem beroperasi sesuai dengan spesifikasi