Apa itu Software Testing? Ada dua pendapat yang menjelaskan pengertian dari Software Testing.
Testing lebih dari sebuah pemahaman tentang debugging. Tujuan dari Software Testing dapat berupa quality assurance, verification and validation, dan reliability estimation. Dua area besar dalam testing adalah correctness testing dan reliability testing. Hal-hal utama yang harus dipertimbangkan dalam menjalankan testing adalah budget, time, dan quality.
Software tidak seperti kebanyakan physical process yang lainnya, dimana input diterima dan ouput akan dihasilkan. Software memiliki kecendrungan untuk mengalami kesalahan disaat timbul kekompleksitasannya. Tidak seperti kebanyakan physical process, kesalahan yang sering terjadi dalam pengembangan software terletak pada proses desain(design) daripada pada saat pengkodean.
Software bugs dapat muncul pada setiap pengembangan software module dengan ukuran yang moderate, bukan karena kekuranghati-hatian dan kurangnya programmer responsibilities, melainkan karena kekompleksitasannya software tersebut dan keterbatasannya manusia untuk mengatur kekompleksitasan.
Sebuah metodologi yang menarik dalam software testing adalah sama halnya dengan penggunaan pestisida, yang lebih dikenal dengan nama Pesticide Paradox. Segala metode yang Anda gunakan untuk mencegah ataupun mencari bugs pada sebuah software dapat menimbulkan bugs halus kepada metode-metode lainnya yang tidak efektif. Sekali lagi walaupun telah dilakukan pengujian terhadap sebuah software, namun tidak dapat menjamin bahwa software tersebut akan 100% aman, hal ini karena adanya “Complexity Barrier” [Beizer90].
Software complexity(and therefore that of bugs) grows to the limits of our ability to manage that complexity.
Apa tujuan dari Software Testing? Apakah tujuan utama dari software testing adalah untuk menjamin bahwa software yang dibangun bebas dari error atau kesalahan. Jika tujuan utama Anda seperti yang saya katakan sebelumnya, Anda telah salah besar dalam melakukan testing. Seperti yang telah diuraikan sebelumnya bahwa dengan software testing Anda tidak dapat menjamin bahwa software Anda tersebut akan bebas dari bugs. Yang Anda dapat pastikan bahwa error dan bugs yang ditemukan sebelumnya telah diperbaiki dan tidak muncul lagi untuk kedepannya.
Tujuan utama dari Software Testing adalah:
Seperti penggunaan komputer dan software yang digunakan pada aplikasi-aplikasi kritis, bugs yang terjadi dapat keparahan. Jika timbulnya bugs dapat menyebabkan kerugian besar baik secara materi maupun jiwa. Bugs pada sebuah sistem yang kritis telah menyebabkan kecelakaan pesawat terbang, misi ulang alik untuk manjadi kacau, penghentian perdagangan di pasar saham, dan lebih buruknya bug dapat membunuh. Bugs dapat menyebabkan bencana. [Bugs] Dalam dunia yang menerapkan komputerisasi, kualitas dan kehandalan software terkait dengan masalah hidup dan mati.
Quality berarti kesesuaian dengan persyaratan desain yang telah ditentukan. Salah satu hal yang harus terpenuhi dalam pencapaian kuliatas jika persyaratan minimum kualitas, berarti melakukan seperti yang dipersyaratkan dalam keadaan tertentu, sudah terpenuhi. Debugging, pandangan sempit tentang pengujian perangkat lunak, dilakukan secara besar-besaran untuk menemukan cacat desain oleh programmer. Ketidaksempurnaan sifat manusia hampir mustahil untuk membuat program yang cukup kompleks benar untuk pertama kalinya. Menemukan kesalahan dan membuat mereka terselesaikan [Kaner93], adalah tujuan dari fase debugging pada pemrograman.
Kita tidak dapat menguji kualitas secara langsung, tetapi kita dapat menguji faktor-faktor yang terkait untuk menjadikan kualitas tersebut terlihat. Kualitas memiliki tiga set faktor – functionality, engineering, and adaptability. Ketiga kumpulan faktor tersebut dapat dianggap sebagai dimensi dalam software area. Perhatikan tabel dibawah ini.
| Functionality (exterior quality) | Engineering (interior quality) | Adaptability (future quality) |
| Correctness | Efficiency | Flexibility |
| Reliability | Testability | Reusability |
| Usability | Documentation | Maintainability |
| Integrity | Structure |
Pengujian dengan tujuan untuk memvalidasi kerja produk dinamakan tes yang bersih, atau tes positif. Kekurangannya adalah bahwa hal itu hanya dapat memvalidasi bahwa software itu bekerja untuk test cases tertentu. Sejumlah test case yang terbatas tidak dapat memvalidasi bahwa software itu bekerja untuk semua situasi dan kondisi. Sebaliknya, dengan satu pengujian saja gagal cukup untuk menunjukkan bahwa software tidak berfungsi. Tes kotor, atau tes negatif, mengacu pada tes bertujuan melumpuhkan software, atau menunjukkan bahwa software tersebut tidak bekerja.
Software reliability memiliki hubungan penting dengan banyak aspek, termasuk struktur, dan jumlah pengujian telah ditujukan. Berdasarkan profil operasional, pengujian dapat digunakan sebagai metode sampling statistik untuk memperoleh data kegagalan untuk tujuan estimasi keandalan.
Softwrae testing tetap menjadi sebuah seni, karena kita tidak dapat menjadikannya sebuah ilmu pengetahuan. Kita masih menggunakan teknik pengujian yang sama ditemukan 20-30 tahun yang lalu, beberapa di antaranya dibuat metode atau heuristik daripada metode teknik yang baik. Software pengujian dapat begitu mahal terutama di tempat-tempat yang nyawa manusia dipertaruhkan. Kita tidak pernah bisa yakin bahwa suatu bagian dari software benar. Kita tidak pernah bisa memastikan bahwa spesifikasi tersebut sudah benar. Tidak ada sistem yang dapat memverifikasi suatu program sudah benar. Sebab kita juga tidak pernah yakin bahwa sistem verifikasi tersebut benar-benar baik.
Hal-hal yang konsep penting dalam melakukan pengujian perangkat lunak.
Blackbox Testing adalah sebuah metode pengujian dimana data pengujian diperoleh dari functional requirements yang spesifik tanpa memperhatikan struktur akhir program. [Perry90] Hal ini juga termasuk pengujian data driven, input/output driven [Myers79], atau requirements-based [Hetzel88]. Karena hanya fungsi software module yang diperhatikan, blackbox testing lebih mengacu pada functional testing – metode pengujian ini lebih menekankan pada pengeksekusian fungsi dan pemeriksaan kesesuaian dari data input dan output. [Howden87]. Pada peengujian dengan blackbox testing, seorang penguji tidak akan secara langsung berhubungan dengan control flow, data flow, dan code program. Seorang penguji memperhatikan kesesuaian antara output dari input yang diberikan. Dari mana kita memperoleh test cases? Segala test cases yang digunakan pada setiap pengujian diperoleh dari spesifikasi.
Sebuah rencana pengujian yang baik tidak akan hanya menggunakan blackbox testing, tetapi juga whitebox testing, dan kombinasi dari keduanya.
Sangat berbeda jauh dengan yang namanya blackbox testing, sebuah software dipandang dari sebuah kotak putih atau kotak kaca yang berarti segala sesuatu yang terdapat didalam kotak tersebut sangat jelas kepada yang melihatnya. Rencana pengujian dibuat sesuai dengan detail dari implementasi software seperti bahasa pemrograman, logika, dan style. Test cases diperoleh dari struktur program. Whitebox testing juga seing disebut glassbox testing, logic-driven testing [Myers79] atau design-based testing [Hetzel88].
Pada pengujian dengan menggunakan whitebox testing, seorang penguji harus menyentuh control flow, data flow, dan code program untuk menguji software tersebut. Pengujian dengan whitebox testing, seorang penguji paling tidak harus mengeksekusi setiap baris kode program paling tidak satu kali.
Pembagian tetsing dapat dikelompokkan kedalam beberapa bagian:
Pengujian secara potensial tak terbatas. Kita tidak dapat secara terus menerus mencari segala bugs yang belum ditemukan dan yang belum dibuang. Hal ini sangat tidak mungkin. Pada saat yang bersamaan kita harus mengantarkan software tersebut. Nah sekarang pertanyaannya kapan ???
Kapan kita harus berhenti melakukan pengujian? Ketika keandalan yang dimaksud telah memenuhi requirement yang dibutuhkan, atau keuntungan dari pengujian tersebut sudah tidak dapat lagi menyeimbangkan biaya pengujian. [Yang95]
Kalo dikantor kelen, gimana cara testingnya ?
Kalo disini mah make metode TDD juga … Soalnya kita programmer juga yang testing …
Thanks bro…
@Rave sama-sama bro
semoga membantu
nice info bro…..
lanjutkan!!
Sama-sama bro …