Anda di halaman 1dari 10

SOFTWARE TESTING

Software pengujian adalah proses mengeksekusi program atau aplikasi


dengan maksud untuk menemukan bug dari suatu perangkat lunak yang dibuat.
 Hal ini juga dapat dinyatakan sebagai proses validasi dan verifikasi bahwa
program perangkat lunak atau aplikasi atau produk:
 Memenuhi bisnis dan persyaratan teknis yang dipandu itu desain dan
pengembangan
 Bekerja seperti yang diharapkan
 Dapat diimplementasikan dengan karakteristik yang sama.
 Definisi Software pengujian
1. Proses: Pengujian adalah proses daripada aktivitas tunggal.
2. Semua Aktivitas Life Cycle: Pengujian adalah proses yang berlangsung
sepanjang Lunak Development Life Cycle (SDLC).
 Proses perancangan tes di awal siklus hidup dapat membantu mencegah
cacat dari yang diperkenalkan dalam kode aplikasi . Kadang-kadang itu
disebut sebagai “memverifikasi dasar pengujian melalui desain test”.
 Dasar pengujian termasuk dokumen-dokumen seperti persyaratan dan
spesifikasi desain.
3. Static Testing: Hal ini dapat menguji dan menemukan cacat tanpa
mengeksekusi kode. Statis Pengujian dilakukan selama proses verifikasi.
pengujian ini termasuk meninjau dokumen (termasuk kode sumber) dan
analisis statis. Hal ini berguna dan cara efektif biaya pengujian. Sebagai
contoh: meninjau, walkthrough, inspeksi, dll
4. Pengujian Dinamis: Dalam pengujian dinamis kode software dijalankan untuk
menunjukkan hasil menjalankan tes. Ini dilakukan selama proses validasi.
Sebagai contoh: unit testing, pengujian integrasi, pengujian sistem, dll
5. Perencanaan: Kita perlu merencanakan seperti apa yang ingin kita lakukan.
Kami mengontrol kegiatan tes, kami melaporkan kemajuan pengujian dan
status perangkat lunak yang diuji.
6. Persiapan: Kita perlu memilih apa pengujian yang akan kita lakukan, dengan
memilih kondisi pengujian dan merancang uji kasus.
7. Evaluasi: Selama evaluasi kita harus memeriksa hasil dan mengevaluasi
perangkat lunak yang diuji dan kriteria penyelesaian, yang membantu kita
untuk memutuskan apakah kita telah selesai pengujian dan apakah produk
perangkat lunak telah lulus tes.
8. Software produk dan produk kerja terkait: Seiring dengan pengujian kode
pengujian persyaratan dan desain spesifikasi dan juga dokumen-dokumen
terkait seperti operasi, pengguna dan materi pelatihan adalah sama
pentingnya.
Pengujian perangkat lunak memiliki tujuan yang berbeda dan objectives.
Tujuan utama dari pengujian perangkat lunak adalah sebagai berikut:
a. Menemukan cacat yang mungkin bisa dibuat oleh programmer ketika
mengembangkan perangkat lunak.
b. Mendapatkan kepercayaan dan memberikan informasi tentang tingkat
kualitas.
c. Untuk mencegah cacat.
d. Untuk memastikan bahwa hasil akhir memenuhi bisnis dan kebutuhan
pengguna.
e. Untuk memastikan bahwa itu memenuhi BRS yang Spesifikasi Kebutuhan
Bisnis dan SRS yang Kebutuhan Sistem Spesifikasi.
f. Untuk mendapatkan kepercayaan dari pelanggan dengan menyediakan
produk yang berkualitas.
g. Software pengujian membantu menyelesaikan aplikasi perangkat lunak atau
produk terhadap bisnis dan kebutuhan pengguna. Hal ini sangat penting untuk
memiliki cakupan tes yang baik untuk menguji aplikasi perangkat lunak
sepenuhnya dan membuatnya yakin bahwa itu bekerja dengan baik dan
sesuai dengan spesifikasinya.
Sementara menentukan cakupan test cases, harus dirancang dengan baik
dengan kemungkinan maksimum menemukan kesalahan atau bug. Uji kasus harus
sangat efektif. Tujuan harus dapat diukur dengan jumlah cacat yang dilaporkan per
kasus uji.
Manual Testing atau pengujian manual adalah langkah untuk mencari
cacat atau bug pada program perangkat lunak, pada metode ini tester/penguji
memiliki peran penting sebagai pengguna akhir untuk pengecekan semua fitur
aplikasi bekerja dengan benar. Penguji melakukan pengecekan secara manual
tanpa menggunakan bantuan dari tools atau scripts, tujuannya adalah untuk
memastikan jika aplikasi yang di uji bebas cacat dan aplikasi perangkat lunak dapat
bekerja sesuai apa yang diharapkan. Manual testing juga berperan penting saat
pengujian visual dimana automation tools tidak dapat melakukan.

Manual tester dapat mengetahui kontras antara button dan background


yang lebih terang sehingga membuat user kesulitan mencari button dan
memahami tindakan yang perlu diambil. User Interface (UI)feedback adalah hal
yang tidak dapat ditemukan menggunakan automated testing.

Manual Testing Pros

Mendapatakan Visual Feedback. Tools dan Scripts tidak dapat


membantu dalam memberikan opini maupun input mengenai tampilan UI.
The human element. Bisa mendapatkan feedback dari orang secara
langsung sehingga mengetahui apa yang user suka dan tidak suka (Dimana
automated tools tidak dapat memberikan feedback).
Less expensive in the short-term projects. Jika hanya melakukan tes
aplikasi sederhana yang tidak terlalu banyak updates maka manual testing tidak
perlu menggunakan tools ataupun software yang mahal.
Manual Testing Cons
Kurang teliti dari pada automantion testing. Kadang adanya human error
atau ketidaktelitian, sehingga jika menggunakan automation testing akan
mengurangi bug yang akan terlewat.
Not reusable. Jika menemukan banyaknya perubahan maka harus
melakukan pengecekan secara manual kembali dari awal agar memastikan
perubahan baru tidak akan merusak aplikasi yang sudah jadi.
Kelelahan terhadap tester. Jika QA tester sudah sangat familiar dengan
aplikasi yang selalu dia tes secara terus menerus sehingga membuat QA tester
sangat memahami alur dari aplikasi tersebut. Sehingga hal ini akan menyebabkan
kelelahan dan kesalahan maka melewatkan beberapa hal dan membuat
kesalahan.

Untuk menggunakan Manual testing akan baik digunakan pada area


ataupun skenario berikut :

 Exploratory Testing. Sangat membutuhkan pengetahuan seorang tester


analitikal/logika skil, kreatifitas, dan intuisi.
 Usability Testing. Area ini dibutuhkan untuk melakukan pengecekan
user-friendly, efisien, ataupun kenyamanan untuk software atau produk
untuk end users.
 Ad-hoc Testing. Skenario ini dilakukan tanpa persiapan atau tidak
menuliskan test case, sehingga QA secara acak melakukan tes pada fugnsi
di sistem. Dimana tujuannya adalah untuk secara kreatif untuk “Merusak”
sistem dan mencari kesalahan.

Testing methods

 White Box

o Pengertian White Box Testing

White box testing adalah pengujian yang didasarkan pada pengecekan terhadap
detail perancangan, menggunakan struktur kontrol dari desain program secara
procedural untuk membagi pengujian ke dalam beberapa kasus pengujian. Secara
sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk
mendapatkan program yang benar secara 100%.
Pengujian white box:
 Untuk mengetahui cara kerja suatu perangkat lunak secara internal.
 Untuk menjamin operasi-operasi internal sesuai dengan spesifikasi yang
telah ditetapkan dengan menggunakan struktur kendali dari prosedur yang
dirancang.

Pelaksanaan pengujian white box:

 Menjamim seluruh independent path dieksekusi paling sedikit satu kali.


Independent path adalah jalur dalam program yang menunjukkan paling
sedikit satu kumpulan proses ataupun kondisi baru.
 Menjalani logical decision pada sisi dan false.
 Mengeksekusi pengulangan (looping) dalam batas-batas yang ditentukan.
 Menguji struktur data internal.

Berdasarkan konsep pengujian; White box (structural) testing / glass box testing :
memeriksa
kalkulasi internal path untuk mengidentifikasi kesalahan.

Langkah-langkah white box:

- Mendefinisikan semua alur logika

- Membangun kasus untuk digunakan dalam pengujian

- Melakukan pengujian.

o Kelebihan White Box Testing

- Kesalahan logika. Digunakan pada sintaks ‘if’ dan pengulangan.


Dimana White Box Testing akan mendeteksi kondisi-kondisi yang tidak sesuai
dan mendeteksi kapan proses pengulangan akan berhenti.
- Ketidaksesuaian asumsi. Menampilkan asumsi yang tidak sesuai
dengan kenyataan, untuk di analisa dan diperbaiki.
- Kesalahan ketik. Mendeteksi bahasa pemrograman yang bersifat
case sensitive.

o Kelemahan White Box Testing

- Untuk perangkat lunak yang tergolong besar, White Box Testing


dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumber
daya yang besar untuk melakukannya.
Jenis white box;
<0>Basis path:: Metode identifikasi yang berdasarkan pada jalur,, struktur atau
koneksi yang ada dari suatu sistem ini biasa disebut juga sebagai branch testing,,
karena cabang-cabang dari kode atau fungsi logika diidentifikasi dan dites, atau
disebut juga sebagai control-flow testing.
Ada 2 bentuk Basis path, yaitu:

 Zero Path: Jalur penghubung yang tidak penting atau jalur pintas yang ada
pada suatu sistem.
 One Path: Jalur penghubung yang penting atau berupa proses pada suatu
sistem.

<0>Cyclomatic Complexity

 Adalah pengukuran software yang memberikan pengukuran kuantitatif dari


kompleksitas logika program.
 Pada konteks metode basis path testing , nilai yang dihitung bagi cyclomatic
complexity menentukan jumlah jalur-jalur yang independen dalam
kumpulan basis suatu program dan memberikan jumlah tes minimal yang
harus dilakukan untuk memastikan bahwa semua pernyataan telah
dieksekusi sekurangnya satu kali.
 Jalur independen adalah tiap jalur pada program yang memperlihatkan 1
kelompok baru dari pernyataan proses atau kondisi baru.

<0>Graph Matrix

 Adalah matrik berbentuk segi empat sama sisi, dimana jumlah baris dan
kolom sama dengan jumlah node, dan identifikasi baris dan kolom sama
dengan identifikasi node, serta isi data adalah keberadaan penghubung antar
node (edges).
 Beberapa properti yang dapat ditambahkan sebagai pembobotan pada
koneksi antar node di dalam graph matrix, sebagai berikut:

1. Kemungkinan jalur (Edge) akan dilalui / dieksekusi.


2. Waktu proses yang diharapkan pada jalur selama proses transfer
dilakukan.
3. Memori yang dibutuhkan selama proses transfer dilakukan pada
jalur.
4. Sumber daya (resources) yang dibutuhkan selama proses transfer
dilakukan pada jalur.

Control Structur Testing, meliputi;

 Condition testing:: Suatu metode disain test case yang memeriksa kondisi
logika yang terdapat pada modul program.
 Data flow testing:: Metode data flow testing memilih jalur program
berdasarkan pada lokasi dari definisi dan penggunaan variabel-variabel
pada program.
 Loop testing:: suatu teknik white box testing yang berfokus pada validitas
konstruksi loop secara eksklusif. Ada 4 kelas dari loop, yaitu;
o Simple Loops
o Nested Loops
o Concatenated Loops
o Unstructured Loops

Contoh kasus : Imperial Taxi Services (ITS) :

V(G) = R = 6

V(G) = E – N + 2 = 21 – 17 + 2 = 6

V(G) = P + 1 = 5 + 1 = 6
Rumus : V(G) = R = E – N + 2 = P + 1

Keterangan :

V(G) = cyclometic complexity graph

R = jumlah region dalam program flow graph

E = jumlah edge

N = jumlah node

P = jumlah decision (percabangan)

 Black Box

o Pengertian Black Box Testing

Black box testing adalah pengujian yang dilakukan hanya mengamati hasil
eksekusi melalui data uji dan memeriksa fungsional dari perangkat lunak. Jadi
dianalogikan seperti kita melihat suatu koatak hitam, kit hanya bisa melihat
penampilan luarnya saja, tanpa tau ada apa dibalik bungkus hitam nya. Sama
seperti pengujian black box, mengevaluasi hanya dari tampilan luarnya(interface
nya) , fungsionalitasnya.tanpa mengetahui apa sesungguhnya yang terjadi dalam
proses detilnya (hanya mengetahui input dan output).

o Kelebihan Black Box

- Dapat memilih subset test secara efektif dan efisien

- Dapat menemukan cacat

- Memaksimalkan testing investmen

o Kelemahan Black Box

- Tester tidak pernah yakin apakah PL tersebut benar – benar lulus


uji.

Contoh Black Box Testing dengan Equivalence Partitioning :


Pemeliharaan data untuk aplikasi bank yang sudah diotomatisasikan. Pemakai dapat
memutar nomor telepon bank dengan menggunakan mikro komputer yang
terhubung dengan password yang telah ditentukan dan diikuti dengan perintah-
perintah. Data yang diterima adalah :
- Kode area : kosong atau 3 digit
- Prefix : 3 digit atau tidak diawali 0 atau 1
- Suffix : 4 digit
- Password : 6 digit alfanumerik
- Perintah : check, deposit, dll

Selanjutnya kondisi input digabungkan dengan masing-masing data elemen dapat


ditentukan sebagai berikut:

 Kode area : kondisi input, Boolean –kode area mungkin ada atau tidak
kondisi input, range –nilai ditentukan antara 200 dan 999
 Prefix : kondisi input range > 200 atau tidak diawali 0 atau 1
 Suffix : kondisi input nilai 4 digit
 Password : kondisi input boolean –passwordmungkin diperlukan
atau tidak kondisi input nilai dengan 6 karakter string
 Perintah : kondisi input set berisi perintah-perintah yang telah
didefinisikan
 Perbedaan White Box & Black Box

o White box (Struktural)

 Dilakukan oleh penguji yang mengetahui tentang QA.


 Melakukan testing pada software/program aplikasi
menyangkut security dan performance program tersebut
(meliputi tes code, desain implementasi, security, data flow,
software failure).
 Dilakukan seiring dengan tahapan pengembangan software
atau pada tahap testing.

o Metode BlackBox (Fungsional)

 Dilakukan oleh penguji Independent.


 Melakukan pengujian berdasarkan apa yang dilihat, hanya
fokus terhadap fungsionalitas dan output. Pengujian lebih
ditujukan pada desain software sesuai standar dan reaksi
apabila terdapat celah-celah bug/vulnerabilitas pada
program aplikasi tersebut setelah dilakukan white box
testing.
 Dilakukan setelah white box testing.

Test Plan adalah dokumen yang berisi definisi tujuan dan sasaran pengujian
dalam lingkup iterasi (atau proyek), item-item yang menjadi target pengujian,
pendekatan yang akan diambil, sumber daya yang dibutuhkan dan point untuk
diproduksi. Dengan kata lain test plan dapat disebut sebagai perencanaan atau
scenario untuk melakukan testing yang akan dilakukan baik oleh expert atau user
umum.
Tujuan Membuat Test Plan
Tujuan membuat test plan secara umum adalah untuk memudahkan developer
untuk melakukan testing agar testing yang dilakukan menjadi jelas sehingga
hasilnya lebih berguna dan efisien.
Requirements traceability Matrix (RTM) adalah tabel yang berisi daftar requirements,
atribut yang berfagam untuk setiap requirementnya dan terdapat informasi tentang
status dari requirement untuk memastikan semua requirement telah terpenuhi.

FUNGSINYA?
Guna dari tabel RTM ini adalah untuk menelusuri requirement dalam melakukan
testing untuk memverifikasi apakah requirement sudah terpenuhi atau belum.

Matrix menghubungkan high level requirements, design specifications, test


requirements, and code files. Matrix yang disebutkan tersebut adalah berupa map atau
peta yang didalamnya tersedia link-link yang mampu menelusuri informasi requirement
yang dibutuhkan. RTM digunakan untuk penjaminan kualitas software (Software Quality
Assurance) sehingga dapat memastikan bahwa kebutuhan klien telah terpenuhi dan
software yang dibangun telah sesuai dengan yang diminta oleh klien.

Object-oriented testing => Lebih besar dibandingkan pengujian sebuah function


sehingga pendekatan white-box testing perlu diperluas. Komponen yang diuji adalah
class object yang di instantiate ke object.

Testing Levels

w Testing operations pada objects

w Testing object classes

w Testing clusters cooperating objects

w Testing OO system secara lengkap

Pengujian Class => Menguji terhadap semua operation yang ada dan perubahan atribut-
atributnya.

Object Class Testing

v Complete test yang menguji class melibatkan

– Testing semua operations suatu object

– Setting dan interrogating semua attribute object

– Menguji object untuk semua keadaan yang mungkin

v Inheritance akan mengakibatkan sulitnya perancangan object class tests seperti


information yang diuji sulit dilokalisasi.

Cluster Testing

• Cluster testing digunakan untuk test integrasi and testing clusters terhadap
cooperating objects.

• Identifikasi clusters menggunakan knowledge operation objects dan system


features yang diimplementasikan oleh cluster tersebut