March 8, 2019 | Author: Harindra W Pradhana | Category: N/A
Makalah mengenai pengantar pengujian perangkat lunak...
TUGAS MATA KULIAH REKAYASA PERANGKAT LUNAK
PENGANTAR PENGUJIAN PERANGKAT LUNAK HARINDRA WISNU PRADHANA (L2F004481) TEKNIK ELEKTRO UNIVERSITAS DIPONEGORO JL 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 with the evalua evaluatio tion n of functi functiona onall and non functio functional nal proper propertie ties. s. Testing Testing relate related d activit activities ies 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 Pengujian merupakan merupakan bagian tak terpisahkan dari suatu perangkat lunak. Proses Proses pengujian pengujian juga mempengar mempengaruhi uhi masa penggunaan suatu perangkat lunak. Semakun rinci proses pengujian yang dilakukan, akan semaku semakun n lama lama rentang rentang waktu waktu yang yang diperlukan antara maintenance satu dan selanjutnya selanjutnya.. Pengujian Pengujian perangkat 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 batasan sebagai sebagai pendeteksi pendeteksi kegagalan kegagalan perangkat lunak, melainkan sebagai aktifitas yang yang menunt menuntun un keselu keseluruh ruhan an proses proses pengem pengemban bangan gan perang perangkat kat lunak lunak dan maintenance. Dan pengujian itu sendiri merupakan merupakan bagian penting penting dari suatu konstruksi perangkat lunak. Pengujian perangkat lunak merupakan aktifi aktifitas tas menanta menantang ng yang yang meliba melibatka tkan n beberapa kegiatan yang saling berkaitan satu sama lain. Di awal pengujian hal yang perlu dilakukan adalah pemilihan dan perencanaan pengujian dengan memperhatikan teknikteknik teknik penguj pengujian ian yang yang mungk mungkin in dilaku dilakukan kan terhadap perangkat lunak tersebut. Pemilihan dilakukan dengan metode analisa sederhana yang efektif biaya. Bagaimanapun juga proses proses pemilih pemilihan an teknik teknik penguj pengujian ian merupa merupakan kan titik titik tolak tolak untuk untuk me melan langka gkah h ke aktifitas-aktifitas berikutnya. Dari sinilah
ditentukan ditentukan kemampua kemampuan n penguji penguji untuk menentukan teknik atau metode yang tepat sehing sehingga ga langka langkah h demi demi langka langkah h penguj pengujian ian dapat dilakukan terhadap perangkat perangkat lunak tersebut. Setelah metode atau teknik pengujian perangkat perangkat lunak ditentukan, ditentukan, kapabilitas kapabilitas penguji akan dipacu untuk melaksanakan pengujian sesuai ketentuan tadi. Pelaksanaan dapat dapat pada pada sebuah sebuah lingku lingkunga ngan n kerja kerja terkendali terkendali dengan dengan perangkat perangkat lunak tersebut tersebut dan berbagai atributnya, maupun dalam suatu sistem sistem lebih lebih kecil kecil dimana dimana perang perangkat kat lunak lunak tersebut dijalankan. Setelah pelaksanaan pengujian, pengujian, hal yang perlu dipertimbangka dipertimbangkan n adalah apakah hasil pengujian ini memenuhi harapan-harapan penguji akan perangkat luna lunak k ters terseb ebut ut.. Hal Hal ini ini term termas asuk uk 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 lunak Ada berbagai tipe dan strategi dalam pengujian perangkat lunak. Bagaimanapun juga keseluruhan keseluruhan tipe dan strategi strategi tersebut tersebut memiliki satu tujuan yang sama yaitu meningkatkan kepercayaan diri pengembang perangkat perangkat lunak terhadap terhadap fungsi-fu fungsi-fungsi ngsi perangkat lunaknya. Beranjak dari tujuan ini, suatu perangkat lunak dapat diuji untuk
menerima berbagai perlakuan dalam rangka pengujian. Diantaranya adalah melakukan tindakan-ti tindakan-tindaka ndakan n yang mungkin mungkin dilakukan dilakukan pengguna perangkat lunak sesuai kebutuhan pengguna dan karakteristik perangkat lunak. Juga perhitungan perhitungan terhadap terhadap keandalan keandalan perangkat lunak selama operaso dilakukan. Berdasarkan standard IEEE, pengujian perangkat lunak memiliki pengertian aktifitas yang dilakukan untuk mengevaluasi kualitas produk produk dan untuk mengemban mengembangkann gkannya ya dengan mengidentifikasi kelemahan dan permasalaha permasalahan n yang terjadi. terjadi. Definisi Definisi secara 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 pada kasus kasus penguj pengujian ian terten tertentu. tu. Batasa Batasan n ini ditentukan berdasarkan bagaimana masukan pada program dan bagaimana keluaran yang diharapkan. Dari Dari penger pengertian tian daitas daitas,, diambi diambill beberapa kata kunci dalam pengujian perangkat lunak antara lain: 1. Dinamis. Pengujian perangkat lunak dilakukan pada masukan yang bervariasi. Masuka Masukan n ini ditent ditentuka ukan n sebelu sebelum m pengujian dilakukan dengan batasanbatasan disesuaikan dengan kemampuan perang perangkat kat lunak. lunak. Masuk Masukan an tidak tidak harus harus sesuatu yang dimungkinkan terjadi pada penggunaan penggunaan program lebih lanjut, lanjut, melainkan meliputi keseluruhan batasan yang yang dapat dapat dijang dijangkau kau perang perangkat kat lunak lunak dan dilakukan sampling secara acak untuk proses pengujian. 2. Terbatas. Terbatas. Meski pengujian pengujian dilakukan dilakukan pada perangkat lunak sederhana hingga rumit sekalipun, pengujian dilakukan dengan memenuhi memenuhi batasan-ba batasan-batasan tasan 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 yang cukup cukup panjan panjang g mengin mengingat gat begitu begitu banyaknya kemungkinan yang bisa terjad terjadi. i. Untuk Untuk me menga ngatas tasii hal ini dilakukan dilakukan pemilihan pemilihan masukan-m masukan-masuka asukan n pada proses pengujian secara acak yang diperk diperkira irakan kan mampu ma mpu memenu memenuhi hi kebutuhan pengujian perangkat lunak. 3. Tertentu. Tertentu. Yaitu pengujian dilakukan dilakukan dengan batasan tertentu disesuaikan dengan harapan akan fungsi, respon, dan karakterist karakteristik ik perangkat perangkat lunak tersebut. tersebut. Hal ini disesuaikan dengan teknik-teknik pengujian pengujian yang ada. Pemilihan Pemilihan kriteria pengujian yang paling tepat merupakan hal yang kompleks. kompleks. Dalam prakteknya prakteknya diperlukan analisa resiko pengujian dan pengal pengalama aman n terhad terhadap ap penguj pengujian ian-pengujian sejenis. 4. Terhar Terharap. ap. Yaitu Yaitu memilik memilikii keadaa keadaannkeadaa keadaan n yang yang dihara diharapka pkan n baik baik berupa berupa respon sistem terhadap masukan maupun karakterist karakteristik ik responnya. responnya. Dalam hal ini harus ditentukan ditentukan batasan-ba batasan-batasan tasan hasil pengujian yang diharapkan. Dengan demikian dapat diketahui perangkat lunak tersebut telah memenuhi hasil penguj pengujian ian yang yang dihara diharapka pkan n atau atau memerluka memerlukan n pembenahan pembenahan kembali kembali baik beru berup pa perba erbaik ikan an maupu aupun n pengembangan perangkat lunak. Untuk benar-benar memahami segisegi pengujian perangkat lunak perlu (fault ) diklarifika diklarifikasi si kondisi kondisi kekeliruan kekeliruan fault failure). kesala kesalahan han (error ) dan dan kega kegaga gala lan n ( failure Meskipun makna dari kata-kata tersebut sangat sangat erat erat hubung hubungann annya, ya, namun namun tetap tetap tak bisa disamakan. Berikut perbedaan pentung antara ketiga konsep ini. 1. Kekeliruan Kekeliruan.. Merupakan Merupakan kesalahan kesalahan pada suatu suatu baris baris kode kode atau atau lebih. lebih. Kesala Kesalahan han disini bisa saja tidak nampak pada program dengan indikasi perangkat lunak beke bekerj rjaa seba sebaga gaim iman anaa hara harapa pan n pengembang. Bahkan mungkin untuk waktu waktu yang yang lama lama suatu suatu baris baris progra program m bisa saja tak tersentuh oleh eksekusi sehingga tetap tak nampak sebagai kekeliruan. 2. Kesala Kesalahan han.. Hal yang yang akan akan muncu muncull pada saat kekeliruan terjadi adalah kesalahan. Bila Bila kekeli kekelirua ruan n dalam dalam baris baris tadi tadi
dieksekus dieksekusi, i, maka perangkat lunak akan beroperasi tidak sesuai dengan keinginan pengemban pengembang g sehingga sehingga menghasil menghasilkan kan respon yang salah. 3. Kegaga Kegagalan lan.. Dalam Dalam bebera beberapa pa kasus kasus kekelir kekeliruan uan akan akan muncu muncull sebaga sebagaii kegagalan. Kegagalan perangkat lunak merupakan serentetan ketidak mampuan perangkat lunak untuk menjalankan fungsinya. Misalnya kesalahan output perangkat perangkat lunak, lunak, proses proses eksekusi eksekusi tidak normal, normal, waktu eksekusi dan kapasitas kapasitas pema pemaka kaian ian peny penyim impa pana nan n yang yang membengkak, dan lain-lain. Dalam beberapa kasus, apa yang ditemukan ditemukan pada pengujian pengujian perangkat perangkat lunak adalah kegagalan sistem. sistem. Analisa Analisa bertahap bertahap dan penelitian penelitian mendalam diperlukan untuk memecahkan memecahkan apa saja penyebab penyebab kegagalan kegagalan tersebut. Bagaimanapun juga tetap sulit dalam menemukan ketiga hal diatas sehingga dimungkinkan kegagalan teratasi meski masih menyimpan kesalahan atau kekeliruan pada pada progra program. m. Hal ini terjad terjadii karena karena pada suatu perangkat lunak yang cukup besar tidak diketahui pasti dimana letak kesalahan hanya dengan data masukan dan keluaran karena di dalamn dalamnya ya terdap terdapat at fungsi fungsi-fu -fungs ngsii dan prosedur yang saling terkain satu sama lain. Dalam hal ini perlu ditinjau lebih lanjut mengenai mengenai sederetan sederetan masukan masukan dan keluaran keluaran yang menuntun pada kegagalan sistem. Pada akhirnya sedikit banyak suatu kekeliruan dapat lolos dari proses pengujian dan debug. Bagaimanapun juga suatu kekeliruan kekeliruan dapat semakin semakin menggangg mengganggu u ataupun tidak tergantung bagaimana dan seberapa seberapa sering sering kemunculann kemunculannya ya pada pengguna terakhir. Oleh karenanya suatu hal yang menjadi ukuran suatu pengujian adalah suap tidaknya suatu perangkat lunak untuk digunakan digunakan dengan dengan keandalan keandalan tersebut. tersebut. Berbicara mengenai keandalan, hal ini merupakan merupakan estimasi estimasi peluang peluang dan mengukur mengukur peluangnya peluangnya adalah dengan proses proses eksekusi eksekusi program program tanpa kegagalan kegagalan pada suatu lingkungan kerja dengan batasan waktu tertentu. Sehingga nilai keandalan yang diberikan tergantung dari seberapa sering kegaga kegagalan lan itu mungk mungkin in muncul muncul pada pada saat saat dioperasikan oleh pengguna terakhir.
Gambar 1 Bagan Pengujian Perangkat Lunak Pada gambar 1 diatas nampak bagianbagian perangkat lunak yang meliputi dasardasar pengujian perangkat lunak, level-level pengujian, pengujian, teknik-tekn teknik-teknik ik atau metode metode pengujian, pengujian, pengukuran pengukuran-pengu -pengukuran kuran yang dilakukan pada perangkat lunak dan proses pengujian. Manajemen Pengujian Perangkat Lunak Dalam mengangkat konsep-konsep pengu pengujian jian perang perangkat kat lunak lunak ke suatu suatu pengimplem pengimplementas entasian ian diperlukan diperlukan manajemen 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 lingku lingkup p kerja kerja penguj pengujian ian termas termasuk uk di dalamnya batasan-batasan pengujian serta lingku lingkunga ngan n penguj pengujian ian,, perenc perencana anaan an pengujian perangkat lunak, eksekusi dan pengendali pengendalian an perangkat perangkat lunak selama selama pengu pengujian jian,, ebalua ebaluasi si penguj pengujian ian serta 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: Inst Instan ansi si-in -inst stan ansi si peng penguj ujii tidak tidak mem eman and dang ang perl perlu unya nya gela gelarr kependidikan tertentu pada pengujipenguji perangkat lunak, melainkan setifikasisetifikasi-serti sertifikas fikasii pengujian pengujian serta pengal pengalama aman n yang yang menun me nunjuk jukkan kan kapabilitas seorang penguji perangkat lunak. lunak. Dalam Dalam hal ini perus perusaha ahaan an tidak tidak perlu membayar mahal menyesuaikan gelargelar-gel gelar ar pengu penguji ji namun namun tetap tetap
mendapatkan hasil yang memuaskan dengan kredibilitas penguji tadi.
Pro Proses ses peng penguj ujia ian n mem me milik ilikii kecenderungan memandang perangkat lunak dari sisi kebutuhan pengguna. Sehingga takaran yang diukur adalah kesesuaian kesesuaian dan kemampua kemampuan n perangkat perangkat lunak memenuhi kebutuhan pengguna akhir. akhir. Dalam Dalam hal ini tidak tidak melaku melakukan kan 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 penting dan saling saling berkesinam berkesinambunga bungan n mengenai pengujian perangkat lunak, akhirakhir ini penguji tidak lagi mencari kekeliruan kekeliruan maupun maupun kesalahan 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 mengenai upaya-upay upaya-upayaa pengujian pengujian perangkat lunak. Sebagian bahkan tidak terlalu terlalu me mempe mperdu rdulik likan an hasil hasil dari 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-lan -langka gkah h pengem pengemban bangan gan perangkat lunak tersebut sehingga tidak dapat mengestimasi mengestimasi bagian mana yang mungki mungkin n menga me ngandu ndung ng kekelir kekeliruan uan pemr pemrog ogra rama man. n. Peng Penguj ujii just justru ru menghadapi perangkat lunak jadi secara utuh sehingga kebanyakan metode yang digunakan digunakan hanya sebatas menguji menguji dengan masukan secara acak dan berhar berharap ap menemu menemukan kan kegaga kegagalan lan perangkat lunak. Banyaknya penguji tidak sebanding dengan dengan banyak banyaknya nya pengem pengemban bang g pera perang ngk kat lun lunak. ak. Sehin ehingg ggaa dimungkinka dimungkinkan n satu penguji penguji menangani menangani beberapa perangkat lunak dari berbagai
pengem pengemban bang. g. Secara Secara logis logis dapat dapat dikata dikatakan kan waktu waktu pengu pengujian jian akan akan jauh jauh lebih lebih sing singka katt diba diband ndin ing g wakt waktu u peracangan perangkat lunak tersebut. Pada dasarnya proses proses pengujian pengujian justru justru memerluka memerlukan n waktu lebih panjang 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 Beberapa permasalah permasalahan an diatas diatas akhirakhir ini justru dianggap hal biasa dan menjadi menjadi kebiasaan kebiasaan di dunia rekayasa perangkat lunak. Bahkan tak jarang proses rekayasa pperancangan perangkat lunak diangg dianggap ap telah telah memenu memenuhi hi penguj pengujian ian,, 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 pengemban pengembang g maupun maupun pengguna. pengguna. Untuk itu perlu dilakukan pendekatan dari kedua belah pihak dalam hal perangkat lunak. Pihak pengembang sebaiknya menawarkan opsiopsi pengujian pada pengguna sehingga perangkat lunak buatannya memiliki tingkat keandalan lebih. Sedangkan pihak pengguna sebaiknya memastikan perangkat lunak yang digunakann digunakannya ya melalui melalui masa pengujian pengujian sehi sehing ngga ga sela selama ma peng penggu guna naan an dan dan pengoperas pengoperasiannya iannya tidak banyak banyak menjumpa menjumpaii kegagalan meski kemungkinan itu masih tetap ada. Semen Sementar taraa bagi bagi pihak pihak penguj pengujii pera perang ngka katt luna lunak k deng dengan an berb berbag agai ai keterbatasan baik waktu pengujian dan akses terhadap terhadap lingkungan lingkungan kerja perangkat perangkat lunak yang sebenarnya sebenarnya,, penulis penulis memberika memberika beberapa saran diantaranya sebagai berikut: Prioritas pengujian. pengujian. Dalam proses Prioritas pengujian sebaiknya disusun prioritasprioritas pengujian yang matang. Hal ini menjadi tingkatan-tingkatan kebutuhan dalam hal pengujian. pengujian. Mengingat Mengingat waktu
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 Studi keperluan keperluan pengujian. pengujian. Dalam menentukan prioritas, diperlukan analisa mengenai perangkat lunak yang akan diuji. Bagaimana karakteristiknya, apa bagian-bag bagian-bagianny iannya, a, serta siapa yang berkompetensi di bidang tersebut. Suatu tim penguji penguji perangkat perangkat lunak sebaiknya sebaiknya tiap-t tiap-tiap iap person personel el diposi diposisik sikan an di bidangnya bidangnya sehingga sehingga keseluruha keseluruhan n bagian 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 penguj penguji. i. Hal ini diperl diperluka ukan n mengin mengingat gat semakin semakin berkemban berkembangnya gnya perangkat perangkat lunak. lunak. Penguji Penguji perlu mengimban mengimbangi gi perkemban perkembangan gan perangkat perangkat lunak tersebut tersebut dengan kemampuan diri. Bahkan penguji seharu seharusny snyaa selang selangkah kah di depan depan kemampua kemampuan n pengembang pengembang perangkat perangkat lunak tersebut sehingga lebih tahu tentang bagaimana suatu perangkat lunak tersebut dirancang dan bagian-bagian mana yang memiliki peluang besar terjad terjadii kekelir kekeliruan uan dengan dengan tetap tetap memperhatikan bagian lain. Prinsip Prinsip pengembang pengembangan. an. Hasil Hasil pengujian pengujian sebena sebenarny rnyaa bukan bukan alasan alasan untuk untuk menyerang suatu pengembang perangkat lunak, melainkan utnuk membenahi perangkat perangkat lunak tersebut, tersebut, memperba memperbaiki iki kekeliruannyam dan mengembangkan fungsi fungsi yang dapat dilakukan. dilakukan. Sehingga proses pengujian diharapkan mampu mendampingi proses perencanaan dan perancangan perangkat lunak menjadi lebih sempurna.
Evaluasi dan pelaporan. Hasil dari penguj pengujian ian pada pada dasarn dasarnya ya untuk untuk kepenti kepentinga ngan n penggu pengguna, na, sehing sehingga ga diperlukan pelaporan dan ebaluasi ulang terhadap terhadap pengujian. pengujian. Pelaporan Pelaporan ini sebaiknya menggunakan tata bahasa yang disesuaikan dengan pengguna sehingga mudah dipahami dan dapat diketa diketahui hui pasti pasti bagaim bagaimana ana proses proses pengujian dan hasilnya. Daftar Pustaka
[1.] Berard, Bringing Testing Testing Into Berard, Edward. Edward. Bringing the the Fold Fold . R.S.Pr R.S.Press essman man & Assoc Associate iates, s, 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. Departeme Departement nt of Computer Computer Studies, Bristol Polytechnic, Bristol, 1988 [4.] _____. Guid Guidee to the the Soft Softwa ware re Engineering Engineering Body of Knowledge Knowledge, IEEE Computer Society, 2004 HARINDRA WISNU P (L2F004481). Dilahi Dilahirka rkan n di Blora Blora 20 tahu tahun n yang yang lalu lalu.. Menempuh pendidikan dari dari seko sekola lah h dasa dasarr 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, Semarang, konsentras konsentrasii Informatik Informatikaa dan Komputer.
Semarang, 19 Juni 2007