unit testing.pptx

25
Unit Testing Pertemuan 14

Upload: ajiprasetio9

Post on 18-Dec-2015

235 views

Category:

Documents


8 download

TRANSCRIPT

PowerPoint Presentation

Unit TestingPertemuan 14Introduction Software TestingSoftware testing Adalah aktivitas-aktivitas yang bertujuan untuk mengevaluasi atribut-atribut atau kemampuan sebuah program atau sistem dan penentuan apakah sesuai dengan hasil yang diharapkan.Verification: Apakah kita membangun produk dengan benar, Software seharusnya sesuai dengan spesifikasinya. Gunakan proses software yang bagus. Validation: Apakah kita membangun produk yang benar, Software seharusnya melakukan apa yang pengguna benar-benar butuhkan.Tahapan TestingBeberapa tahapan testing yang umum dilalui oleh aplikasi adalah sebagai berikut:Unit/ComponentTestingUnit testing merupakan proses testing, di mana Anda melakukan testing pada bagian basic dari kode programIntegrationTestingSetelah Anda melakukan Unit/Component Testing, langkah berikutnya adalah memeriksa bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individualSystemTestingMencakup testing aplikasi yang telah selesai didevelopAcceptanceTestingSeperti Integration Testing, Acceptance Testing juga meliputi testing keseluruhan aplikasi. Perbedaannya terletak pada siapa yang melakukan testingRegressionTestingRegression Testing mencakup pengujian ulang terhadap unit, component, proses, atau keseluruhan aplikasi setelah perbaikan suatu kesalahan dilakukanUnit Testing?Unit TestingUnite testing adalah sebuah kode yang ditulis oleh developer, yang digunakan untuk menguji bagian kecil/area spesifik dari suatu fungsionalitas dari kode yang akan ditest. Unit testing akan memperbaiki design code dan mengurangi waktu yang digunakan untukdebugging secara drastis.Unit testing dilakukan setelah programmer selesai menuliskan suatukode/fungsi/method yang ada dalam suatu class.Dapat juga dilakukan setelah menambahkan sebuah fungsionalitasbaru atau setelah melakukan refactoring

ToolsCUnit : digunakan untuk bahasa CJUnit : digunakan untuk bahasa JavaVBUnit : digunakan untuk bahasa BasicNUnit: digunakan untuk bahasa C# (baca: c-sharp)PHPUnit : digunakan untuk bahasa PHPUnit Testing with JUnitSebuahtest classhanya akan menguji satu classsajaDalam sebuahtest classterdapat beberapa test methodyang digunakan untuk menguji method-method pada kelas lain. Sebuah method dapat diuji oleh lebih dari satutest method.

Pada contoh diatas, sebuah method createAccount() pada class Account.java diuji oleh 3 buah test methodPerlu diperhatikan, diantara ketiga test method menguji beberapa kemungkinan yang akan menyebabkan method createAccount() melakukan kesalahan. Sebagai contoh, method testCreateAcctDup() akan menguji apakah yang akan terjadi bila method createAccount() menemui error bila terjadi duplikasi dalam membuat account.

Mari Bermain!Create New project

Beri Nama Project

Buat class baru

Contoh Hello Class

Copy code snippet dibawahpackage cobajunit;public class Hello { public Hello() {

} public String sayHello(String name) { return "Hello, " + name + "!"; }}Klik menu Tools, pilih Create/Update Test

Create/Update Test

Create/Update Test

Pilih JUnit 4.x, klik SelectCopy snippet pada kelas HelloTestpackage cobajunit;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;import static org.junit.Assert.*;public class HelloTest { public HelloTest() { } @BeforeClass public static void setUpClass() {

} @AfterClass public static void tearDownClass() {

} @Before public void setUp() { } @After public void tearDown() { } /** * Test of sayHello method, of class Hello. */ @Test public void testSayHello() { Hello hello = new Hello(); String expectedResult = "Hello, Bro!"; String result = hello.sayHello("Bro"); assertEquals(expectedResult, result); } }Code diatas adalah satu code, dikarnakan space yg kurang jadi dipisahRun Test

Test ResultsHasilnya Nampak pada bagian Test Results

Menambahkan test yang lain, tambahkan code berikut pada HelloTest@Test public void testAnotherSayHello() { Hello hello = new Hello(); String expectedResult = "Hello, Chyin!"; String result = hello.sayHello("Chyin"); assertEquals(expectedResult, result); }Lalu run Test

Coba dengan contoh yang salahTambahkan pada kelas HelloTest@Test public void testNotNullParamSayHello() { Hello hello = new Hello(); String expectedResult = "Please input your name!"; String result = hello.sayHello(null); assertEquals(expectedResult, result); }Coba run TestTest result tidak akan berhasil 100% dan akan menunjukan error

Mari kita perbaiki code pada method sayHello() di kelas Hellopublic String sayHello(String name) { String out; if (name == null || name.equals("")) { out = "Please input your name!"; } else { out = "Hello, " + name + "!"; } return out; }Jalankan kembali Test nyaTest resul 100% sukses, dikarnakan code telah diperbaiki