Minggu, 19 Desember 2021

Implementasi dan Pemeliharaan

 1. Implementasi perangkat lunak

Perancangan dan implementasi perangkat lunak adalah tahap dalam proses rekayasa perangkat lunak dimana dikembangkan sistem Perangkat Lunak yang dapat dieksekusi. implementasi adalah proses mewujudkan desain sebagai sebuah program. rekayasa perangkat lunak mencakup semua kegiatan yang terlibat dalam pengembangan perangkat lunak dari persyaratan awal sistem hingga pemeliharaan dan pengelolaan sistem yang digunakan. implementasi dapat melibatkan pengembangan program atau menyesuaikan dan mengadaptasi sistem generik, offthe-shelf untuk memenuhi persyaratan khusus dari suatu organisasi.
A. Reuse
Penggunaan ulang (reuse) perangkat lunak dimungkinkan pada sejumlah level yang berbeda:
  1. Tingkat Abstraks: Pada tingkat ini, tidak menggunakan reuse software secara langsung tetapi menggunakan pengetahuan abstraksi dalam desain perangkat lunak menggunakan pola desain dan pola arsitektur.
  2. Tingkat Objek: Pada tingkat ini, langsung menggunakan reuse objects dari library dari pada menulis kode sendiri.
  3. Tingkat Komponen: Komponen adalah kumpulan objek dan kelas objek yang beroperasi bersama untuk menyediakan fungsi dan layanan terkait. Pada tingkat ini harus menyesuaikan dan memperluas komponen dengan menambahkan beberapa kode sendiri.
  4. Tingkat Sistem: Pada tingkat ini, menggunakan kembali seluruh sistem aplikasi. Biasanya melibatkan beberapa jenis konfigurasi sistem. Dapat dilakukan dengan menambahkan dan memodifikasi kode atau dengan menggunakan antarmuka konfigurasi sistem sendiri.
B. Manajemen konfigurasi (Configuration Management)
Manajemen konfigurasi merupakan proses rekayasa sistem untuk menetapkan dan mempertahankan konsistensi dari kinerja produk, fungsional, dan atribut fisik dengan persyaratan, desain, dan informasi operasional sepanjang hidupnya. tujuan dari manajemen konfigurasi adalah untuk mendukung proses integrasi sistem sehingga semua pengembang dapat mengakses kode dan dokumen dengan cara yang terkontrol, mencari tahu perubahan yang telah dibuat, dan mengkompilasi dan menghubungkan komponen untuk membuat sistem.
Tiga aktivitas dasar manajemen konfigurasi:
  1. Version Management, dukungan diberikan untuk melacak berbagai versi komponen perangkat lunak, mencakup fasilitas untuk mengkoordinasikan pengembangan oleh beberapa programmer.
  2. Integrasi sistem, dukungan disediakan untuk membantu pengembang menentukan versi komponen yang digunakan untuk membuat setiap versi sistem.
  3. Pelacakan masalah, dukungan diberikan untuk memungkinkan user melaporkan bug dan masalah lain, dan memungkinkan semua pengembang untuk melihat siapa yang bekerja pada masalah ini dan memperbaikinya.
C. Host target development
  • Perangkat lunak dikembangkan pada satu komputer (host), tetapi berjalan pada mesin yang terpisah (target).
  • Platform lebih dari sekedar perangkat keras, termasuk sistem operasi yang terinstal ditambah perangkat lunak pendukung lainnya seperti DBMS, platform pengembangan, dan lingkungan pengembangan interaktif.
  • Platform pengembangan dan eksekusi adalah sama, sehingga memungkinkan untuk mengembangkan perangkat lunak dan mengujinya di mesin yang sama. tetapi terkadang sering berbeda sehingga perlu memindahkan perangkat lunak yang dikembangkan ke platform eksekusi untuk menguji atau menjalankan simulator pada mesin untuk pengembangan.
  • Platform pengembangan perangkat lunak harus menyediakan berbagai alat untuk mendukung proses rekayasa perangkat lunak, termasuk:
  1. Sebuah kompilator terintegrasi dan sistem pengeditan yang dirancang secara sintaks yang memungkinkan untuk membuat, mengedit, dan mengkompilasi kode.
  2. Sistem debug bahasa.
  3. Alat pengeditan grafis, seperti alat untuk mengedit UML.
  4. Alat pengujian, seperti JUnit yang dapat menjalankan serangkaian tes secara otomatis pada versi baru program.
  5. Alat dukungan proyek yang membantu mengatur kode untuk berbagai proyek pengembangan.
2. Pemeliharaan  (Maintenance)
Pemeliharaan perangkat lunak adalah suatu aktivitas yang sangat luas yang sering digambarkan mencakup semua pekerjaan yang dibuat di suatu sistem setelah perangkat lunak beroperasi.
Aktivitas meliputi:
  • Penambahan atau perbaikan program, seperti penambahan fungsi baru, dan perbaikan tampilan.
  • Perbaikan terhadap kesalahan yang timbul.
  • Penghapusan kemampuan kualitas.
  • Peningkatan pencapaian & memperluas daya guna untuk memenuhi kebutuhan user yang semakin bertambah.
  • Menyesuaikan perangkat lunak untuk memenuhi lingkungan yang berubah.
A. Kategori pemeliharaan perangkat lunak
  • Korektif adalah perbaikan program akibat adanya kesalahan.
  • Adaptif adalah penyesuaian dengan lingkungan yang baru, seperti penerapan pada platform di lingkungan yang baru, format tampilan printer, dll.
  • Perfective terjadi pada saat pengguna sistem atau stakeholder merubah requirement dari sistem yang dibangun.
  • Preventif berhubungan dengan prediksi yang akan datang, seperti penggunaan anti virus untuk keamanan data, backup data dan program.
Contoh tugas-tugas pemeliharaan
B. Pemeliharaan korektif (Corrective Maintenance)
  • Pekerjaan pemeliharaan sistem harus dilakukan terlebih dahulu di lingkungan pengujian, dan kemudian dimigrasikan ke operasional sistem.
  • Situasi terburuk adalah kegagalan sistem. Jika keadaan darurat terjadi, tim pemeliharaan mencoba memperbaiki masalah dengan segera, sementara permintaan sistem tertulis disiapkan dan ditambahkan ke log pemeliharaan.
  • Ketika sistem beroperasi kembali, tim pemeliharaan menentukan penyebabnya, menganalisa masalah, dan mendesain solusi permanen. Kemudian memperbarui file data, menguji sistem secara menyeluruh, dan menyiapkan dokumentasi lengkap.
C. Pemeliharaan adaptif (Adaptive Maintenance)
  • Pemeliharaan adaptif menambahkan peningkatan pada operasional sistem dan membuat sistem lebih mudah digunakan berupa peningkatan fitur baru/perubahan.
  • Misalnya : layanan baru, teknologi manufaktur baru, atau dukungan untuk operasi berbasis web baru.
  • Pemeliharaan adaptif membutuhkan lebih banyak sumber daya departemen IT daripada pemeliharaan korektif.
  • Pemeliharaan adaptif bisa lebih sulit daripada pengembangan sistem baru karena penyempurnaan harus bekerja dalam batasan sistem yang ada/baru.
D. Pemeliharaan perfektif (Perfective Maintenance)
  • Melibatkan perubahan operasional sistem agar lebih efisien, dapat diandalkan, dan dapat dipelihara.
  • Permintaan untuk pemeliharaan korektif dan adaptif biasanya berasal dari pengguna, sedangkan departemen IT biasanya memulai pemeliharaan perfektif.
  • Pemeliharaan perfektif dapat meningkatkan keandalan sistem. Misalnya, masalah input dapat menyebabkan program berhenti secara tidak normal, sehingga diperlukan program yang dapat menangani masalah tsb.
  • Semakin banyak program berubah, semakin besar ketidakefisienan dan sulit dipertahankan.
E. Pemeliharaan preventif (Preventive Maintenance)
  • Untuk menghindari masalah, pemeliharaan preventif membutuhkan area analisis dimana masalah mungkin terjadi.
  • Pemeliharaan preventif menghasilkan peningkatan kepuasan pengguna, downtime yang menurun, dan pengurangan biaya.
  • Pemeliharaan harus dilayani oleh teknisi yang ahli sehingga kualitas pemeliharaan akan langsung mempengaruhi keberhasilan organisasi.

3. Pemeliharaan Manajemen
A. Tim Pemeliharaan
  1. Systems Administrator: Bertanggung jawab untuk pemeliharaan rutin dan berwenang mengambil tindakan pencegahan untuk menghindari keadaan darurat. Seperti kerusakan server, pemadaman jaringan, insiden keamanan, dan kegagalan perangkat keras.
  2. Systems Analyst: Bertugas menyelidiki dan menemukan sumber masalah dengan menggunakan keterampilan analisis dan sintesis. Analisis: memeriksa keseluruhan unsur-unsur individu. Sintesis: mempelajari bagian-bagian untuk memahami keseluruhan sistem.
  3. Programmer: Programmer aplikasi bekerja pada pengembangan dan pemeliharaan sistem baru. programmer sistem berkonsentrasi pada perangkat lunak dan utilitas sistem. programmer basis data fokus pada pembuatan dan dukungan sistem basis data skala besar.
B. Permintaan Pemeliharaan
Pengguna mengirimkan sebagian besar permintaan untuk pemeliharaan korektif dan adaptif ketika sistem tidak berfungsi dengan baik, atau jika mereka menginginkan fitur baru.
  1. Determinasi Awal: Ketika pengguna mengajukan permintaan pemeliharaan, administrator membuat penentuan awal, jika permintaan memerlukan perhatian segera, administrator akan mengambil tindakan sekaligus.
  2. Komite Peninjau Sistem: Ketika suatu permintaan melebihi tingkat biaya yang telah ditentukan atau melibatkan perubahan konfigurasi utama, komite peninjau sistem akan menetapkan prioritas, atau menolaknya.
  3. Penyelesaian Tugas: Administrator sistem bertanggung jawab untuk mempertimbangkan pengalihan tugas di antara staf IT atau membatasi tugas pemeliharaan kepada individu atau tim tertentu agar tugas dapat diselesaikan dengan baik.
  4. User Notification: Pengguna yang memulai permintaan pemeliharaan mengharapkan tanggapan yang cepat, terutama jika situasi tersebut secara langsung mempengaruhi pekerjaan mereka. Bahkan ketika tindakan korektif tidak dapat terjadi dengan segera, pengguna akan menghargai umpan balik dari administrator sistem dan harus terus di beritahu tentang keputusan atau tindakan yang akan mempengaruhi pengguna.

Rabu, 15 Desember 2021

Pengujian Aplikasi Web

 Konsep Pengujian

Konsep Pengujian adalah serangkaian aktivitas yang tujuannya untuk menemukan kesalahan dalam isi, fungsi, kegunaan, kemampuan navigasi, kinerja, kapasitas dan keamanan aplikasi web
sebelum aplikasi-aplikasi web yang dibuat dikirimkan ke end user. hal ini penting karena jika end user menemukan kesalahan yang membuat mereka meragukan aplikasi web tersebut, mereka akan pergi ke web lain untuk mencari isi dan informasi. langkahnya dimulai dengan fokus pada aspek aplikasi web yang terlihat oleh user dan berlanjut pada pengujian yang terkait dengan teknologi dan infrastruktur

Konsep Pengujian Aplikasi Web
A. Dimensi Kualitas
Kualitas dievaluasi dengan menerapkan serangkaian tinjauan teknis yang melihat berbagai elemen dari model perancangan dan dengan menerapkan proses pengujian.
Atribut dimensi kualitas:
  1. Isi (content): Dievaluasi ditingkat sintak dan semantik. Pada tingkat sintak dokumen berbasis teks diuji dalam hal ejaan, tanda baca dan tata bahasa. Pada tingkat semantik aspek yang dinilai adalah kebenaran informasi yang disajikan, konsistensi di seluruh objek isi dan objek terkait, dan rendahnya ambiguitas.
  2. Fungsi: Diuji untuk menemukan kesalahan yang menunjukkan ketidaksesuaian dengan persyaratan customer.
  3. Struktur: Dinilai untuk memastikan bahwa aplikasi web benar-benar menyediakan isi dan fungsi aplikasi web.
  4. Kegunaan: Diuji untuk memastikan bahwa setiap kategori user didukung oleh antarmuka yang user friendly serta menerapkan semua sintak dan semantik navigasi yang diperlukan.
  5. Kemampuan untuk dapat dinavigasi: Diuji untuk memastikan bahwa semua sintak dan semantik navigasi dilakukan untuk menemukan kesalahan, seperti link yang salah dan dead link.
  6. Kinerja: Diuji di bawah berbagai kondisi operasi, konfigurasi, dan loading.
  7. Kompatibilitas: Diuji dengan menjalankan aplikasi web dalam berbagai konfigurasi host yang berbeda baik di sisi server maupun client.
  8. Interoperabilitas: Diuji untuk memastikan bahwa aplikasi web berantarmuka dengan benar dengan aplikasi lain dan database.
  9. Keamanan: Diuji dengan menilai kerentanan potensial. 
B. Strategi pengujian
Langkah-langkahnya:
  1. Model konten untuk aplikasi web ditinjau untuk menemukan kesalahan.
  2. Model antarmuka ditinjau untuk memastikan bahwa semua use-case dapat diakomodasi.
  3. Model perancangan ditinjau untuk mengungkap kesalahan navigasi.
  4. Antarmuka pengguna diuji untuk menggungkap kesalahan dalam presentasi dan/atau mekanik navigasi.
  5. Komponen fungsional diuji untuk setiap unit.
  6. Navigasi untuk seluruh arsitektur diuji.
  7. Aplikasi web diimplementasikan dalam berbagai konfigurasi lingkungan yang berbeda dan diuji kompatibilitasnya.
  8. Pengujian keamanan dilakukan dalam upaya untuk mengungkap kelemahan aplikasi web.
  9. Pengujian kinerja dilakukan.
  10. Aplikasi web diuji oleh end user, hasil interaksinya dievaluasi untuk menemukan kesalahan isi dan navigasi, keamanan, keandalan, dan kinerja aplikasi web.
C. Perencanaan Pengujian
Sebuah rencana aplikasi web mengidentifikasikan:
  • Himpunan tugas-tugas yang diterapkan ketika pengujian dimulai.
  • Produk kerja yang dihasilkan ketika setiap tugas pengujian dijalankan.
  • Cara dimana hasil pengujian dievaluasi, dicatat, dan digunakan kembali saat pengujian regresi dilakukan.

Pengujian Isi
Pengujian isi menggabungkan baik peninjauan maupun pembuatan test case yang dapat dilaksanakan.
A. Tujuan pengujian isi
  • Untuk mengungkap kesalahan sintak dengan memeriksa ejaan dan tata bahasa otomatis.
  • Untuk mengungkap kesalahan semantik yang fokus pada informasi pada setiap isi objek.
  • Untuk mencari kesalahan dalam pengaturan atau struktur isi dalam susunan dan hubungan yang tepat.
Contoh:
B. Pengujian basis data
Pengujian basis data menjadi sulit dikarenakan:
  • Permintaan dari client jarang disajikan dalam bentuk yang dapat dimasukkan ke sistem manajemen basis data.
  • Basis data dapat berada jauh dari server. .
  • Data mentah yang diperoleh dari basis data harus dikirim ke server aplikasi web dan diformat dengan benar untuk pengiriman selanjutnya kepada client.
  • Objek isi yang bersifat dinamis harus dikirim ke client dalam bentuk yang dapat ditampilkan kepada end user.
Pengujian basis data harus memastikan bahwa:
  • Informasi yang valid dilewatkan antara client dan server dari lapisan antarmuka.
  • Proses aplikasi web menuliskan ekstraksi atau format data user dengan baik dan benar.
  • Data user diberikan dengan tepat untuk fungsi transformasi data pada sisi server yang membentuk query yang sesuai.
  • Query yang dilewatkan ke layer manajemen data yang berkomunikasi dengan rutin-rutin akses basis data terletak di komputer lain.

Pengujian Antar Muka
Pengujian antar muka bertujuan untuk memastikan bahwa script yang benar dibangun untuk setiap permintaan user dan benar dikirimkan ke server.
A. Strategi Pengujian Antarmuka
Langkah-langkahnya:
  1. Fitur-fitur antarmuka diuji seperti jenis huruf, warna, gambar, border, tabel dll.
  2. Mekanisme antarmuka diuji dengan cara yang sama dengan pengujian unit, misalnya pengujian untuk keranjang belanja pada e-commerce, isi streaming, penulisan script dll.
  3. Mekanisme antarmuka diuji dalam konteks penggunaan use case untuk kategori user tertentu.
  4. Antarmuka lengkap diuji terhadap test case terpilih.
  5. Antarmuka diuji dalam berbagai lingkungan.
Contoh penggunaan warna, teks dan gambar pada antarmuka:
Contoh pengujian pada antarmuka yang berbeda:
Contoh antarmuka diuji dalam berbagai lingkungan:
B. Mekanisme Pengujian Antarmuka
1. Formulir. Pengujian untuk memastikan:
  • Label formulir dapat diidentifikasikan secara visual
  • Server menerima semua informasi form
  • Default yang tepat saat user tidak memilih dari menu pull down atau dari tombol
  • Fungsi-fungsi perambah seperti tanda panah back tidak merusak data yang diisikan ke dalam form
  • Script yang memeriksa kesalahan input data
  • Lebar kolom dan jenis data yang tepat
  • Mencegah user memasukkan string text lebih panjang dari jumlah max. yang telah ditetapkan
  • Menu pull down diurutkan dan dapat dipahami user
  • Auto-fill tidak mengarah ke kesalahan input data
  • Key tab memicu perpindahan di antara kolom
Contoh input data:
Contoh untuk user yang mengisi data sendiri:
2. Link. Setiap link navigasi diuji untuk memastikan bahwa objek isi atau fungsi yang tepat dapat dicapai
3. Client-side scripting. Pengujian dilakukan untuk menemukan kesalahan saat script dijalankan
4. HTML dinamis. Dijalankan untuk memastikan bahwa tampilan dinamis sudah benar
5. Pop-up windows. Memastikan bahwa:
  • Pop-up diukur dan diposisikan dengan benar
  • Pop-up tidak menutupi jendela aplikasi web asli
  • Perancangan pop-up konsisten dengan perancangan antarmuka
  • Scroll bar dan mekalisme kontrol lainnya yang ditambahkan ke pop-up diletakkan dengan benar
6. Script CGI. Pengujian kotak hitam dilakukan dengan penekanan pada integritas data saat dilewatkan ke script CGI
7. Streaming content. Pengujian menunjukkan bahwa data streaming terbarukan, ditampilkan dengan benar dan dapat dihentikan tanpa kesalahan dan restart tanpa kesulitan
8. Mekanisme aplikasi antarmuka spesifik. Pengujian sesuai dengan daftar fungsi dan fitur yang didefinisikan pada antarmuka
Contoh fitur yang tidak disediakan pada input data:
C. Pengujian kompatibilitas
Aplikasi web harus dapat dijalankan pada komputer yang berbeda, berupa:
  1. Perangkat tampilan
  2. Sistem Operasi
  3. Browser
  4. Kecepatan koneksi jaringan
Langkah-langkah uji kompatibilitas:
  1. Mendefinisikan sekumpulan konfigurasi komputasi di sisi client, mengidentifikasi platform, perangkat layar, sistem operasi, browser yang tersedia, kecepatan koneksi internet, dll.
  2. Melakukan serangkaian uji validasi kompatibilitas berupa pengujian navigasi, pengujian kinerja, dan pengujian keamanan.
Pengujian Navigasi
Tugas pengujian navigasi adalah memastikan bahwa semua mekanisme yang memungkinkan pengguna aplikasi web melakukan penelusuran melalui aplikasi web, dan untuk memvalidasi bahwa setiap unit semantik navigasi dapat dicapai oleh kategori pengguna yang tepat.
Pengujian Sintaks Navigasi
  1. Link Navigasi: Mekanisme menyertakan link internal dalam aplikasi web dan link eksternal ke aplikasi web lain, dan anchor pada halaman web tertentu.
  2. Redirect: Link beraksi saat user meminta URL yang tidak ada atau memilih sebuah link yang isinya telah dihapus atau namanya telah berubah.
  3. Bookmark: Memastikan bahwa judul halaman yang berarti dapat diekstraksi saat bookmark dibuat.
  4. Frame and frameset: Frameset berisi beberapa frame dan memungkinkan untuk menampilkan beberapa halaman web secara bersamaan. Oleh karena itu harus diuji dalam hal isi, tata letak layar dan ukuran yang tepat, kinerja download, dan kompatibilitas browser.
  5. Site map: Berisi daftar isi lengkap pada semua halaman web, setiap entry harus diuji untuk memastikan bahwa link membawa user membaca isi/fungsionalitas yang tepat.
  6. Search engine internal: User mengetikkan kata kunci untuk menemukan isi yang diperlukan.
Pengujian Konfigurasi
A. Masalah di bagian server
  • Aplikasi web sepenuhnya kompatibel dengan server OS.
  • Berkas sistem, direktori, dan data yang terkait dibuat dengan benar saat aplikasi web dioperasikan.
  • Keamanan sistem mengijinkan aplikasi web untuk berjalan dan melayani user tanpa gangguan atau penurunan kinerja.
  • Aplikasi web terintegrasi secara tepat dengan perangkat lunak basis data.
  • Script aplikasi web sisi server mengeksekusi dgn benar.
  • Jika proxy server yang digunakan, apakah perbedaan konfigurasi telah diatasi melalui pengujian.
B. Masalah di bagian client
Pengujian konfigurasi fokus pada kompatibilitas aplikasi web pada komponen berikut:
  1. Hardware: CPU, memori, penyimpanan, perangkat cetak
  2. Sistem operasi
  3. Browser: Firefox, Safari, IE, Opera, Chrome
  4. Komponen antarmuka: Active-X, Java applet
  5. Plug in: Quick Time, RealPlayer
  6. Konektivitas: kabel, DSL, Wifi

Pengujian Keamanan
Pengujian keamanan bertujuan untuk menyelidiki kerentanan lingkungan di sisi client, komunikasi jaringan yang terjadi saat data dilewatkan dari client ke server, dan di lingkungan server itu sendiri.
Contoh kerentanan yang dapat terjadi:
  1. Buffer overflow, seperti memasukkan URL yang lebih panjang dari ukuran buffer
  2. Akses tidak sah
  3. Spoofing
  4. Serangan DOS
Implementasi keamanan:
  1. Firewall
  2. Authentication
  3. Encryption
  4. Authorization

Jumat, 10 Desember 2021

PENGUJIAN PERANGKAT LUNAK

 1. Dasar-dasar pengujian perangkat lunak

Pengujian perangkat lunak adalah proses menjalankan dan mengevaluasi sebuah perangkat lunak secara manual maupun otomatis untuk menguji apakah perangkat lunak sudah memenuhi persyaratan atau belum, atau untuk menentukan perbedaan antara hasil yang diharapkan dengan hasil sebenarnya. pengujian bertujuan untuk mencari kesalahan.
A. Tujuan pengujian:
  1. Menilai apakah perangkat lunak yang dikembangkan telah memenuhi kebutuhan pemakai.
  2. Menilai apakah tahap pengembangan perangkat lunak telah sesuai dengan metodologi yang digunakan.
  3. Membuat dokumentasi hasil pengujian yang menginformasikan kesesuaian perangkat lunak yang diuji dengan spesifikasi yang telah ditentukan.
B. Testability
Testability adalah kemampuan perangkat lunak untuk dapat diuji artinya seberapa mudah sebuah program komputer untuk bisa diuji.
Karakteristik testability perangkat lunak :
  1. Kemampuan untuk bisa dioperasikan (operability)
  2. Kemampuan untuk bisa diobservasi (observability)
  3. Kemampuan untuk dapat dikontrol (controllability)
  4. Kemampuan untuk dapat disusun (decomposability)
  5. Kesederhanaan (simplicity)
  6. Stabilitas (stability)
  7. Kemampuan untuk dapat dipahami (understandability)
C. Karakteristik pengujian
  1. Pengujian yang baik memiliki probabilitas tinggi untuk menemukan kesalahan
  2. Pengujian yang baik tidak berulang-ulang, waktu dan sumber daya pengujian terbatas
  3. Pengujian terbaik harus menjadi “bibit terbaik” yaitu pengujian yang memiliki kemungkinan tertinggi dalam mengungkap seluruh kelas kesalahan
  4. Pengujian yang baik tidak terlalu sederhana atau tidak terlalu rumit
2. Pengujian White Box
Pengujian white box disebut juga pengujian kotak kaca (glass box testing). Pengujian white box merupakan sebuah filosofi perancangan test case yang menggunakan struktur kontrol.
A. Pengujian jalur dasar(basis path testing)
Pengujian jalur dasar adalah teknik pengujian yang memungkinkan perancangan test case untuk menurunkan ukuran kompleksitas logis dari suatu rancangan prosedural dan menggunakan ukuran ini sebagai pedoman untuk menentukan rangkaian dasar jalur eksekusi.
B. Jalur independen
Jalur Independen (Independent Path) adalah setiap jalur yang melalui program yang memperkenalkan setidaknya satu kumpulan pernyataan-pernyataan pemrosesan atau kondisi baru.
Jalur independen gambar di bawah ini:
  • Path 1: 1-11
  • Path 2: 1-2-3-4-5-10-1-11
  • Path 3: 1-2-3-6-8-9-10-1-11
  • Path 4: 1-2-3-6-7-9-10-1-11
Path 1-2-3-4-5-10-1-2-3-6-8-9-10-1-11 tidak dianggap jalur independen karena tidak melintasi setiap edge baru. path 1 sampai 4 merupakan basis set.
C. Kompleksitas siklomatik
Kompleksitas siklomatik adalah metrik perangkat lunak yang menyediakan ukuran kuantitatif dari kompleksitas logis suatu program.
Perhitungan Kompleksitas Siklomatik:
  • Jumlah daerah-daerah (region) flow graph yang berhubungan dengan Kompleksitas Siklomatik
  • Kompleksitas Siklomatik V (G) = E – N + 2 dimana E adalah jumlah edge, N adalah jumlah node.
  • Kompleksitas Siklomatik V (G) = P + 1 dimana P adalah jumlah node predikat.
Dari kasus independent path:
  • Jumlah region adalah 4
  • V (G) = 11 edge – 9 node + 2 = 4
  • V (G) = 3 node predikat + 1 = 4
  • Jadi Kompleksitas Siklomatiknya adalah 4

D. Menghasilkan test case
Diberikan Pseudocode sbb:


3. Pengujian Black Box
Pengujian black box disebut juga pengujian perilaku. pengujian black box memungkinkan untuk membuat beberapa kumpulan kondisi input yang akan melakukan semua kebutuhan fungsional untuk program.
Kategori kesalahan pada pengujian black box:
  • Fungsi yang salah atau hilang
  • Kesalahan antarmuka
  • Kesalahan struktur data atau akses basis data eksternal
  • Kesalahan perilaku atau kinerja
  • Kesalahan inisialisasi dan penghentian
A. Metode pengujian berbasis grafik
Langkah-langkah pengujian:
  • Memahami objek-objek yang dimodelkan dalam perangkat lunak dan penghubung yang menghubungkan objek-objek tersebut
  • Menentukan serangkaian pengujian yang memastikan bahwa semua objek memiliki hubungan satu sama lain seperti yang diharapkan
  • Node direpresentasikan sebagai lingkaran.
  • Hubungan direpresentasikan dengan anak panah
  • Hubungan satu arah (directed link) bahwa hubungan bergerak hanya satu arah.
  • Hubungan dua arah atau hubungan simetris (bidirection link) bahwa hubungan berlaku dua arah.
  • Hubungan paralel digunakan ketika ada sejumlah hubungan yang berbeda yang dibangun di antara node-node grafik.
B. Partisi kesetaraan (equivalence partitioning)
Partisi kesetaraan adalah metode pengujian black box yang membagi daerah input program ke dalam kelas-kelas data dari test case yang dapat diturunkan. sebuah kelas kesetaraan merepresentasikan keadaan valid atau tidak valid dari kondisi input. contoh: kesalahan terhadap semua data karakter yang mungkin mengharuskan banyak test case sebelum kesalahan umum teramati.
Kelas kesetaraan dapat didefinisikan:
  • Jika kondisi input menspesifikasikan range, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
  • Jika kondisi input membutuhkan nilai tertentu, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
  • Jika kondisi input menspesifikasikan anggota dari himpunan, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid didefinisikan
  • Jika kondisi input adalah boolean, satu kelas kesetaraan yang valid dan dua kelas kesetaraan yang tidak valid ditentukan
C. Analisis nilai batas (boundary value analysis)
Analisis nilai batas merupakan teknik perancangan test case yang melengkapi partisi kesetaraan dengan fokus pada kondisi input, dan juga akan menghasilkan output. banyak kesalahan terjadi pada kesalahan input. bva mengijinkan untuk menyeleksi kasus uji yang menguji batasan nilai input. bva merupakan komplemen dari equivalence partitioning, lebih memilih pada elemen-elemen di dalam kelas ekivalen pada bagian sisi batas dari kelas
pedoman bva:
  • Jika kondisi input menspesifikasikan range yang dibatasi oleh nilai a dan b, test case harus dirancang dengan nilai a dan b dan hanya di atas dan di bawah nilai a dan b
  • Jika kondisi input menspesifikasikan sejumlah nilai, test case harus dikembangkan untuk menguji jumlah-jumlah minimum dan maksimum.
  • Terapkan pedoman 1 dan 2 untuk kondisi input.
  • Jika struktur data program internal memiliki batas-batas yang telah ditentukan, pastikan untuk merancang test case untuk menguji struktur data pada batasnya.

4. Pengujian Larik Ortogonal
Dapat diterapkan untuk masalah-masalah dimana input domain relatif kecil tapi terlalu besar untuk mengakomodasi pengujian yang lengkap. bermanfaat dalam menemukan kesalahan yang terkait dengan logika yang salah dalam komponen perangkat lunak.
contoh:
Jika rancangan aplikasi untuk login seperti gambar di atas, maka black box testing dapat dibuat berdasarkan beberapa kondisi input (5 kondisi).