Testing dan implementasi dan testing
Testing dan implementasi
. TUGAS TESTING DAN IMPLEMENTASI
SOFTWARE
KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikanrahmat dan
hidayah-Nya, sehingga penulis dapat menyelesaikan TugasMakalah Testing dan
Implementasi Software. Selama tugas makalah ini banyak kesulitan yang dihadapi, akan
tetapiberkat bimbingan, petunjuk serta bantuan dari berbagai pihak. Penulismengucapkan
terima kasih kepada : 1. Surono, S.Kom. selaku dosen Testing dan Implementasi. 2. Seluruh
pihak yang dengan senang hati mau berbagi ilmu pengetahuan dan informasi melalui media
internet dan lainnya. Terima kasih, karena itu sangat membantu sekali dan membuka
cakrawala pengetahuan yang baru bagi penulis. Penulis menyadari bahwa tugas makalah ini
masih jauh dari katasempurna. Oleh karena itu, mohon maaf apabila ada kesalahankesalahandalam penyajian tugas ini. Semoga tugas makalah ini dapat memberikanmanfaat
dan kontribusi kepada perkembangan ilmu pengetahuan.
Penulis 2
. BAB I
PENGERTIAN DASAR TESTING DAN IMPLEMENTASI1.
1 Latar Belakang
SDLC (Software Development Life Cycle) berarti sebuah siklus hiduppemngembangan
perangkat lunak yang terdiri dari beberapa tahapan-tahapanyang sangat penting dalam
keberadaan perangkat lunak yang dilihat dari segipengembangannya. Dalam Tahapan SDLC
terdiri dari beberapatahapan-tahapan berdasarkan analisa kebutuhan yang ada . Dimulai
darianalisa kebutuhan perangkat lunak akan dibuat terlebih dahulu desain darikebutuhan
tersebut untuk mempermudah dalam pengerjaannya. Kemudiansegala kebutuhan tersebut di
implementasikan dengan dua tahap yaitu tahapanalisa dan tahap evaluasi (User Acceptance
Test). Setelah melakukanimplementasi, maka proses tersebut akan dikembalikan kembali ke
dalamtahap desain untuk pengembangan kembali perangkat lunak ke versi
yangterbaru.Proses Tahapan SDLC yang paling sering digunakan adalah :
1. Perencanaan: Mempelajari konsep sistem dan permasalahan yang hendak
diselesaikan. apakah sistem baru tersebut realistis dalam masalah pembiayaan, waktu,
serta perbedaan dengan sistem yang ada sekarang.
2. Analisis Sistem: Menganalisis konsep sistem, permasalahan dan keperluan yang
hendak dibuat.
3. Desain : Mendesain sistem teknologi baru untuk permasalahan yang sama.
4. Kon struksi : Perbaikan terhadap produk yang memiliki kesalahan/kerusakan
5. Implementasi software yang telah diuji dan siap diimplementasikan kedalam sistem
pengguna/ sudah siap diterapkan.
6. Maintenance: sistem yang telah diimplemantasikan serta dapat mengikuti
perkembangan dan perubahan apapun yang terjadi guna meraih tujuan
penggunaannya
1.2 Implementasi Perangkat Lunak
Hasil Rancangan detail yang ditranslasikan ke dalam suatu bahasapemrograman, proses
translasi dilanjutkan bila suatu kompiler menerimasource code sebagai masukan dan
mengkasilkan object code yang akan diterjemahkan menjadi machine code. Bahasa
pemrograman adalah alat yangdigunakan untuk komunikasi anatara manusia dan komputer
Pemilihan bahasa pemrograman didasarkan atas :
1. Lingkup aplikasi
2. Algortima dan kompleksitas
3. Lingkungan pemrograman
4. Performansi
5. Struktur data
6. Pengetahuan pemrogram
7. Ketersediaan komputer
1.3 Testing perangkat lunak
Pengertian Testing perangkat lunak adalah proses menjalankan danmengevaluasi sebuah
perangkat lunak secara manual maupun otomatis untukmenguji apakah perangkat lunak
sudah memenuhi persyaratan atau belumuntuk menentukan perbedaan antara hasil yang
diharapkan dengan hasilsebenarnya.
1.4 Prinsip pengujian yang harus diperhatikan.
• Dapat dilacak hingga ke persyaratan atau dokumen SRS
• Pengujian harus direncanakan sebelum pelaksanaan pengujian
• Pengujian harus dimulai dari hasl yang kecil, diteruskan ke hal-hal yang besar.
• Pengujian yang berlebihan tidak akan mungkin dapat dilaksanakan
• Pengujian sebaiknya dilakukan oleh pihak ketiga.
1.5 Tujuan Pengujian
• Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
• Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang
digunakan
.• Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak
yang diuji dengan spesifikasi yang telah ditentukan.
1.6 Strategi Pengujian1
.6.1 Pengujian unit program
Pengujian difokuskan pada unit terkecil dari suatu modul program.Dilaksanakan dengan
menggunakan driver dan stub. Driver adalah suatuprogram utama yang berfungsi mengirim
atau menerima data kasus uji danmencetak hasil dari modul yang diuji. Stub adalah modul
yang menggantikanmodul sub-ordinat dari modul yang diuji.
1.6.2 Pengujian integrasi
Pengujian terhadap unit-unit program yang saling berhubungan (terintegrasi)dengan fokus
pada masalah interfacing. Dapat dilaksanakan secara top-downintegration atau bottom-up
integration. 5
1.6.3 Pengujian validasi
Pengujian ini dimulai jika pada tahap integrasi tidak ditemukan kesalahan.Suatu validasi
dikatakan sukses jika perangkat lunak berfungsi pada suatucara yang diharapkan oleh
pemakai.
1.6.4 Pengujian sistem
Pengujian yang dilakukan sepenuhnya pada sistem berbasis komputer. Recovery testing
Pengujian dilakukan dimana sistem diusahakan untuk gagal, kemudian diuji normalisasinya.
Security testing Dilakukan untuk menguji mekanisme proteksi Stess testing Pengujian yang
dirancang untuk menghadapkan suatu perangkat lunak kepada situasi Yang tidak normal. 6
BAB II
TAHAP TESTING DAN IMPLEMENTASI
2.1 Tahap-tahap Pengujian
• Memeriksa apakah sistem sudah berlaku dengan benar atau belum saat digunakan oleh user
• Memperkirakan apakah sistem dapat menanggulangi segala kondisi dan data mainstream
.• Memeriksa performansi behaviour dari sistem. Misal berapa lama waktu yang diperlukan
sistem untuk mengerjakan suatu tugas yang diberikan.
• Menguji volume, stress dan storage untuk meeriksa performance dibawah kondisi ekstrim
seperti jumlah input yang besar, high speed input, jumlah user yang banyak serta
meningkatnya jumlah aktivitas secara tiba-tiba
.• Semua perhitungan diperiksa ketepatannya dengan data dan kondisi yang telah
diperkirakan maupun tidak.
• Menguji error handling dan recovery dari sistem seperti memeriksa bahwa akan keluar
pesan error yang tepat pada setiap kondisi dan pemulihan yang baik setelah sistem
mengalami fatal errror.
• Memeriksa kelayakan tingkat keamanan pada sistem agar user yang tidak berwenang tidak
dapat memperoleh akses ke sistem.Tipe-tipe system testing– volume : memfokuskan untuk
input yang besar– usability : mengukur reaksi user ( skala 1-10)– performance : mengukur
kecepatan pada beberapa keadaan– configurasi : mengkonfogurasi untuk bermacam-macam
hardware atau software– compatibility : komplabiliti dengan aplikasi lain ( contoh: mengukur
waktu adaptasi)
1. 8. – reliability/availability : mengukur ketahanan pada periode waktu yang lama–
security– resource usage : mengukur penggunaan RAM, ruang disk, dll–
installability : di install pada bermacam-macam keadaan (mengukur waktu install)–
recoverability : mengukur waktu untuk me-recover– serviceability : mengukur waktu
service– load/stress: untuk data extreme dan traffic
2.2 Pengujian Tahap Analisisditekankan pada validasi terhadap kebutuhan, untuk
menjamin bahwakebutuhan telah dispesifikasikan dengan benar. Tujuan pengujian pada
tahapini adalah untuk mendapatkan kebutuhan yang layak dan untuk memastikanapakah
kebutuhan tersebut sudah dirumuskan dengan baik.
Faktor-faktor pengujian yang dilakukan meliputi :
a. Kebutuhan yang berkaitan dengan metodelogi
b. Pendefinisian spesifikasi fungsional
c. Penentuan spesifikasi kegunaan
d. Penentuan kebutuhan portabilitas
e. Pendefinisian antar muka sistem.
2.3 Pengujian Tahap Perancangan
Bertujuan untuk menguji struktur perangkat lunak yang diturunkan darikebutuhan Kebutuhan yang bersifat umum dirinci menjadi bentuk yang lebihspesifik .Faktor-faktor
pengujian tahap perancangan meliputi :
• Perancangan yang berkaitan dengan kebutuhan
• Kesesuaian perancangan dengan metodologi dan teori.
. • Portabilitas rancangan
• Perancangan yang dirawat •
Kebenaran rancangan berkaitan dengan fungsi dan aliran data.
• Kelengkapan perancangan antar muka.
2.4 Pengujian Tahap Implementasi
Merupakan pengujian unit-unit yang dibuat sebelum diintegrasikan menjadiaplikasi
keseluruhan
Faktor-faktor pengujian tahap implementasi meliputi :
• Kendali integritas data
• Kebenaran program
• kemudahan pemakaian
• Sifat coupling
• Pengembangan prosedur operasi.
2.5 Pengujian Tahap Testing
:untuk menilai apakah spesifikasi program telah ditulis menjadiinstruksi-instruksi yang
dapat dijalankan pada mesin. Selain itu, juga untukmenilai apakah instruksi yang ditulis
tersebut telah sesuai dengan spesifikasiprogram.
Faktor-faktor pengujian tahap ini meliputi :
• Pengujian fungsional
• Dukungan manual
• Kemudahan operasi.
2.6 Pengujian dengan Kasus Uji
Dilakukan meliputi pengujian unit (berupa prosedur atau fungsi) dan pengujiansistem.
Dalam pengujian unit, unit-unit yang diuji meliputi unit-unit yang adadalam sistem.
Sedangkan pengujian sistem dilakukan terhadap sistem secarakeseluruhan. Setiap pengujian
dilakukan dengan menggunakan berbagai datamasukan, baik data yang valid maupun tidak.
BAB III
TEKNIK PENGUJIAN
3.1 Teknik Pengujian
Ada Banyak teknik pengujian yang dapat digunakan untuk menguji perangkatlunak,
seperti :
1. Pengujian Black Box
2. Pengujian White Box3
1.1 Pengujian Black Box
Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yangdirancang.
Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkankeluaran yang dihasilkan dari
data atau kondisi masukan yang diberikan untukfungsi yang ada tanpa melihat bagaimana
proses untuk mendapatkankeluaran tersebut. Dari keluaran yang dihasilkan, kemampuan
program dalammemenuhi kebutuhan pemakai dapat diukur sekaligus dapat
diiketahuikesalahan-kesalahannya.
Beberapa jenis kesalahan yang dapat diidentifikasi :
• Fungsi tidak benar atau hilang
• Kesalahan antar muka
• Kesalahan pada struktur data (pengaksesan basis data)
• Kesalahan inisialisasi dan akhir program• Kesalahan performasi.
11. requirements output input events
Contoh Black Box:
A. Strategi OO
Testing
• Unit Testing
Pengujian class/object
• Integration Testing
object integration testing
• System Testing 11
12. Pengujian class/object
• Encapsulated state Memeriksa interaksi method-method dengan data obyek
• Interaksi antar method Memeriksa interaksi method-method dari sebuah obyek
• Pewarisan dan polimorfismeB. Unit Testing
• Tahapan testing yang paling awal.
• Tahap selanjutnya terdiri dari integration testing dan system testing
• Biasanya unit didefinisikan sebagai: – Suatu fungsi atau prosedur tunggal yang kohesif –
Segmen terkecil dari kode program yang bisa dikompile secara terpisah. – Sebuah fungsi
yang pas pada suatu halaman tunggal. – Kode yang bisa ditulis oleh seseorang dalam suatu
kurun waktu.
• Definisi yang biasa dipakai yaitu definisi pada point pertama.
• Input untuk proses test planning terdiri dari requirement dan detailed design. Output dari
proses test planning adalah unit test plan.
• Tahap selanjutnya adalah akuisisi data input dan output yang berasosiasi dengan masingmasing test. Hasil dari tahap ini dinamakan test set.
• Test di eksekusi.
13. C. Pengujian Method
• Memverifikasi operasi pada nilai normal parameter (sebuah black box test yang berdasarkan
pada kebutuhan unit)
• Memverifikasi operasi pada nilai limit parameter (black box)
• Memverifikasi operasi nilai diluar batas nilai parameter (black box)
• Memastikan bahwa semua instruksi di eksekusi (statement coverage)
• Cek semua path, termasuk semua cabang (decision coverage)
• Cek semua penggunaan object yang dipanggil
• Memverifikasi penanganan dari semua struktur data
• Memverifikasi penanganan semua file
• Cek terminasi normal dari semua loop ( part of correctness proof)
• Cek terminasi abnormal dari semua loop
• Cek terminasi normal dari semua rekursif
• Cek terminasi abnormal dari semua rekursif
• Memverifikasi penanganan semua kondisi error
• Cek timing dan sinkronisasi • verifikasi semua ketergantungan hardware
D. Class Testing
• Kombinasikan penggunaan method – biasanya 2-5 – pilih rangkaian pertama yang paling
umum – masukan rangkaian yang mungkin menyebabkan error
• Fokuskan unit test pada masing-masing atribut – inisialisasi, lalu eksekusi rangkaian
method yang dipengaruhinya
• Verifikasi masing-masing invariant class tidak berubah
• Verifikasi object transisi diantara state-state yang ada. – Rencanakan rangkaian
state/transisisi – Set up object dalam inisial state dengan menyeting variable – Sediakan event
pertama dan cek transisi yang terjadi
E. Pengujian integrasi object
• Menguji unit yang telah diuji secara tunggal bekerja secara baik pula setelah digabungkan
pada sistem
• Mereka akan digabungkan ke dalam suatu grup logis yang koheren untuk diuji
kembali( subsistem )
• Saat subsistem tersebut berhasil bekerja dengan baik maka akan dilanjutkan dengan
menggabungkannya dengan subsistem yang lain dan seterusnya sampai membentuk suatu
sistem utuh yang teruj
i • Hal yang diperhatikan yaitu memeriksa semua unit apakah bekerja bersama dengan baik.
• Penguji lebih mengkonsentrasikan pada interaksi unit daripada fungsionalitasnya 13
F. Merancang dan Melakukan Integration Testing
• Putuskan bagaimana dan dimana untuk menyimpan, menggunakan kembali dan
mengkodekan integration test – tunjukan dalam project schedule
• Ekesekusi unit-unit test sebanyak mungin sesuai dengan waktu yang tersedia
• Gunakan test regresi
• Pastikan kebutuhan pembangunan telah dispesifikasikan.
• Gunakan use case yang harus diimplementasikan
• Eksekusi system testG. Tahapan System Testing
• Memeriksa apakah sistem sudah berlaku dengan benar atau belum saat digunakan oleh user.
• Memperkirakan apakah sistem dapat menanggulangi segala kondisi dan data mainstream.
• Memeriksa performansi behaviour dari sistem. Misal berapa lama waktu yang diperlukan
sistem untuk mengerjakan suatu tugas yang diberikan.
• Menguji volume, stress dan storage untuk meeriksa performance dibawah kondisi ekstrim
seperti jumlah input yang besar, high speed input, jumlah user yang banyak serta
meningkatnya jumlah aktivitas secara tiba-tiba.
• Semua perhitungan diperiksa ketepatannya dengan data dan kondisi yang telah diperkirakan
maupun tidak.
• Menguji error handling dan recovery dari sistem seperti memeriksa bahwa akan keluar
pesan error yang tepat pada setiap kondisi dan pemulihan yang baik setelah sistem
mengalami fatal errror.
• Memeriksa kelayakan tingkat keamanan pada sistem agar user yang tidak berwenang tidak
dapat memperoleh akses ke sistem.
3.1.2 Pengujian White Box : 14
15. Pengujian White Box
Digunakan untuk mengetahui cara kerja suatu perangkatlunak secara internal. Pengujian
dilakukan untuk menjamin operasi-operasiinternal sesuai dengan spesifikasi yang telah
ditetapkan denganmenggunakan struktur kendali dari prosedur yang dirancang. Tujuan kita
adalah menjamin semua statemen dan kondisi telah dieksekusi minimal sekal
iPelaksanaan pengujian white box :
a. 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.
b. Menjalani logical decision pada sisi dan false
c. Mengeksekusi pengulangan (looping) dalam batas-batas yang ditentukan d. Menguji
struktur data internal
Contoh Testing White Box: 15
A. Condition TestingCondition Testing
bertujuan untuk mengeksekusi semua kondisi lojik darisebuah modul program Dapat
mendefinisikan Relational Expression (E1 op E2) : dimana E1 dan E2 adalah arithmetic
expression Simple Condition: variabel boolean atau relational expression, mungkin diawali
dengan operator NOT Compound condition: terdiri dari dua atau lebih simple
conditions,operator boolean, dan tanda kurung Boolean Expression: kondisi tanpa relational
expressionTipe kesalahan pada sebuah kondisi dapat mencakup: boolean operator error
(adanya incorrect/missing/extra boolean operator) boolean variable error boolean parenthesis
(tanda kurung) error relational operator error arithmetic expression errorMetode condition
testing fokus pada pengujian setiap kondisi yang ada padaprogram, Keuntungan strategi
condition testing Memperkirakan pengujian berdasarkan kondisi adalah hal yang simpel
Cakupan pengujian dapat mengarahkan pada penambahan kasus uji untuk sebuah
programBeberapa strategi yang termasuk condition testing Branch Testing Domain Testing
Branch and Relational Operator Testing – menggunakan kondisi sebagai batasanContoh: C1
= B1 & B2 dimana B1, B2 adalah boolean conditions Batasan kondisi D1, D2 dimana D1 dan
D2 dapat bernilai true (t) atau false (f) Cabang dan operator relasi membutuhkan batasanbatasan { (t,t), (f,t), (t,f) } harus dipenuhi untuk eksekusi C1Cakupan batasan-batasan
menjamin pendekteksian kesalahan pada operatorrelasional (relational operator errors)B.
Branch Testing 16
2. 17. Branch testing adalah strategi pengujian berbasis kondisi yang paling
simpel,Untuk setiap kondisi percabangan C, maka setiap cabangnya harus
dieksekusiminimal sekali (yang bernilai true atau false)C. Data Flow TestingMetode
Data Flow testing memilih aliran tes dari program berdasarkan lokasipendefinisian
dan penggunaan variabel dalam program dengan Data flow testing Setiap statemen di
dalam program diasumsikan diisi dengan angka yang unikdan diasumsikan tidak ada
fungsi yang mengubahnya Defs( s ) = { x | statemen S berisi pendefinisian X }
Use( s ) = { x | statemen S berisi penggunaan X } DU Chain (Definition - Use Chain)
dari variabel X dengan bentuk {X, S, S’}, dimana S, S’ adalah jumlah statemen, X di
dalam Defs(S) dan Defs(S’). Rangkaian yang mungkin lainnya: DD (DefinitionDefinition Chain) – harus dihindari UU (Use-Use Chain) - common chain UD (Use-
Definition Chain) - common chain Salah satu strategi yang simpel adalah Strategi DU
Testing Strategi ini menyatakan bahwa setiap DU chain harus dilalui minimal sekali
17
3. 18. D. Loop TestingLoop adalah dasar dari banyak algoritma. Loop dapat
didefinisikan menjadiberikut:Untuk menguji:Simple Loops dengan n kali:1. Abaikan
perulangan2. Masuki perulangan sekali3. Masuki perulangan dua kali4. Masuki
perulangan m kali dimana m
. TUGAS TESTING DAN IMPLEMENTASI
SOFTWARE
KATA PENGANTAR
Puji syukur kami panjatkan kehadirat Allah SWT yang telah memberikanrahmat dan
hidayah-Nya, sehingga penulis dapat menyelesaikan TugasMakalah Testing dan
Implementasi Software. Selama tugas makalah ini banyak kesulitan yang dihadapi, akan
tetapiberkat bimbingan, petunjuk serta bantuan dari berbagai pihak. Penulismengucapkan
terima kasih kepada : 1. Surono, S.Kom. selaku dosen Testing dan Implementasi. 2. Seluruh
pihak yang dengan senang hati mau berbagi ilmu pengetahuan dan informasi melalui media
internet dan lainnya. Terima kasih, karena itu sangat membantu sekali dan membuka
cakrawala pengetahuan yang baru bagi penulis. Penulis menyadari bahwa tugas makalah ini
masih jauh dari katasempurna. Oleh karena itu, mohon maaf apabila ada kesalahankesalahandalam penyajian tugas ini. Semoga tugas makalah ini dapat memberikanmanfaat
dan kontribusi kepada perkembangan ilmu pengetahuan.
Penulis 2
. BAB I
PENGERTIAN DASAR TESTING DAN IMPLEMENTASI1.
1 Latar Belakang
SDLC (Software Development Life Cycle) berarti sebuah siklus hiduppemngembangan
perangkat lunak yang terdiri dari beberapa tahapan-tahapanyang sangat penting dalam
keberadaan perangkat lunak yang dilihat dari segipengembangannya. Dalam Tahapan SDLC
terdiri dari beberapatahapan-tahapan berdasarkan analisa kebutuhan yang ada . Dimulai
darianalisa kebutuhan perangkat lunak akan dibuat terlebih dahulu desain darikebutuhan
tersebut untuk mempermudah dalam pengerjaannya. Kemudiansegala kebutuhan tersebut di
implementasikan dengan dua tahap yaitu tahapanalisa dan tahap evaluasi (User Acceptance
Test). Setelah melakukanimplementasi, maka proses tersebut akan dikembalikan kembali ke
dalamtahap desain untuk pengembangan kembali perangkat lunak ke versi
yangterbaru.Proses Tahapan SDLC yang paling sering digunakan adalah :
1. Perencanaan: Mempelajari konsep sistem dan permasalahan yang hendak
diselesaikan. apakah sistem baru tersebut realistis dalam masalah pembiayaan, waktu,
serta perbedaan dengan sistem yang ada sekarang.
2. Analisis Sistem: Menganalisis konsep sistem, permasalahan dan keperluan yang
hendak dibuat.
3. Desain : Mendesain sistem teknologi baru untuk permasalahan yang sama.
4. Kon struksi : Perbaikan terhadap produk yang memiliki kesalahan/kerusakan
5. Implementasi software yang telah diuji dan siap diimplementasikan kedalam sistem
pengguna/ sudah siap diterapkan.
6. Maintenance: sistem yang telah diimplemantasikan serta dapat mengikuti
perkembangan dan perubahan apapun yang terjadi guna meraih tujuan
penggunaannya
1.2 Implementasi Perangkat Lunak
Hasil Rancangan detail yang ditranslasikan ke dalam suatu bahasapemrograman, proses
translasi dilanjutkan bila suatu kompiler menerimasource code sebagai masukan dan
mengkasilkan object code yang akan diterjemahkan menjadi machine code. Bahasa
pemrograman adalah alat yangdigunakan untuk komunikasi anatara manusia dan komputer
Pemilihan bahasa pemrograman didasarkan atas :
1. Lingkup aplikasi
2. Algortima dan kompleksitas
3. Lingkungan pemrograman
4. Performansi
5. Struktur data
6. Pengetahuan pemrogram
7. Ketersediaan komputer
1.3 Testing perangkat lunak
Pengertian Testing perangkat lunak adalah proses menjalankan danmengevaluasi sebuah
perangkat lunak secara manual maupun otomatis untukmenguji apakah perangkat lunak
sudah memenuhi persyaratan atau belumuntuk menentukan perbedaan antara hasil yang
diharapkan dengan hasilsebenarnya.
1.4 Prinsip pengujian yang harus diperhatikan.
• Dapat dilacak hingga ke persyaratan atau dokumen SRS
• Pengujian harus direncanakan sebelum pelaksanaan pengujian
• Pengujian harus dimulai dari hasl yang kecil, diteruskan ke hal-hal yang besar.
• Pengujian yang berlebihan tidak akan mungkin dapat dilaksanakan
• Pengujian sebaiknya dilakukan oleh pihak ketiga.
1.5 Tujuan Pengujian
• Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
• Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang
digunakan
.• Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak
yang diuji dengan spesifikasi yang telah ditentukan.
1.6 Strategi Pengujian1
.6.1 Pengujian unit program
Pengujian difokuskan pada unit terkecil dari suatu modul program.Dilaksanakan dengan
menggunakan driver dan stub. Driver adalah suatuprogram utama yang berfungsi mengirim
atau menerima data kasus uji danmencetak hasil dari modul yang diuji. Stub adalah modul
yang menggantikanmodul sub-ordinat dari modul yang diuji.
1.6.2 Pengujian integrasi
Pengujian terhadap unit-unit program yang saling berhubungan (terintegrasi)dengan fokus
pada masalah interfacing. Dapat dilaksanakan secara top-downintegration atau bottom-up
integration. 5
1.6.3 Pengujian validasi
Pengujian ini dimulai jika pada tahap integrasi tidak ditemukan kesalahan.Suatu validasi
dikatakan sukses jika perangkat lunak berfungsi pada suatucara yang diharapkan oleh
pemakai.
1.6.4 Pengujian sistem
Pengujian yang dilakukan sepenuhnya pada sistem berbasis komputer. Recovery testing
Pengujian dilakukan dimana sistem diusahakan untuk gagal, kemudian diuji normalisasinya.
Security testing Dilakukan untuk menguji mekanisme proteksi Stess testing Pengujian yang
dirancang untuk menghadapkan suatu perangkat lunak kepada situasi Yang tidak normal. 6
BAB II
TAHAP TESTING DAN IMPLEMENTASI
2.1 Tahap-tahap Pengujian
• Memeriksa apakah sistem sudah berlaku dengan benar atau belum saat digunakan oleh user
• Memperkirakan apakah sistem dapat menanggulangi segala kondisi dan data mainstream
.• Memeriksa performansi behaviour dari sistem. Misal berapa lama waktu yang diperlukan
sistem untuk mengerjakan suatu tugas yang diberikan.
• Menguji volume, stress dan storage untuk meeriksa performance dibawah kondisi ekstrim
seperti jumlah input yang besar, high speed input, jumlah user yang banyak serta
meningkatnya jumlah aktivitas secara tiba-tiba
.• Semua perhitungan diperiksa ketepatannya dengan data dan kondisi yang telah
diperkirakan maupun tidak.
• Menguji error handling dan recovery dari sistem seperti memeriksa bahwa akan keluar
pesan error yang tepat pada setiap kondisi dan pemulihan yang baik setelah sistem
mengalami fatal errror.
• Memeriksa kelayakan tingkat keamanan pada sistem agar user yang tidak berwenang tidak
dapat memperoleh akses ke sistem.Tipe-tipe system testing– volume : memfokuskan untuk
input yang besar– usability : mengukur reaksi user ( skala 1-10)– performance : mengukur
kecepatan pada beberapa keadaan– configurasi : mengkonfogurasi untuk bermacam-macam
hardware atau software– compatibility : komplabiliti dengan aplikasi lain ( contoh: mengukur
waktu adaptasi)
1. 8. – reliability/availability : mengukur ketahanan pada periode waktu yang lama–
security– resource usage : mengukur penggunaan RAM, ruang disk, dll–
installability : di install pada bermacam-macam keadaan (mengukur waktu install)–
recoverability : mengukur waktu untuk me-recover– serviceability : mengukur waktu
service– load/stress: untuk data extreme dan traffic
2.2 Pengujian Tahap Analisisditekankan pada validasi terhadap kebutuhan, untuk
menjamin bahwakebutuhan telah dispesifikasikan dengan benar. Tujuan pengujian pada
tahapini adalah untuk mendapatkan kebutuhan yang layak dan untuk memastikanapakah
kebutuhan tersebut sudah dirumuskan dengan baik.
Faktor-faktor pengujian yang dilakukan meliputi :
a. Kebutuhan yang berkaitan dengan metodelogi
b. Pendefinisian spesifikasi fungsional
c. Penentuan spesifikasi kegunaan
d. Penentuan kebutuhan portabilitas
e. Pendefinisian antar muka sistem.
2.3 Pengujian Tahap Perancangan
Bertujuan untuk menguji struktur perangkat lunak yang diturunkan darikebutuhan Kebutuhan yang bersifat umum dirinci menjadi bentuk yang lebihspesifik .Faktor-faktor
pengujian tahap perancangan meliputi :
• Perancangan yang berkaitan dengan kebutuhan
• Kesesuaian perancangan dengan metodologi dan teori.
. • Portabilitas rancangan
• Perancangan yang dirawat •
Kebenaran rancangan berkaitan dengan fungsi dan aliran data.
• Kelengkapan perancangan antar muka.
2.4 Pengujian Tahap Implementasi
Merupakan pengujian unit-unit yang dibuat sebelum diintegrasikan menjadiaplikasi
keseluruhan
Faktor-faktor pengujian tahap implementasi meliputi :
• Kendali integritas data
• Kebenaran program
• kemudahan pemakaian
• Sifat coupling
• Pengembangan prosedur operasi.
2.5 Pengujian Tahap Testing
:untuk menilai apakah spesifikasi program telah ditulis menjadiinstruksi-instruksi yang
dapat dijalankan pada mesin. Selain itu, juga untukmenilai apakah instruksi yang ditulis
tersebut telah sesuai dengan spesifikasiprogram.
Faktor-faktor pengujian tahap ini meliputi :
• Pengujian fungsional
• Dukungan manual
• Kemudahan operasi.
2.6 Pengujian dengan Kasus Uji
Dilakukan meliputi pengujian unit (berupa prosedur atau fungsi) dan pengujiansistem.
Dalam pengujian unit, unit-unit yang diuji meliputi unit-unit yang adadalam sistem.
Sedangkan pengujian sistem dilakukan terhadap sistem secarakeseluruhan. Setiap pengujian
dilakukan dengan menggunakan berbagai datamasukan, baik data yang valid maupun tidak.
BAB III
TEKNIK PENGUJIAN
3.1 Teknik Pengujian
Ada Banyak teknik pengujian yang dapat digunakan untuk menguji perangkatlunak,
seperti :
1. Pengujian Black Box
2. Pengujian White Box3
1.1 Pengujian Black Box
Digunakan untuk menguji fungsi-fungsi khusus dari perangkat lunak yangdirancang.
Kebenaran perangkat lunak yang diuji hanya dilihat berdasarkankeluaran yang dihasilkan dari
data atau kondisi masukan yang diberikan untukfungsi yang ada tanpa melihat bagaimana
proses untuk mendapatkankeluaran tersebut. Dari keluaran yang dihasilkan, kemampuan
program dalammemenuhi kebutuhan pemakai dapat diukur sekaligus dapat
diiketahuikesalahan-kesalahannya.
Beberapa jenis kesalahan yang dapat diidentifikasi :
• Fungsi tidak benar atau hilang
• Kesalahan antar muka
• Kesalahan pada struktur data (pengaksesan basis data)
• Kesalahan inisialisasi dan akhir program• Kesalahan performasi.
11. requirements output input events
Contoh Black Box:
A. Strategi OO
Testing
• Unit Testing
Pengujian class/object
• Integration Testing
object integration testing
• System Testing 11
12. Pengujian class/object
• Encapsulated state Memeriksa interaksi method-method dengan data obyek
• Interaksi antar method Memeriksa interaksi method-method dari sebuah obyek
• Pewarisan dan polimorfismeB. Unit Testing
• Tahapan testing yang paling awal.
• Tahap selanjutnya terdiri dari integration testing dan system testing
• Biasanya unit didefinisikan sebagai: – Suatu fungsi atau prosedur tunggal yang kohesif –
Segmen terkecil dari kode program yang bisa dikompile secara terpisah. – Sebuah fungsi
yang pas pada suatu halaman tunggal. – Kode yang bisa ditulis oleh seseorang dalam suatu
kurun waktu.
• Definisi yang biasa dipakai yaitu definisi pada point pertama.
• Input untuk proses test planning terdiri dari requirement dan detailed design. Output dari
proses test planning adalah unit test plan.
• Tahap selanjutnya adalah akuisisi data input dan output yang berasosiasi dengan masingmasing test. Hasil dari tahap ini dinamakan test set.
• Test di eksekusi.
13. C. Pengujian Method
• Memverifikasi operasi pada nilai normal parameter (sebuah black box test yang berdasarkan
pada kebutuhan unit)
• Memverifikasi operasi pada nilai limit parameter (black box)
• Memverifikasi operasi nilai diluar batas nilai parameter (black box)
• Memastikan bahwa semua instruksi di eksekusi (statement coverage)
• Cek semua path, termasuk semua cabang (decision coverage)
• Cek semua penggunaan object yang dipanggil
• Memverifikasi penanganan dari semua struktur data
• Memverifikasi penanganan semua file
• Cek terminasi normal dari semua loop ( part of correctness proof)
• Cek terminasi abnormal dari semua loop
• Cek terminasi normal dari semua rekursif
• Cek terminasi abnormal dari semua rekursif
• Memverifikasi penanganan semua kondisi error
• Cek timing dan sinkronisasi • verifikasi semua ketergantungan hardware
D. Class Testing
• Kombinasikan penggunaan method – biasanya 2-5 – pilih rangkaian pertama yang paling
umum – masukan rangkaian yang mungkin menyebabkan error
• Fokuskan unit test pada masing-masing atribut – inisialisasi, lalu eksekusi rangkaian
method yang dipengaruhinya
• Verifikasi masing-masing invariant class tidak berubah
• Verifikasi object transisi diantara state-state yang ada. – Rencanakan rangkaian
state/transisisi – Set up object dalam inisial state dengan menyeting variable – Sediakan event
pertama dan cek transisi yang terjadi
E. Pengujian integrasi object
• Menguji unit yang telah diuji secara tunggal bekerja secara baik pula setelah digabungkan
pada sistem
• Mereka akan digabungkan ke dalam suatu grup logis yang koheren untuk diuji
kembali( subsistem )
• Saat subsistem tersebut berhasil bekerja dengan baik maka akan dilanjutkan dengan
menggabungkannya dengan subsistem yang lain dan seterusnya sampai membentuk suatu
sistem utuh yang teruj
i • Hal yang diperhatikan yaitu memeriksa semua unit apakah bekerja bersama dengan baik.
• Penguji lebih mengkonsentrasikan pada interaksi unit daripada fungsionalitasnya 13
F. Merancang dan Melakukan Integration Testing
• Putuskan bagaimana dan dimana untuk menyimpan, menggunakan kembali dan
mengkodekan integration test – tunjukan dalam project schedule
• Ekesekusi unit-unit test sebanyak mungin sesuai dengan waktu yang tersedia
• Gunakan test regresi
• Pastikan kebutuhan pembangunan telah dispesifikasikan.
• Gunakan use case yang harus diimplementasikan
• Eksekusi system testG. Tahapan System Testing
• Memeriksa apakah sistem sudah berlaku dengan benar atau belum saat digunakan oleh user.
• Memperkirakan apakah sistem dapat menanggulangi segala kondisi dan data mainstream.
• Memeriksa performansi behaviour dari sistem. Misal berapa lama waktu yang diperlukan
sistem untuk mengerjakan suatu tugas yang diberikan.
• Menguji volume, stress dan storage untuk meeriksa performance dibawah kondisi ekstrim
seperti jumlah input yang besar, high speed input, jumlah user yang banyak serta
meningkatnya jumlah aktivitas secara tiba-tiba.
• Semua perhitungan diperiksa ketepatannya dengan data dan kondisi yang telah diperkirakan
maupun tidak.
• Menguji error handling dan recovery dari sistem seperti memeriksa bahwa akan keluar
pesan error yang tepat pada setiap kondisi dan pemulihan yang baik setelah sistem
mengalami fatal errror.
• Memeriksa kelayakan tingkat keamanan pada sistem agar user yang tidak berwenang tidak
dapat memperoleh akses ke sistem.
3.1.2 Pengujian White Box : 14
15. Pengujian White Box
Digunakan untuk mengetahui cara kerja suatu perangkatlunak secara internal. Pengujian
dilakukan untuk menjamin operasi-operasiinternal sesuai dengan spesifikasi yang telah
ditetapkan denganmenggunakan struktur kendali dari prosedur yang dirancang. Tujuan kita
adalah menjamin semua statemen dan kondisi telah dieksekusi minimal sekal
iPelaksanaan pengujian white box :
a. 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.
b. Menjalani logical decision pada sisi dan false
c. Mengeksekusi pengulangan (looping) dalam batas-batas yang ditentukan d. Menguji
struktur data internal
Contoh Testing White Box: 15
A. Condition TestingCondition Testing
bertujuan untuk mengeksekusi semua kondisi lojik darisebuah modul program Dapat
mendefinisikan Relational Expression (E1 op E2) : dimana E1 dan E2 adalah arithmetic
expression Simple Condition: variabel boolean atau relational expression, mungkin diawali
dengan operator NOT Compound condition: terdiri dari dua atau lebih simple
conditions,operator boolean, dan tanda kurung Boolean Expression: kondisi tanpa relational
expressionTipe kesalahan pada sebuah kondisi dapat mencakup: boolean operator error
(adanya incorrect/missing/extra boolean operator) boolean variable error boolean parenthesis
(tanda kurung) error relational operator error arithmetic expression errorMetode condition
testing fokus pada pengujian setiap kondisi yang ada padaprogram, Keuntungan strategi
condition testing Memperkirakan pengujian berdasarkan kondisi adalah hal yang simpel
Cakupan pengujian dapat mengarahkan pada penambahan kasus uji untuk sebuah
programBeberapa strategi yang termasuk condition testing Branch Testing Domain Testing
Branch and Relational Operator Testing – menggunakan kondisi sebagai batasanContoh: C1
= B1 & B2 dimana B1, B2 adalah boolean conditions Batasan kondisi D1, D2 dimana D1 dan
D2 dapat bernilai true (t) atau false (f) Cabang dan operator relasi membutuhkan batasanbatasan { (t,t), (f,t), (t,f) } harus dipenuhi untuk eksekusi C1Cakupan batasan-batasan
menjamin pendekteksian kesalahan pada operatorrelasional (relational operator errors)B.
Branch Testing 16
2. 17. Branch testing adalah strategi pengujian berbasis kondisi yang paling
simpel,Untuk setiap kondisi percabangan C, maka setiap cabangnya harus
dieksekusiminimal sekali (yang bernilai true atau false)C. Data Flow TestingMetode
Data Flow testing memilih aliran tes dari program berdasarkan lokasipendefinisian
dan penggunaan variabel dalam program dengan Data flow testing Setiap statemen di
dalam program diasumsikan diisi dengan angka yang unikdan diasumsikan tidak ada
fungsi yang mengubahnya Defs( s ) = { x | statemen S berisi pendefinisian X }
Use( s ) = { x | statemen S berisi penggunaan X } DU Chain (Definition - Use Chain)
dari variabel X dengan bentuk {X, S, S’}, dimana S, S’ adalah jumlah statemen, X di
dalam Defs(S) dan Defs(S’). Rangkaian yang mungkin lainnya: DD (DefinitionDefinition Chain) – harus dihindari UU (Use-Use Chain) - common chain UD (Use-
Definition Chain) - common chain Salah satu strategi yang simpel adalah Strategi DU
Testing Strategi ini menyatakan bahwa setiap DU chain harus dilalui minimal sekali
17
3. 18. D. Loop TestingLoop adalah dasar dari banyak algoritma. Loop dapat
didefinisikan menjadiberikut:Untuk menguji:Simple Loops dengan n kali:1. Abaikan
perulangan2. Masuki perulangan sekali3. Masuki perulangan dua kali4. Masuki
perulangan m kali dimana m