SOFTWARE TESTING
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

SOFTWARE TESTING Muhammad Yusuf Teknik Informatika – Universitas Trunojoyo PowerPoint PPT Presentation


  • 137 Views
  • Uploaded on
  • Presentation posted in: General

SOFTWARE TESTING Muhammad Yusuf Teknik Informatika – Universitas Trunojoyo Http://yusufxyz.wordpress.com Email : [email protected] Pendahuluan. Testing merupakan suatu aktivitas yang dilakukan untuk mengevaluasi kualitas produk dengan mengidentifikasi kerusakan dan permasalahan.

Download Presentation

SOFTWARE TESTING Muhammad Yusuf Teknik Informatika – Universitas Trunojoyo

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Software testing muhammad yusuf teknik informatika universitas trunojoyo

SOFTWARE TESTING

Muhammad Yusuf

Teknik Informatika – Universitas Trunojoyo

Http://yusufxyz.wordpress.com

Email : [email protected]


Pendahuluan

Pendahuluan

Testing merupakan suatu aktivitas yang dilakukan untuk mengevaluasi kualitas produk dengan mengidentifikasi kerusakan dan permasalahan.

Testing software terdiri dari pembuktian dinamis (dynamic) dari jalannya program pada sekumpulan tes yang terbatas(finite), yang sesuai dan biasanya dipilih(selected) dari domain eksekusi yang tak terbatas, yang bertentangan dengan tingkah laku yang diharapkan(expected).


Software testing muhammad yusuf teknik informatika universitas trunojoyo

  • Dynamic : istilah ini berartibahwa testing termasuk eksekusi program pada input yang bernilai.

  • Finite : walaupun pada program sederhana, banyak kasus test yang secara teoretis memungkinkan bahwa testing yang mendalam bisa membutuhkan waktu berbulan-bulan atau bertahun-tahun untuk dieksekusi.


Software testing muhammad yusuf teknik informatika universitas trunojoyo

  • Selected : Banyaknya teknik testing yang diusulkan pada dasarnya berbeda dalam hal memilih sekumpulan testing, dan software engineers harus sadar bahwa kriteria pemilihan yang berbeda mungkin akan menghasilkan derajat keefektifan yang sangat besar.

  • Expected : hal yang tidak mudah untuk dilakukan adalah memutuskan apakah hasil yang diamati dari suatu eksekusi program bisa diterima atau tidak, jika tidak usaha testing akan sia-sia.


Software testing muhammad yusuf teknik informatika universitas trunojoyo

  • Pandangan mengenai testing software telah berkembang ke yang lebih konstruktif.

  • Testing tidak lagi dilihat sebagai aktivitas yang hanya dimulai setelah tahap membuat program selesai.

  • Testing software sekarang dipandang sebagai aktivitas yang mana harus mencakup seluruh proses pengembangan dan pemeliharaan.

  • Testing adalah cara untuk memeriksa apakah pencegahan sudah efektif atau belum dan juga untuk mengidentifikasi kesalahan


Software testing fundamentals dasar dasar pengujian software

Software Testing Fundamentals (dasar-dasarPengujian Software)

Testing yang berhubungan dengan terminology

  • Kesalahan vs Kegagalan : banyak istilah yang digunakan dalam literature rekayasa perangkat lunak (software) untuk mendeskripsikan kegagalan pemakaian. Seperti kesalahan, kegagalan, error dan lainnya.

    Key issues

  • Kriteria seleksi testing/criteria kecukupan testing (atau penghentian aturan): Kriteria seleksi testing adalah hal menentukan apakah sekumpulan testing kasus layak ada. Criteria seleksi dapat digunakan untuk memilih test yang layak atau tidak, termasuk untuk menentukan apakah pengujian bisa dihentikan atau tidak.


Software testing muhammad yusuf teknik informatika universitas trunojoyo

  • Keefektifan Testing/tujuan testing : pengujian/testing merupakan observasi sample eksekusi program.

  • Pengujian/testing untuk identifikasi kerusakan : dalam testing ini, test (pengujian) yang berhasil adalah yang menyebabkan system menjadi gagal.

  • Hal ini sangat berbeda dari testing untuk mendemonstrasikan bahwa software akan sesuai dengan spesifikasinya, atau property lain yang dibutuhkan, dimana kasus testing berhasil jika tidak ada kegagalan (yang signifikan) teramati.


Test level

Test Level

  • Pengujian software biasanya dilakukan pada level yang berbeda saat proses development & maintenance.

  • Sasaran dari dilakukannya test bisa berupa sebuah modul tunggal atau kumpulan-kumpulan modul (tergantung tujuan, penggunaan, perilaku, ataupun struktur )

  • 3 Tahapan besar dalam Test secara konseptual dapat dibedakan menjadi : Unit, Integrasi, dan Sistem.


2 1 1 unit testing

2.1.1 Unit Testing

  • Unit testing menguji fungsi dalam pemisahan komponen yang diuji secara terpisah.

  • Bisa berupa subprogram yang individu atau komponen besar yang tersusun dari banyak unit yang memiliki hubungan erat.

  • Unit testing terkait dengan akses ke kode yang sedang dites serta didukung oleh debugging tools, dan bisa saja melibatkan programmeryang menulis kode.


2 1 2 integration testing

2.1.2 Integration Testing

  • Proses untuk menguji interaksi antar komponen pada software.

  • Aktivitas yang berjalan terus menerus pada setiap tahapan dimana Software Engineer/SE harus mampu berkonsentrasi di level tempat mereka mengintegrasikan.

  • Untuk software yang kecil & mudah, Incremental Integration testing lebih dianjurkan untuk menyatukan seluruh komponen dalam satu waktu, yang lebih dikenal dengan “big bang testing”


2 1 3 system testing

2.1.3 System Testing

  • Perilaku dari sebuah sistem yang utuh lebih mendapat perhatian khusus. Kegagalan fungsional harus bisa diidentifikasi terlebih dahulu selama proses unit & integration testing.

  • System testing mempertimbangkan ketepatan untuk membandingkan sistem dengan persyaratan sistem non-fungsional seperti security, speed, accuracy, reliability


2 3 1 acceptance testing

2.3.1 Acceptance Testing

  • Memeriksa perilaku sistem terhadap permintaan customer yang telah menetapkan pilihan.

  • Memastikan apakah permintaan customer telah dapat dipenuhi atau organisasi telah mengidentifikasi pangsa pasar yang cocok untuk software tersebut.

  • Ada kemungkinan melibatkan developer dari sistem.


2 3 2 installation testing

2.3.2 Installation Testing

  • Setelah melalui acceptance testing, Software diuji untuk di-install pada lingkungan yang menjadi sasaran/target.

  • Dapat dilihat sebagai system testingyang diadakan lagi menurut persyaratan konfigurasi dari hardware.

  • Juga menguji prosedur instalasi.


2 3 3 alpha beta testing

2.3.3 Alpha & Beta Testing

  • Sebelum software diluncurkan, Software diberikan kepada lingkup kecil yang bisa mewakili himpunan pengguna yang potensial untuk menggunakan software tersebut dalam rangka uji coba (trial)

  • Pengguna akan menyampaikan/melaporkan permasalahan yang dijumpai ketika menggunakan produk software.


2 3 4 conformance correctness functional testing

2.3.4 Conformance, Correctness, Functional Testing

  • Ditujukan untuk validasi atau pengesahan apakah pengamatan perilaku dari software yang sedang diuji sesuai dengan spesifikasinya.


2 3 5 reliability achievement evaluation

2.3.5 Reliability achievement & evaluation

  • Dalam membantu mengidentifikasi kesalahan, testing dimaksudkan untuk meningkatkan reliabilitas/ketahanan daya uji.


2 3 6 regression testing

2.3.6 Regression Testing

  • Pengujian kembali secara selektif dari sebuah sistem/komponen untuk membuktikan bahwa modifikasi tidak menyebabkan dampak yang tidak diharapkan.

  • Software yang sebelumnya telah lulus serangkaian tes, setelah ada modifikasi kondisinya masih tetap layak dan tidak bermasalah.


Software testing muhammad yusuf teknik informatika universitas trunojoyo

  • Performance testing

    Ditujukan untuk membuktikan bahwa software yang

    telah dibuat memenuhi persyaratan yang telah

    ditentukan yakni, capacity dan response time.

  • Stress testing

    Menguji software untuk bekerja di luar /melebihi

    batasan kapasitasnya.

  • Back-To-Back testing

    Rangkaian tes tunggal yang dilakukan pada 2 versi

    implementasi dari produk software, kmdn hasilnya

    dibandingkan.


Software testing muhammad yusuf teknik informatika universitas trunojoyo

  • Recovery testing

    Menguji kemampuan restart software setelah terjadi

    sebuah “bencana”

  • Configuration testing

    Menganalisa software dalam berbagai spesifikasi

    konfigurasi.

  • Usability testing

    Mengevaluasi seberapa mudah end-user menggunakan &

    mempelajari software. Seberapa efektif fungsi yang ada

    dan kemampuan untuk pulih dari kesalahan yang dilakukan

    oleh user.

  • Test-driven development

    Meningkatkan kegunaan tes-tes sebagai pengganti untuk

    sebuah persyaratan perincian dokumentasi.


Test technique

Test Technique

  • Banyak teknik yang dikembangkan untuk mengungkapkan potensi kesalahan dari program.

  • Prinsipnya adalah menjadi se-sistematis mungkin dalam mengidentifikasi sebuah rangkaian yang mewakili perilaku program seperti domain input, scenario, states, dan dataflow.

  • Teknik digolongkan menjadi white box (mengandalkan informasi ttg bagaimana software telah dicoding) dan black box (mengandalkan perilaku input-output)


Berdasarkan lembaga software engineer pengalaman

Berdasarkan Lembaga Software Engineer & Pengalaman

  • 3.1.1 Ad Hoc testing

    Test didapat berdasar kemampuan software engineer, lembaga serta pengalaman dengan program yang serupa. Merupakan teknik yang paling praktis.

  • 3.1.2 Exploratory testing

    Didefinisikan sebagai pembelajaran simultan, rancangan tes, dan eksekusi tes. Keefektifan testing bergantung pada pengetahuan SE, yang bisa didapat dari berbagai sumber : mengamati perilaku produk, kefamiliaran dgn aplikasi, jenis kegagalan & kesalahan yang mungkin terjadi, resiko yang terkait dengan produk tertentudan sebagainya.


Berdasarkan spesifikasi perincian 1

Berdasarkan Spesifikasi /Perincian (1)

  • 3.2.1 Equivalence Partitioning

    Domain input dibagi menjadi sebuah kumpulan dari subset/ kelas yang sebanding yang mempertimbangkan persamaan berdasar pada relasi yang spesifik & sebuah kumpulan perwakilan dari test yang diambil dari tiap kelas.

  • 3.2.2 Boundary-Value analysis

    Test case dilakukan dekat dengan batasan variabel domain input yang didasari secara rasional.

    Kesalahan cenderung terkonsentrasi dekat dengan nilai ekstrim dari input.


Berdasarkan spesifikasi perincian 2

Berdasarkan Spesifikasi /Perincian (2)

  • 3.2.3 Decision table

    Menggambarkan hubungan logika antara kondisi (input) dan aksi (output). Teknik yang berhubungan cause-effect graphing

  • 3.2.4 Finite-state Machine-based

    Memodelkan sebuah program sebagai suatu finite-state machine supaya dapat menempuh state & transisi yang terjadi.

  • 3.2.5 Testing from formal spesification

    Memberikan spesifikasi bahasa formal yang memperkenankan untuk derivasi otomatis dari test case secara fungsional dan menyediakan sebuah output yang direkomendasikan.

  • 3.2.6 Random Testing


Berdasarkan kode

Berdasarkan Kode

  • 3.3.1 Control flow-based criteria

    Kriteria meliputi seluruh statement atau block of statements dari program atau menetapkan kombinasi dari keduanya. Mengeksekusi seluruh masukan hingga akhir sesuai jalur control flow pada flowgraph.

  • 3.3.2 Data flow-based criteria

    Flowgraph control dilengkapi keterangan dengan informasi tentang bagaimana variabel dalam program didefinisikan, digunakan, dan dihilangkan.

  • 3.3.3 Reference models for code-based

    Struktur kontrol dari sebuah program digambarkan secara grafik dengan menggunakan sebuah Flowgraph


  • Login