pengantar pengujian perangkat lunak

5

Click here to load reader

Upload: harindra-w-pradhana

Post on 20-Jun-2015

998 views

Category:

Documents


3 download

DESCRIPTION

Makalah mengenai pengantar pengujian perangkat lunak

TRANSCRIPT

Page 1: Pengantar Pengujian Perangkat Lunak

TUGAS MATA KULIAH REKAYASA PERANGKAT LUNAK

PENGANTAR PENGUJIAN PERANGKAT LUNAKHARINDRA WISNU PRADHANA (L2F004481)

TEKNIK ELEKTRO UNIVERSITAS DIPONEGOROJL Prof Sudharto Tembalang Semarang Indonesia

[email protected]

Abstract: Testing is an important and critical part of the software development process, on whish  the quality and reliability of the delivered product strictly depend. Testing is not limited to the  detection of bugs in the software, it also increases confidence in its proper functioning and assist  with   the   evaluation   of   functional   and   non   functional   properties.   Testing   related   activities  encompass the entire development process and may consume a large part of the effort required for  producing software. In this paper, we provide an overview of software testing from its concept to  its management. Including the definition of software testing, fault, error, and failure concept.Keyword : software testing, testing overview, testing concept, testing management

Pengujian   merupakan   bagian   tak terpisahkan   dari   suatu   perangkat   lunak. Proses   pengujian   juga  mempengaruhi  masa penggunaan suatu perangkat lunak. Semakun rinci proses pengujian yang dilakukan, akan semakun   lama   rentang   waktu   yang diperlukan   antara   maintenance   satu   dan selanjutnya.   Pengujian   perangkat   lunak dilakukan  pada   setiap   tahap  pengembangan hingga pada maintenance perangkat lunak.

Cara   pandang   terhadap   perangkat lunak berkembang menjadi lebih konstruktif. Pengujian   tak   lagi   dipandang   sebagai aktifitas   yang   hanya   dilakukan   setelah pengkodean   perangkat   lunak   usai   dengan batasan   sebagai   pendeteksi   kegagalan perangkat lunak, melainkan sebagai aktifitas yang   menuntun   keseluruhan   proses pengembangan   perangkat   lunak   dan maintenance.   Dan   pengujian   itu   sendiri merupakan   bagian   penting   dari   suatu konstruksi perangkat lunak.

Pengujian perangkat  lunak merupakan aktifitas   menantang   yang   melibatkan beberapa kegiatan yang saling berkaitan satu sama lain. Di awal pengujian hal yang perlu dilakukan adalah pemilihan dan perencanaan pengujian   dengan   memperhatikan   teknik­teknik   pengujian   yang   mungkin   dilakukan terhadap perangkat lunak tersebut. Pemilihan dilakukan dengan metode analisa sederhana yang   efektif   biaya.   Bagaimanapun   juga proses   pemilihan   teknik   pengujian merupakan   titik   tolak   untuk   melangkah   ke aktifitas­aktifitas   berikutnya.   Dari   sinilah 

ditentukan   kemampuan   penguji   untuk menentukan   teknik  atau  metode  yang   tepat sehingga   langkah   demi   langkah   pengujian dapat   dilakukan   terhadap   perangkat   lunak tersebut.

Setelah  metode  atau   teknik  pengujian perangkat   lunak   ditentukan,   kapabilitas penguji   akan   dipacu   untuk   melaksanakan pengujian sesuai ketentuan tadi. Pelaksanaan dapat   pada   sebuah   lingkungan   kerja terkendali   dengan   perangkat   lunak   tersebut dan berbagai atributnya, maupun dalam suatu sistem   lebih   kecil   dimana   perangkat   lunak tersebut   dijalankan.   Setelah   pelaksanaan pengujian,   hal   yang   perlu   dipertimbangkan adalah apakah hasil pengujian ini memenuhi harapan­harapan   penguji   akan   perangkat lunak   tersebut.   Hal   ini   termasuk mengevaluasi   dampak   dari   kekeliruan  pada perangkat   lunak   baik   secara   langsung maupun   tidak   langsung.   Dan   sekaligus melakukan analisa  bagian  mana  yang perlu mengalami   pembenahan.   Langkah   demi langkah   ini   akan   memberikan   tantangan tersendiri bagi penguji.

Konsep pengujian perangkat lunakAda  berbagai   tipe  dan   strategi   dalam 

pengujian   perangkat   lunak.   Bagaimanapun juga   keseluruhan   tipe   dan   strategi   tersebut memiliki   satu   tujuan   yang   sama   yaitu meningkatkan kepercayaan diri pengembang perangkat   lunak   terhadap   fungsi­fungsi perangkat lunaknya. Beranjak dari tujuan ini, suatu   perangkat   lunak   dapat   diuji   untuk 

Page 2: Pengantar Pengujian Perangkat Lunak

menerima berbagai  perlakuan dalam rangka pengujian.   Diantaranya   adalah   melakukan tindakan­tindakan   yang   mungkin   dilakukan pengguna perangkat lunak sesuai kebutuhan pengguna dan karakteristik perangkat lunak. Juga   perhitungan   terhadap   keandalan perangkat lunak selama operaso dilakukan.

Berdasarkan standard IEEE, pengujian perangkat lunak memiliki pengertian aktifitas yang dilakukan untuk mengevaluasi kualitas produk   dan   untuk   mengembangkannya dengan   mengidentifikasi   kelemahan   dan permasalahan   yang   terjadi.   Definisi   secara umum adalah

Software testing consist of the dynamic  verification of the behavior of program on a  finite set of test cases, suitably selected from the   usually   infinite   executions   domain,  against the expected behavior

Yang secara gamblang dapat diartikan sebagai   pengujian   perangkat   lunak   terdiri dari verifikasi dinamis dari perilaku program pada   kasus   pengujian   tertentu.   Batasan   ini ditentukan berdasarkan bagaimana  masukan pada program dan bagaimana keluaran yang diharapkan.

Dari   pengertian   daitas,   diambil beberapa   kata   kunci   dalam   pengujian perangkat lunak antara lain:1. Dinamis.   Pengujian   perangkat   lunak 

dilakukan pada masukan yang bervariasi. Masukan   ini   ditentukan   sebelum pengujian   dilakukan   dengan   batasan­batasan disesuaikan dengan kemampuan perangkat   lunak.   Masukan   tidak   harus sesuatu yang dimungkinkan terjadi pada penggunaan   program   lebih   lanjut, melainkan meliputi keseluruhan batasan yang   dapat   dijangkau   perangkat   lunak dan   dilakukan   sampling   secara   acak untuk proses pengujian.

2. Terbatas.   Meski   pengujian   dilakukan pada perangkat   lunak sederhana hingga rumit   sekalipun,   pengujian   dilakukan dengan   memenuhi   batasan­batasan tertentu   sesuai   kemampuan   program. Batasan   ini   juga   diperlakukan   pada masukan­masukan   yang   dipilih   untuk pengujian.   Tidak   semua   kemungkinan masukan diujikan pada perangkat lunak karena   hal   ini   akan   memakan   waktu 

yang   cukup   panjang   mengingat   begitu banyaknya   kemungkinan   yang   bisa terjadi.   Untuk   mengatasi   hal   ini dilakukan   pemilihan   masukan­masukan pada proses pengujian secara acak yang diperkirakan   mampu   memenuhi kebutuhan pengujian perangkat lunak.

3. Tertentu.   Yaitu   pengujian   dilakukan dengan   batasan   tertentu   disesuaikan dengan harapan akan fungsi, respon, dan karakteristik   perangkat   lunak   tersebut. Hal ini disesuaikan dengan teknik­teknik pengujian   yang   ada.   Pemilihan   kriteria pengujian yang paling  tepat  merupakan hal   yang   kompleks.   Dalam   prakteknya diperlukan analisa resiko pengujian dan pengalaman   terhadap   pengujian­pengujian sejenis.

4. Terharap.   Yaitu   memiliki   keadaan­keadaan   yang   diharapkan   baik   berupa respon sistem terhadap masukan maupun karakteristik   responnya.   Dalam   hal   ini harus   ditentukan   batasan­batasan   hasil pengujian   yang   diharapkan.   Dengan demikian   dapat   diketahui   perangkat lunak   tersebut   telah   memenuhi   hasil pengujian   yang   diharapkan   atau memerlukan   pembenahan   kembali   baik berupa   perbaikan   maupun pengembangan perangkat lunak.

Untuk   benar­benar   memahami   segi­segi   pengujian   perangkat   lunak   perlu diklarifikasi   kondisi   kekeliruan   (fault) kesalahan   (error)   dan   kegagalan   (failure). Meskipun   makna   dari   kata­kata   tersebut sangat   erat   hubungannya,   namun   tetap   tak bisa  disamakan.  Berikut  perbedaan pentung antara ketiga konsep ini.1. Kekeliruan.   Merupakan   kesalahan   pada 

suatu   baris   kode   atau   lebih.   Kesalahan disini   bisa   saja   tidak   nampak   pada program dengan indikasi perangkat lunak bekerja   sebagaimana   harapan pengembang.   Bahkan   mungkin   untuk waktu   yang   lama   suatu   baris   program bisa   saja   tak   tersentuh   oleh   eksekusi sehingga   tetap   tak   nampak   sebagai kekeliruan.

2. Kesalahan.  Hal yang akan muncul pada saat kekeliruan terjadi adalah kesalahan. Bila   kekeliruan   dalam   baris   tadi 

Page 3: Pengantar Pengujian Perangkat Lunak

dieksekusi,   maka   perangkat   lunak   akan beroperasi tidak sesuai dengan keinginan pengembang   sehingga   menghasilkan respon yang salah.

3. Kegagalan.   Dalam   beberapa   kasus kekeliruan   akan   muncul   sebagai kegagalan.   Kegagalan   perangkat   lunak merupakan serentetan ketidak mampuan perangkat   lunak   untuk   menjalankan fungsinya.   Misalnya   kesalahan   output perangkat   lunak,   proses   eksekusi   tidak normal,   waktu   eksekusi   dan   kapasitas pemakaian   penyimpanan   yang membengkak, dan lain­lain.

Dalam   beberapa   kasus,   apa   yang ditemukan   pada   pengujian   perangkat   lunak adalah   kegagalan   sistem.   Analisa   bertahap dan   penelitian   mendalam   diperlukan   untuk memecahkan   apa   saja   penyebab   kegagalan tersebut.   Bagaimanapun   juga   tetap   sulit dalam menemukan ketiga hal diatas sehingga dimungkinkan   kegagalan   teratasi   meski masih menyimpan kesalahan atau kekeliruan pada   program.   Hal   ini   terjadi   karena   pada suatu perangkat lunak yang cukup besar tidak diketahui pasti dimana letak kesalahan hanya dengan data masukan dan keluaran karena di dalamnya   terdapat   fungsi­fungsi   dan prosedur yang saling terkain satu sama lain. Dalam   hal   ini   perlu   ditinjau   lebih   lanjut mengenai   sederetan   masukan   dan   keluaran yang menuntun pada kegagalan sistem.

Pada   akhirnya   sedikit   banyak   suatu kekeliruan dapat lolos dari proses pengujian dan   debug.   Bagaimanapun   juga   suatu kekeliruan   dapat   semakin   mengganggu ataupun   tidak   tergantung   bagaimana   dan seberapa   sering   kemunculannya   pada pengguna terakhir. Oleh karenanya suatu hal yang menjadi ukuran suatu pengujian adalah suap   tidaknya   suatu  perangkat   lunak   untuk digunakan   dengan   keandalan   tersebut. Berbicara   mengenai   keandalan,   hal   ini merupakan  estimasi  peluang  dan  mengukur peluangnya   adalah   dengan   proses   eksekusi program   tanpa   kegagalan   pada   suatu lingkungan   kerja   dengan   batasan   waktu tertentu.   Sehingga   nilai   keandalan   yang diberikan   tergantung   dari   seberapa   sering kegagalan   itu   mungkin   muncul   pada   saat dioperasikan oleh pengguna terakhir.

Gambar 1 Bagan Pengujian Perangkat Lunak

Pada gambar 1 diatas nampak bagian­bagian perangkat lunak yang meliputi dasar­dasar pengujian perangkat lunak, level­level pengujian,   teknik­teknik   atau   metode pengujian,   pengukuran­pengukuran   yang dilakukan pada  perangkat   lunak  dan  proses pengujian.

Manajemen Pengujian Perangkat LunakDalam   mengangkat   konsep­konsep 

pengujian   perangkat   lunak   ke   suatu pengimplementasian   diperlukan   manajemen yang mengatur keseluruhan proses pengujian. Proses   manajemen   pengujian   perangkat lunak   menangani   berbagai   aktifitas   dan langkah­langkah pengujian perangkat   lunak. Diantaranya adalah inisialisasi dan penentuan lingkup   kerja   pengujian   termasuk   di dalamnya   batasan­batasan   pengujian   serta lingkungan   pengujian,   perencanaan pengujian   perangkat   lunak,   eksekusi   dan pengendalian   perangkat   lunak   selama pengujian,   ebaluasi   pengujian   serta peninjauan   kembali   hasil   pengujian,   dan penutup   yaitu   pelaporan   hasil   pengujian diikuti pembenahan bila perlu.

Beberapa   fakta   di   lapangan   tentang pengujian perangkat lunak antara lain: Instansi­instansi   penguji   tidak 

memandang   perlunya   gelar kependidikan   tertentu   pada   penguji­penguji   perangkat   lunak,   melainkan setifikasi­sertifikasi   pengujian   serta pengalaman   yang   menunjukkan kapabilitas   seorang   penguji   perangkat lunak.   Dalam   hal   ini   perusahaan   tidak perlu   membayar   mahal   menyesuaikan gelar­gelar   penguji   namun   tetap 

Page 4: Pengantar Pengujian Perangkat Lunak

mendapatkan   hasil   yang   memuaskan dengan kredibilitas penguji tadi.

Proses   pengujian   memiliki kecenderungan   memandang   perangkat lunak   dari   sisi   kebutuhan   pengguna. Sehingga   takaran   yang   diukur   adalah kesesuaian   dan   kemampuan   perangkat lunak   memenuhi   kebutuhan   pengguna akhir.   Dalam   hal   ini   tidak   melakukan analisa   secara   menyeluruh   melaiknan hanya   sebatas   memenuhi   kebutuhan akan fungsi perangkat lunak tersebut.

Dua hal diatas menimbulkan pemikiran berbeda   dalam   hal   pengujian   perangkat lunak. Meskipun secara fundamental banyak sekali   diungkapkan   bagian­bagian   yang penting   dan   saling   berkesinambungan mengenai  pengujian perangkat  lunak,  akhir­akhir   ini   penguji   tidak   lagi   mencari kekeliruan   maupun   kesalahan   dalam   suatu perangkat lunak melainkan hanya cenderung memastikan   bahwa   perangkat   lunak   yang diuji   itu   bekerja   sesuai   harapan.   Hal   ini disebabkan beberapa hal diantaranya: Manajer   tidak   memiliki   konsep   yang 

kuat   mengenai   upaya­upaya   pengujian perangkat lunak. Sebagian bahkan tidak terlalu   memperdulikan   hasil   dari pengujian   perangkat   lunak   tersebut selama   fungsi   praktis   dan   kebutuhan perangkat lunak tersebut terpenuhi.

Penguji   tidak   dapat   menyentuh   suatu perangkat lunak hingga perangkat lunak tersebut benar­benar jadi dan dipasarkan. Dalam hal ini penguji tidak mengetahui langkah­langkah   pengembangan perangkat lunak tersebut sehingga tidak dapat   mengestimasi   bagian   mana   yang mungkin   mengandung   kekeliruan pemrograman.   Penguji   justru menghadapi perangkat lunak jadi secara utuh sehingga kebanyakan metode yang digunakan   hanya   sebatas   menguji dengan   masukan   secara   acak   dan berharap   menemukan   kegagalan perangkat lunak.

Banyaknya   penguji   tidak   sebanding dengan   banyaknya   pengembang perangkat   lunak.   Sehingga dimungkinkan   satu   penguji   menangani beberapa perangkat   lunak dari  berbagai 

pengembang.   Secara   logis   dapat dikatakan   waktu   pengujian   akan   jauh lebih   singkat   dibanding   waktu peracangan   perangkat   lunak   tersebut. Pada   dasarnya   proses   pengujian   justru memerlukan   waktu   lebih   panjang dibanding proses pengembangan karena pengujian   perlu   membongkar   suatu perangkat lunak dan mengujinya bagian demi  bagian  dan   juga  menguji   sebagai satu kesatuan utuh. Dalam hal ini banyak bagian   dan   langkah   pengujian   yang harus   dihilangkan   demi   pemenuhan target waktu pengujian.

Beberapa   permasalahan   diatas   akhir­akhir   ini   justru   dianggap   hal   biasa   dan menjadi   kebiasaan   di   dunia   rekayasa perangkat   lunak.   Bahkan   tak   jarang   proses rekayasa   pperancangan   perangkat   lunak dianggap   telah   memenuhi   pengujian, sehingga proses pengujian lebih lanjut tidak lagi   diperlukan.   Hal   ini   merupakan   suatu pemikiran   yang   harus   diubah.   Hal   ini berlangsung   selama   ini   karena   proses pengujian biasanya tidak terlalu diperhatikan oleh pihak­pihak yang berhubungan dengan perangkat   lunak   tersebut   baik   di   sisi pengembang   maupun   pengguna.   Untuk   itu perlu dilakukan pendekatan dari kedua belah pihak   dalam   hal   perangkat   lunak.   Pihak pengembang   sebaiknya   menawarkan   opsi­opsi   pengujian   pada   pengguna   sehingga perangkat lunak buatannya memiliki tingkat keandalan lebih. Sedangkan pihak pengguna sebaiknya memastikan perangkat lunak yang digunakannya   melalui   masa   pengujian sehingga   selama   penggunaan   dan pengoperasiannya   tidak   banyak   menjumpai kegagalan   meski   kemungkinan   itu   masih tetap ada.

Sementara   bagi   pihak   penguji perangkat   lunak   dengan   berbagai keterbatasan baik waktu pengujian dan akses terhadap   lingkungan   kerja   perangkat   lunak yang   sebenarnya,   penulis   memberika beberapa saran diantaranya sebagai berikut: Prioritas   pengujian.   Dalam   proses 

pengujian   sebaiknya   disusun   prioritas­prioritas pengujian yang matang. Hal ini menjadi   tingkatan­tingkatan   kebutuhan dalam   hal   pengujian.   Mengingat   waktu 

Page 5: Pengantar Pengujian Perangkat Lunak

yang   terbatas,   tidak   semua   tingkatan dalam daftar prioritas ini akan terlaksana. Mengingat ada hal yang harus dilakukan maka perlu adanya prioritas agar hal­hal penting tadi tidak terlewatkan.

Studi   keperluan   pengujian.   Dalam menentukan prioritas, diperlukan analisa mengenai   perangkat   lunak   yang   akan diuji.   Bagaimana   karakteristiknya,   apa bagian­bagiannya,   serta   siapa   yang berkompetensi di bidang tersebut. Suatu tim   penguji   perangkat   lunak   sebaiknya tiap­tiap   personel   diposisikan   di bidangnya   sehingga  keseluruhan  bagian perangkat   lunak   yang   diuji   ditangani pihak yang tepat.

Pelatihan penguji. Adanya pelatihan dan pengalaman yang cukup diperlukan bagi tiap­tiap   personel   dalam   suatu   tim penguji.   Hal   ini   diperlukan   mengingat semakin   berkembangnya   perangkat lunak.   Penguji   perlu   mengimbangi perkembangan  perangkat   lunak   tersebut dengan kemampuan diri. Bahkan penguji seharusnya   selangkah   di   depan kemampuan   pengembang   perangkat lunak   tersebut   sehingga   lebih   tahu tentang bagaimana suatu perangkat lunak tersebut   dirancang   dan   bagian­bagian mana   yang   memiliki   peluang   besar terjadi   kekeliruan   dengan   tetap memperhatikan bagian lain.

Prinsip  pengembangan.   Hasil   pengujian sebenarnya   bukan   alasan   untuk menyerang suatu pengembang perangkat lunak,   melainkan   utnuk   membenahi perangkat   lunak   tersebut,   memperbaiki kekeliruannyam   dan   mengembangkan fungsi   yang   dapat   dilakukan.   Sehingga proses   pengujian   diharapkan   mampu mendampingi   proses   perencanaan   dan perancangan   perangkat   lunak   menjadi lebih sempurna.

Evaluasi   dan   pelaporan.   Hasil   dari pengujian   pada   dasarnya   untuk kepentingan   pengguna,   sehingga diperlukan pelaporan dan ebaluasi ulang terhadap   pengujian.   Pelaporan   ini sebaiknya   menggunakan   tata   bahasa yang   disesuaikan   dengan   pengguna sehingga   mudah   dipahami   dan   dapat diketahui   pasti   bagaimana   proses pengujian dan hasilnya.

Daftar Pustaka

[1.]Berard,   Edward.  Bringing   Testing   Into the   Fold.   R.S.Pressman   &   Associates, Inc. http://www.rspa.com

[2.]Bertolino, Antonio dan Eda Marchetti. A Brief Essay on Software Testing. _____

[3.]Coward, P David.  A Review of Software Testing.   Departement   of   Computer Studies,   Bristol   Polytechnic,   Bristol, 1988

[4.]_____.  Guide   to   the   Software  Engineering   Body   of  Knowledge,   IEEE Computer Society, 2004

HARINDRA WISNU P  (L2F004481).Dilahirkan   di   Blora  20 tahun   yang   lalu. Menempuh   pendidikan dari   sekolah   dasar sampai   sekolah menengah   pertama   di Blora   dan   melanjutkan sekolah   menengah   atas di Semarang. Dari tahun 

2004 sampai saat   ini  sedang menyelesaikan studi   Strata­1   di   Jurusan   Teknik   Elektro Fakultas   Teknik   Universitas   Diponegoro Semarang,   konsentrasi   Informatika   dan Komputer.

Semarang, 19 Juni 2007