Fakultas Ilmu Komputer UI

README.md 2.66 KB
Newer Older
Rayza Arasj Mahardhika's avatar
Rayza Arasj Mahardhika committed
1
# Rayza Arasj Mahardhika - 1606876052 - Practice Repo
Rayza Arasj Mahardhika's avatar
Rayza Arasj Mahardhika committed
2
3
4
PMPL Course - Class A

URL: http://pmpl-rayza.herokuapp.com
Rayza Arasj Mahardhika's avatar
Rayza Arasj Mahardhika committed
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

## Exercise - 3 : Test Isolation


### Test Isolation

Test Isolation adalah proses pemecahan sistem / aplikasi menjadi modul-modul kecil yang dapat dilakukan `test` ataupun `evaluasi` secara lebih mudah. Tipe software testing ini biasanya dilakukan jika bug yang ada pada aplikasi sulit untuk ditemukan. Dengan bantuan Test Isolation, testing dapat dilakukan dengan lebih mudah dan tanpa side effect apapun. Hal ini dikarenakan dengan menggunakan Test Isolation, testing akan dilakukan pada environment yang masih bersih dari side effect apapun serta dengan menggunakan database yang bersih pula.

### Implementation

Dalam tutorial-6 yang terdapat pada buku **Test-Driven Development with Python: Obey the Testing Goat: Using Django, Selenium, and JavaScript**, Test Isolation dilakukan dengan cara membuat `functional_test.py` yang sudah dibuat pada tutorial-tutorial sebelumnya menjadi suatu module pada django testing dengan memanfaatkan class `LiveServerTestCase`. Berikut adalah perubahan code yang terjadi dari `functional_test.py` menjadi `functional_tests/tests.py` :
#### Sebelum :
```
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import unittest

class  NewVisitorTest(unittest.TestCase):

	def  setUp(self):
		[...]
```
#### Sesudah :
```
from django.test import LiveServerTestCase
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import WebDriverException
import time

class  NewVisitorTest(LiveServerTestCase):

	def  setUp(self):
		[...]
```

42
43
44
45
46
Dengan melakukan perubahan tersebut, To-Do List yang ada pada aplikasi selalu mulai dari kosong pada saat menjalankan test. Berbeda ketika belum menggunakan `LiveServerTestCase` dimana To-Do List yang ada akan terus bertambah saat dijalan dari test ke test berikutnya.

## Exercise - 4 : Prettification

Pada bab 7 saya belajar bahwa dengan menambahkan fitur-fitur baru, fitur-fitur tersebut harus dapat dipecah agar dapat dilakukan test terhadap fitur tersebut. Tidak terkecuali jika ingin menambahkan styling atau prettification yang dilakukan pada bab 8, styling tersebut pun harus dapat dipecah agar dapat dilakukan test. Testing pada styling yang dilakukan pada bab 8 adalah mengecek apakah input berada pada tengah layar atau tidak. Untuk membuat css yang dapat menggagalkan test yang sudah ada, saya menambahkan id pada div yang membuat input tersebut berada di tengah layar, lalu saya menambahkan styiling baru dengan menggunakan id tersebut untuk membuat text berada di sebelah kiri dengan menggunakan styling `text-allign: left`.