Software Testing dalam lingkup Software Engineering(2)

  • Post
    codeorayo
    Keymaster
    none
    Dalam beberapa tahun terakhir, pandangan pengujian perangkat lunak telah matang menjadi pendekatan yang konstruktif. Pengujian tidak lagi dilihat sebagai aktivitas yang dimulai hanya setelah tahap pengkodean selesai dengan tujuan terbatas mendeteksi kegagalan. Pengujian perangkat lunak, atau semestinya, meresap sepanjang siklus pengembangan dan maintenance keseluruhan. Memang, perencanaan untuk pengujian perangkat lunak harus dimulai dengan tahap awal dari proses persyaratan perangkat lunak, dan rencana dan prosedur pengujian harus secara sistematis dan terus dikembangkan– dan mungkin disempurnakan — Seiring pengembangan perangkat lunak. Kegiatan test planning dan tes designing ini memberikan masukan yang berguna bagi perancang perangkat lunak dan membantu menyoroti kelemahan potensial, seperti perbedaan / kontradiksi desain, atau kelalaian / ambiguitas dalam dokumentasi. Tujuan dari adanya software testing, antara lain: [list=*]

  • [*]Verifikasi dan validasi menemukan bug
  • [*]Mendeteksi kesalahan (fault)
  • [*]Membangun kepercayaan dalam perangkat lunak
  • [*]Mengevaluasi sifat-sifat perangkat lunak (reliability, performance, memory usage, security, usability)

    Fundamental Software Testing

  • [/list]

    Banyak istilah digunakan dalam literatur rekayasa perangkat lunak untuk menggambarkan malfungsi, terutama fault, failure, error, dan lainnya. Ada berbagai nama untuk kesalahan di tingkat yang berbeda. Error ditemukan pada level programmer/developer. Fault/bug ditemukan pada level testing. Failure (baik pada software maupun hardware) ditemukan pada level user/client. Defect adalah kecacatan dari spesifikasi produk yang dibangun. Defect ini ditimbulkan dari adanya kekeliruan (fault). Fault merupakan kesalahan pada sebuah baris kode atau lebih. Fault merupakan keadaan perangkat lunak yang disebabkan oleh kesalahan (error). Kesalahan bisa saja tidak tampak pada program dengan indikasi perangkat lunak bekerja sebagaimana harapan developer. Bahkan mungkin untuk waktu yang lama, sebuah baris program bisa saja tidak tersentuh oleh eksekusi sehingga tidak tampak sebagai kekeliruan. Hal yang akan muncul pada saat terjadi kekeliruan adalah kesalahan. Ini adalah tindakan manusia yang menghasilkan hasil yang salah yang menghasilkan kesalahan. Bila kekeliruan dalam baris dieksekusi, perangkat lunak akan melakukan operasi yang tidak sesuai dengan keinginan pengembang sehingga menghasilkan respons yang salah. Kesalahan (error) ini dapat mengakibatkan kegagalan (failure). Failure merupakan penyimpangan perangkat lunak dari hasil yang diharapkan. Hal tersebut merupakan sebuah kejadian. Dalam beberapa kasus, kekeliruan akan muncul sebagai kegagalan. Kegagalan perangkat lunak merupakan sederetan ketidakmampuan perangkat lunak untuk menjalankan fungsinya. Misalnya kesalahan keluaran perangkat lunak, proses eksekusi yang tidak normal, waktu eksekusi dan kapasitas penyimpanan yang membengkak, dan lain sebagainya. Masalah kunci dalam software testing, antara lain:

    Test Selection Criteria / Test Adequacy Criteria (Stopping Rules)

    Test selection criterion adalah alat untuk memilih test case atau menentukan bahwa satu set test case cukup untuk tujuan yang ditentukan. Test adequacy criteria dapat digunakan untuk menentukan kapan pengujian yang cukup akan dilakukan, atau telah selesai.

    Testing Effectiveness / Objectives for Testing

    Testing effectiveness ditentukan dengan menganalisis serangkaian eksekusi program. Pemilihan pengujian yang akan dijalankan dapat dipandu oleh tujuan yang berbeda, hanya berdasarkan tujuan yang ingin dicapai bahwa keefektifan rangkaian pengujian dapat dievaluasi.

    Testing for Defect Discovery

    Dalam pengujian untuk penemuan defect, pengujian yang berhasil adalah salah satu yang menyebabkan sistem gagal. Ini sangat berbeda dari pengujian untuk menunjukkan bahwa perangkat lunak tersebut memenuhi spesifikasi atau sifat yang diinginkan lainnya, dalam hal ini pengujian berhasil jika tidak ada kegagalan yang diamati pada uji kasus yang realistis dan lingkungan uji.

    The Oracle Problem

    Oracle adalah agen manusia atau mekanik yang menentukan apakah suatu program berperilaku benar dalam suatu pengujian dan karenanya menghasilkan sebuah keputusan “pass” atau “fail”. Ada banyak jenis oracle, misalnya, spesifikasi persyaratan yang tidak jelas, model perilaku, dan anotasi kode. Otomatisasi oracle mekanis bisa sulit dan mahal.

    Theoretical and Practical Limitations of Testing

    Teori pengujian memperingatkan untuk tidak memasukkan tingkat kepercayaan yang tidak dapat dibenarkan ke serangkaian pengujian. Sayangnya, hasil pengujian teori yang paling mapan adalah yang negatif, karena mereka menyatakan pengujian apa yang tidak dapat dicapai dibandingkan dengan apa yang sebenarnya dicapai. Kutipan yang paling terkenal dalam hal ini adalah pepatah Dijkstra bahwa “pengujian program dapat digunakan untuk menunjukkan adanya bug, namun tidak pernah menunjukkan ketidakhadiran mereka”. Alasan yang jelas untuk ini adalah bahwa pengujian yang lengkap tidak layak dilakukan dalam perangkat lunak yang realistis. Karena itu, pengujian harus didorong berdasarkan risiko dan dapat dilihat sebagai strategi manajemen risiko.

    The Problem of Infeasible Paths

    Infeasible paths adalah control flow paths yang tidak dapat dilakukan dengan data masukan apapun. Hal ini adalah masalah yang signifikan dalam pengujian berbasis path, terutama dalam derivasi otomatis input uji untuk mengendalikan jalur aliran kontrol.

    Testability

    Istilah ” software testability ” memiliki dua arti yang saling terkait namun berbeda, yakni di satu sisi, ini mengacu pada kemudahan kriteria cakupan yang diberikan dapat memuaskan. Di sisi lain, ia dikalahkan sebagai kemungkinan, mungkin diukur secara statistik, bahwa satu set kasus uji akan menunjukkan kegagalan jika perangkat lunak tersebut rusak. Kedua arti itu penting.

    http://se.ittelkom-pwt.ac.id/software-testing-dalam-lingkup-software-engineering/

  • You must be logged in to reply to this topic.