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):
[...]
```
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.