• Tidak ada hasil yang ditemukan

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

N/A
N/A
Protected

Academic year: 2022

Membagikan "BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK"

Copied!
13
0
0

Teks penuh

(1)

IV-1

BAB IV

ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

4.1 Kebutuhan Perangkat Lunak

4.1.1 Deskripsi Umum Sistem

Kakas pembangkit kasus uji unit testing yang dibangun diberi nama GXUnit. Komponen penyusun kasus uji umum yang sudah dirumuskan pada subbab 3.2 akan menjadi masukan untuk aplikasi ini. Pengguna akan diminta untuk memasukkan komponen penyusun kasus uji tersebut satu persatu kemudian masukan tersebut akan diterjemahkan ke dalam format XML.

Kasus uji dalam format XML ini kemudian dapat dikonversi ke dalam bahasa pemrograman Java. Pengguna dapat menjalankan kasus uji dalam bahasa Java ini melalui GXUnit dimana GXUnit kemudian akan melakukan interaksi dengan salah satu xUnit framework, dalam kasus GXUnit ini digunakan framework JUnit. Secara global, proses kerja GXUnit dapat dilihat pada Gambar IV-1.

Gambar IV-1 Arsitektur GXUnit

Idealnya,GXUnit sebagai kakas pembangkit kasus uji unit testing ini memiliki kemampuan untuk menerjemahkan kasus uji dari format XML ke dalam berbagai bahasa pemrograman, dan mampu berinteraksi dengan beberapa xUnit framework dalam menjalankan pengujian.

Agar mampu menerjemahkan kasus uji dari format XML ke beberapa bahasa pemrograman, kakas GXUnit harus dilengkapi dengan parser untuk masing-masing bahasa pemrograman dan pembangunan parser yang spesifik terhadap bahasa pemrograman ini merupakan hal yang cukup sukar diimplementasikan. Oleh karena itu, kakas GXUnit dibatasi hanya

(2)

menerjemahkan kasus uji ke dalam satu bahasa pemrograman saja, yaitu bahasa Java yang dianggap sebagai salah satu bahasa pemrograman yang luas penggunaannya serta xUnit framework yang dipilih adalah JUnit yang dianggap sebagai salah satu xUnit framework yang paling berkembang dan luas penggunaannya.

4.1.2 Spesifikasi Kebutuhan Perangkat Lunak

Berdasarkan penjelasan atau deskripsi perangkat lunak di atas, dapat disimpulkan beberapa fungsionalitas yang harus dimiliki oleh GXUnit. Secara umum, GXUnit harus mampu membantu pengguna dalam me-manage kasus uji, men-generate kasus ujinya dalam format XML dan kemudian menerjemahkan kasus uji XML tersebut dalam bahasa pemrograman tertentu agar nantinya dapat dijalankan melalui GXUnit yang akan memanggil xUnit Framework tertentu untuk menjalankan kasus uji tersebut. Dalam pembangunan perangkat lunak GXUnit ini penerjemahan kasus uji dilakukan ke dalam bahasa Java dan xUnit Framework yang digunakan adalah JUnit. Selain itu, karena GXUnit merupakan kakas bantu untuk membentuk kasus uji, maka sebaiknya memiliki antarmuka yang mudah digunakan penguna.

Spesifikasi kebutuhan fungsional perangkat lunak GXUnit dapat dilihat pada Tabel IV-1.

Tabel IV-1 Spesifikasi Kebutuhan Fungsional Perangkat Lunak

SKPL ID Deskripsi

SKP-F- 01 GXUnit menyediakan fasilitas bagi user untuk memanipulasi (create, update,delete) kasus uji

SKP-F-02 GXUnit mampu menyusun kasus uji general dari input yang diberikan user ke dalam bentuk dokumen XML

SKP-F-03 GXUnit mampu melakukan parsing dokumen XML

SKP-F-04

GXUnit mampu melakukan konversi dari format kasus uji XML ke dalam bahasa pemrograman Java sesuai spesifikasi JUnit dengan bantuan file konfigurasi

SKP-F-05 GXUnit mampu menjalankan kasus uji dalam bahasa Java dengan cara memanggil JUnit

(3)

Spesifikasi kebutuhan non-fungsional perangkat lunak GXUnit dapat dilihat pada tabel IV-2.

Tabel IV-2 Spesifikasi Kebutuhan Non-Fungsional Perangkat Lunak

SKPL ID Deskripsi

SKP-NF- 01

GXUnit memiliki antarmuka yang memudahkan pengguna dalam penyusunan kasus uji. GXUnit melakukan parsing kode program yang akan diuji untuk mendapatkan daftar nama method yang ada dalam kode program tersebut sehingga memudahkan pengguna dalam memilih method untuk diuji tanpa harus melihat ke kode program asli.

4.1.3 Model Use Case

4.1.3.1 Diagram Use Case

Secara umum fungsionalitas perangkat lunak GXUnit telah dituangkan dalam spesifikasi kebutuhan perangkat lunak. Kemudian untuk memodelkan perangkat lunak, digunakan diagram use case. Dari fungsionalitas yang sebelumnya telah dijelaskan diturunkan menjadi beberapa use case yang menggambarkan aksi yang dapat dilakukan pengguna terhadap perangkat lunak GXUnit antara lain me-manage kasus uji dimana aksi ini dapat dibagi menjadi tiga bagian yaitu membuat, mengubah, dan menghapus kasus uji. Kemudian, pengguna dapat memilih untuk mengkonversi kasus uji dalam bentuk XML yang sudah ada ke dalam bahasa pemrograman tertentu. Dari kasus uji yang sudah terbentuk, pengguna dapat memilih untuk menjalankan kasus ujinya melalui GXUnit. Pada Gambar IV-2 berikut ini digambarkan diagram use case dari perangkat lunak GXUnit yang akan dibangun.

Gambar IV-2 Diagram Use Case GXUnit

System

Tester

ManageKasusUji

KonversiKasusUji

UpdateKasusUji

<<extend>>

DeleteKasusUji

<<extend>>

CreateKasusUji

<<extend>>

RunningKasusUji

(4)

4.1.3.2 Definisi Aktor

Terdapat satu aktor yaitu user sebagai aktor yang mengoperasikan perangkat lunak Definisi aktor dapat dilihat pada Tabel IV-3.

Tabel IV-3 Definisi Aktor

No Aktor Deskripsi

GXU-A-01 Tester

Aktor yang mengoperasikan perangkat lunak yang akan memanfaatkan aplikasi untuk melakukan unit testing

4.1.3.3 Definisi Use Case

Definisi masing-masing use case dapat dilihat pada Tabel IV-4.

Tabel IV-4 Definisi Use Case

No Use Case Deskripsi Fungsi yang

dicakup

GXU-U-01 ManageKasusUji Memilih pengelolaan kasus uji antara

lain: create, update, dan delete SKP-F-01 GXU-U-02 CreateKasusUji Membuat kasus uji general baru dalam

bentuk arsip XML

SKP-F-01, SKP-F-02

GXU-U-03 UpdateKasusUji

Melakukan update terhadap kasus uji XML yang sudah di-generate sebelumnya

SKP-F-01

GXU-U-04 DeleteKasusUji Menghapus kasus uji yang sudah ada SKP-F-01

GXU-U-05 KonversiKasusUji

Melakukan konversi kasus uji dari bahasa XML ke bahasa pemrograman Java menggunakan bantuan file konfigurasi. Dalam kasus uji ini juga dilakukan parsing dokumen XML

SKP-F-03, SKP-F-04

GXU-U-06 RunningKasusUji

Menjalankan kasus uji dalam bahasa pemrograman Java dengan cara memanggil xUnit Framework yang bersangkutan yaitu JUnit

SKP-F-05

(5)

4.1.3.4 Skenario Use Case

Setiap use case yang telah didefinisikan akan didefinisikan skenario use case yang merupakan gambaran detail interaksi antara aktor dengan perangkat lunak GXUnit. Contoh skenario normal untuk use case ManageKasusUji(GXU-U-03) dan CreateKasusUji (GXU-U-02) dapat dilihat pada Tabel IV-5. Daftar lengkap skenario setiap use case dapat dilihat pada Lampiran Acuan Teknis Subbab 2.3.4.

Tabel IV-5 Skenario ManageKasusUji dan CreateKasusUji

Aksi Aktor Reaksi Sistem

SKENARIO NORMAL (GXU-SK-02-1):

1.Memilih halaman manage kasus uji

2.Menampilkan halaman manage kasus uji 3.Memilih aksi create

4.Menampilkan form create kasus uji 5.Memasukkan data yang diminta oleh sistem

sebagai input dalam membuat kasus uji baru 6.Memilih opsi untuk men-generate kasus uji dalam format XML

7.Menyusun semua input yang sudah diberikan aktor menjadi susunan kasus uji 8 .Membentuk kasus uji dalam arsip XML SKENARIO ALTERNATIF 1, kegagalan membentuk arsip XML (GXU-SK-02-2):

1.Memilih halaman manage kasus uji

2.Menampilkan halaman manage kasus uji 3.Memilih aksi create

4.Menampilkan form create kasus uji 5.Memasukkan data yang diminta oleh sistem

sebagai input dalam membuat kasus uji baru 6.Memilih opsi untuk men-generate kasus uji dalam format XML

7.Menyusun semua input yang sudah diberikan aktor menjadi susunan kasus uji 8.Membentuk kasus uji dalam format XML 9.Gagal membentuk kasus uji dalam format XML, menampilkan pesan kesalahan

Post kondisi: Terbentuknya sebuah dokumen XML yang merupakan representasi kasus uji general

(6)

4.2 Model Analisis

4.2.1 Realisasi Use Case Tahap Analisis

Pada realisasi use case tahap analisis ini akan didefiniskan interaksi antar elemen pada perangkat lunak untuk setiap use case yang ada. Interaksi antar elemen untuk setiap use case digambarkan menggunakan sequence diagram yang disusun berdasarkan skenario yang sebelumnya sudah dijabarkan. Contoh sequence diagram use case CreateKasusUji untuk skenario normal dapat dilihat pada Gambar IV-3 dan sequence diagram untuk use case lain dapat dilihat pada Lampiran Acuan Teknis Subbab 3.1.

Gambar IV-3 Sequence Diagram Analisis ManageKasusUji dan CreateKasusUji untuk skenario normal

Pada sequence diagram tersebut terdapat beberapa kelas yang terlibat dan kelas-kelas tersebut digambarkan melalui Diagram Kelas Analisis. Pada diagram kelas analisis ini terdapat perbedaan penggambaran setiap jenis kelas, apakah kelas boundary, control, atau entity, dan interaksi antar kelas direpresentasikan dengan adanya garis asosiasi antara dua kelas. Contoh diagram kelas analisis use case CreateKasusUji dapat dilihat pada Gambar IV-4 dan diagram kelas analisis selengkapnya dapat dilihat pada Lampiran Acuan Teknis Subbab 3.1.

: Tester : GXUInterface : TestCaseController : XMLCreator : TestCase

1 : Memilih halaman manage kasus uji

2 : Menampilkan halaman manage kasus uji

3 : Memilih aksi create kasus uji

4 : Menampilkan form create kasus uji

5 : Memasukkan data untuk membuat kasus uji

6 : Memilih men-generate kasus uji general

7 : menyusun input menjadi susunan kasus uji 8 : membentuk kasus uji sebagai dokumen XML 9 : menampilkan pesan keberhasilan

(7)

Gambar IV-4 Diagram Kelas Analisis CreateKasusUji

4.2.2 Kelas Analisis

Tabel IV-5 berikut berisikan nama-nama kelas yang terlibat dalam setiap use case yang terdapat pada analisis aplikasi GXUnit ini, beserta masing-masing jenisnya (boundary, controller, atau entity).

Tabel IV-6 Kelas Analisis

No Nama Kelas Jenis

1 GXUInterface Boundary

2 TestCaseController Controller

3 XMLCreator Controler

4 XMLParser Controller

5 ConfigParser Controller

6 Converter Controller

7 CompilerJava Controller

8 JUnitRunner Controller

9 CSVController Controller

10 TestCase Entity

11 ConvertedTestCase Entity

4.3 Model Perancangan

4.3.1 Batasan Perancangan

Perancangan perangkat lunak GXUnit ini berpedoman pada framework MVC (Model View Controller). Dalam implementasi MVC, digunakan:

a. Java Plain Class sebagai Model b. Java Frame sebagai View

c. Java Plain Class sebagai Controller

GXUInterface

TestCase

XMLCreator TestCaseController

(8)

Model dalam perancangan perangkat lunak ini merupakan kelas Java biasa berupa objek yang memiliki serangkaian atribut dan method. Dalam proses berjalannya perangkat lunak ini, berbagai macam data yang diperlukan akan disimpan sementara ke dalam bentuk objek.

View berfungsi sebagai boundary antara perangkat lunak dengan user. View bertugas menampilkan berbagai form kepada user agar user dapat memasukkan data input yang diperlukan oleh perangkat lunak.

Controller berfungsi sebagai pengatur logika jalannya perangkat lunak. Controller juga merupakan penghubung antara view dengan model.

4.3.2 Perancangan Rinci Struktur Kelas

Proses analisis sebelumnya telah menghasilkan beberapa kelas yang terlibat dalam perangkat lunak GXUnit ini. Pada tahapan perancangan ini dilakukan identifikasi lebih lanjut terhadap hasil proses analisis sebelumnya. Identifikasi dilakukan sedekat mungkin dengan kode program yang akan diimplementasikan selanjutnya sehingga benar-benar dapat merepresentasikan perangkat lunak sesungguhnya.

Dari daftar kelas analisis pada subbab 4.2.2, terdapat kelas yang dipecah menjadi beberapa kelas pada tahap perancangan ini, misalnya kelas TestCase yang dipecah menjadi kelas Variabel, TestMethod, TestSuite, dan TestCase. Hal ini dilakukan untuk memudahkan pemrosesan setiap komponen penyusun kasus uji.

Keseluruhan kelas perancangan beserta keterhubungannya satu sama lain dapat dilihat padaGambar IV-6.

4.3.3 Kelas Perancangan

Tabel IV-7 berikut berisikan daftar kelas perancangan yang semuanya berasal dari kelas analisis. Dalam tabel ini dapat dilihat kesesuaian antara kelas pada tahap analisis dengan kelas pada tahap perancangan.

Tabel IV-7 Daftar Kelas Perancangan

No Nama Kelas Perancangan Nama Kelas Analisis Keterangan

1 GXUInterface GXUInterface Kelas boundary

2 TestCaseController TestCaseController Controller yang menangani operasi terhadap kasus uji

3 XMLCreator XMLCreator Generator arsip XML

4 XMLParser XMLParser Parser kasus uji XML

(9)

No Nama Kelas Perancangan Nama Kelas Analisis Keterangan 5 ConfigParser ConfigParser Parser file konfigurasi

6 Converter Converter Generator kasus uji dalam

bahasa pemrograman tertentu

7 CompilerJava CompilerJava

Controller yang memanggil JavaCompiler untuk mengkompilasi kasus uji

8 JunitRunner JUnitRunner

Controller yang memanggil TestRunner pada JUnit

9 CSVController CSVController

Parser dan generator file eksternal tambahan

10 TestCase TestCase Entity test case

11 TestSuite TestCase Entity test suite

12 TestMethod TestCase Entity test method

13 Variable TestCase Entity variable

14 ConvertedTestCase ConvertedTestCase Entity test case dalam bahasa pemrograman

4.3.4 Perancangan Antarmuka

4.3.4.1 Perancangan Antarmuka ManageKasusUji

Perancangan antarmuka untuk manage kasus uji dapat dilihat pada Gambar IV-5. Pada antarmuka ini pengguna dapat memilih satu dari tiga aksi yang mungkin dilakukan yaitu membuat kasus uji baru, melakukan update terhadap kasus uji yang sudah dibangkitkan sebelumnya atau menghapus kasus uji.

Gambar IV-5 Rancangan Antarmuka ManageKasusUji

(10)

Gambar IV-6 Diagram Kelas Perancangan Keseluruhan

GXUInterface

<<boundary>>

TestCaseController<<control>>

-message: String -creator: XMLCreator +TestCaseController() +makeTestMethod(name, assertion) +makeTestCase(name, var, testmethod) +makeVariable(type, name, value) +makeTestSuite(name, testcase, method, suite) +makeAssertion()

+convertTestCase(testcase) +deleteTestCase(fileName) +updateTestCase(fileName) +updateFile() XMLCreator<<control>>

-myData: TestCase -dom: Document -testcase: TestCase +XMLCreator(testcase) +runXMLCreator(testcase) +loadData(testcase) +createDocument() +createDOMTree(testcase) +createSetupVarEle(testcase) +createTestingMethEle(testcase) +printToFile(testcase)

TestCase

<<entity>>

-name: String -var: Variable -testmethod: TestMethod -testSuite: TestSuite +TestCase(name, var, testmethod) +getName()

+getTestMethod() +getVar() +getTestSuite() Variable

<<entity>>

-type: String -value: String -name: String +Variable(type, value, name) +getName() +getType() +getValue()

TestMethod<<entity>>

-assertion: Assertion -name: String

+TestMethod(origin, assertion, result, params, n) +getAssertion()

+getName()

XMLParser

<<control>>

-myTestCase: TestCase -dom: Document +XMLParser() +runXMLParser() +parseXMLFile() +parseDocument() +getTestCase(element) +getTextValue(element, tagName)

TestSuite

<<entity>>

-name: String -member_testcase: String -member_method: String -member_suite: String

+TestSuite(name, testcase, method, suite) +getName()

+getTestCase() +getMethod() +getSuite()

Converter

<<control>>

-config: Configuration +Converter() +runConverter() +buildInit() +buildVar() +buildTestMethod() +buildTestSuite() +printToFile() Configuration<<entity>>

-language: String -ext: String -type: String -extend: String -include: String -construct: String -var_location: String -varsetup_param: String -varcleanup_param -meth_type: String -meth_assert: String -suite_location: String -suite_file: String -suite_init: String -suite_build: String -suite_new: String -suite_addtcase: String -suite_addmeth: String -suite_addsuite: String -suite_clean: String +Configuration() +getLanguage() +getExt() +getType() +getExtend() +getInclude() +getConstruct() +getVarLocation() +getVarSetupParam() +getVarCleanupParam() +getMethType() +getMethAssert() +getSuiteLocation() +getSuiteFile() +getSuiteInit() +getSuiteBuild() +getSuiteNew() +getSuiteAddTC() +getSuiteAddTM() +getSuiteAddTS() +getSuiteClean()

ConfigParser<<control>>

-myConfig: Configuration -dom: Document +ConfigParser() +runConfigParser() +parseXMLFile() +parseDocument() +getConfiguration() +getTextValue()

RunTestController<<control>>

-testCase: File -xUnit: String -status: int +RunTestController() +runTest(testCase, XUnit)

ReportController<<control>>

+ReportController() +getReport(testcase) +processReport() +viewReport()

TestReport<<entity>>

-testcase: TestCase -result: String -pass: String -fail: String -summary: String +TestReport() +getTestCase() +getResult() +getPass() +getFail() +getSummary() XUnitController<<control>>

+XUnitController() +runTest(testcase) +getReport(testcase) CompilerJava<<control>>

-fileName: String +CompilerJava(fileName) +compileFile() CSVController<<control>>

-fileName +processLineByLine() +readCSV() +updateCSV()

Assertion

<<entity>>

-type: String -actual: String -expected: String -origin_actual: String -method_actual: String -n: int -param_actual: String -origin_expected: String -method_expected: String -n2: int

-param_expected: String -priora_method: boolean -priore_method: boolean -origin_priora: String -method_priora: String -n3: int -param_priora: String -origin_priore: String -method_priore: String -n4: int +param_priore: String +Assertion(type, actual, expected) +getType()

+getExpected() +getOrigin_actual() +getMethod_actual() +getN() +getParam_actual() +getOrigin_expected() +getMethod_expected() +getN2() +getParam_expected() +getPriora_method() +getPriore_method() +getOrigin_priora() +getMethod_priora() +getN3() +getParam_priora() +getOrigin_priora() +getMethod_priora() +getN4() +getParam_priore()

ConvertedTestCase<<entity>>

-fileName -language -location +ConvertedTestCase()

JUnitRunner<<control>>

-fileName: String +JUnitRunner(fileName) +runTestCase()

(11)

4.3.4.2 Perancangan Antarmuka CreateKasusUji

Antarmuka untuk membentuk kasus uji baru dapat dilihat pada Gambar IV-7. Pada antarmuka berbentuk form ini pengguna dapat memasukkan beberapa data yang diperlukan untuk membentuk sebuah kasus uji.

Gambar IV-7 Rancangan Antarmuka Create Kasus Uji

4.3.4.3 Perancangan Antarmuka UpdateKasusUji

Antarmuka untuk memilih kasus uji yang akan di-update dapat dilihat pada Gambar IV-8.

Pada antarmuka ini pengguna dapat memilih file kasus uji yang akan di-update. Setelah user memilih kasus uji mana yang akan di-update maka selanjutnya komponen kasus uji tersebut akan ditampilkan dalam form yang sama dengan form create kasus uji pada Gambar IV-7 dan user dapat melakukan update melalui form tersebut.

(12)

Gambar IV-8 Antarmuka UpdateKasusUji untuk memilih file kasus uji

4.3.4.4 Perancangan Antarmuka DeleteKasusUji

Antarmuka untuk melakukan penghapusan kasus uji dapat dilihat pada Gambar IV-9. Pada antarmuka ini pengguna dapat memilih arsip kasus uji yang akan dihapus. Kemudian proses penghapusan dilakukan dengan menekan tombol “delete”.

Gambar IV-9 Antarmuka DeleteKasusUji

4.3.4.5 Perancangan Antarmuka KonversiKasusUji

Antarmuka untuk melakukan konversi kasus uji dapat dilihat pada Gambar IV-10. Pada antarmuka ini pengguna dapat memilih file test case yang akan diuji beserta file konfigurasi yang digunakan untuk membantu proses konversi.

(13)

Gambar IV-10 Antarmuka KonversiKasusUji

4.3.4.6 Perancangan Antarmuka RunningKasusUji

Antarmuka untuk melakukan running kasus uji dapat dilihat pada Gambar IV-11. Pada antarmuka ini pengguna dapat memilih file test case yang akan dijalankan (di-running) beserta xUnit Framework yang digunakan untuk menjalankan kasus uji.

Gambar IV-11 Antarmuka Running Kasus Uji

Gambar

Gambar IV-1 Arsitektur GXUnit
Tabel IV-1 Spesifikasi Kebutuhan Fungsional Perangkat Lunak
Tabel IV-2 Spesifikasi Kebutuhan Non-Fungsional Perangkat Lunak
Tabel IV-3 Definisi Aktor
+7

Referensi

Dokumen terkait

Penelitian ini juga diharapkan dapat menjadi referensi untuk penelitian-penelitian selanjutnya mengenai quality journalism di Indonesia atau penelitian mendatang yang

Dengan menggunakan indeks tung- gal dalam pembentukan portofolio optimal saham perbankan yang tercatat dalam LQ45, selama periode Februari 2012 – Juli 2015, dari

Gambar 2 Kandang rehabilitasi kukang di Yayasan IAR Bogor Pencatatan aktivitas dan perilaku kukang sumatera dilakukan dengan mengklasifikasikannya ke dalam tiga jenis

Berbeda dengan pertambahan panjang, hasil dari pengamatan pertambahan bobot menunjukkan bahwa benih ikan dipuasakan pada perlakuan 2 hari puasa 1 hari diberi pakan

Berdasarkan hasil penelitian dan pembahasan diharapakan pihak Tokopedia meningkatkan kualitas website dari segi usability dan service interaction karena variabel tersebut

Strategi guru dalam membelajarkan matematika pada materi lingkaran terkait pengetahuan konseptual dan prosedural kepada anak tunagrahita pada umumnya terlihat sama

Proses tampilan pembuatan media dalam bentuk buku atau novel baik di laptop maupun komputer tablet yang ditampilkan dengan menggunakan aplikasi Digipub berhasil ditampilkan

Puji syukur saya panjatkan kehadirat Allah SWT, atas segala Rahmat dan Hidayah-Nya, sehingga penulis diberi kekuatan untuk menyelesaikan penulisan skripsi yang