Fakultas Ilmu Komputer UI

Commit af8a6091 authored by Farah Alhaniy's avatar Farah Alhaniy
Browse files

Add readme

parent e40ce2fb
Pipeline #24017 failed with stages
in 1 minute and 10 seconds
......@@ -10,7 +10,10 @@ Herokuapp : https://pmpl-farah.herokuapp.com/
- Keterhubungan Chapter 8 dan 7
- Exercise 5 :
- Keterkaitan refactoring dan clean code
- Keuntungan test organization.
- Keuntungan test organization
- Exercise 6 :
- Pembuatan Mutant
- Mutation Testing Tool : Django-mutpy
## Exercise 3
**Proses test isolation**
......@@ -76,3 +79,40 @@ Dengan menerapkan Red Green Refactor, berarti kita juga menerapkan konsep clean
Memudahkan maintenance. Kita dapat dengan mudah menemukan test code yang kita butuhkan karena test sudah teratur dalam kategori-kategori. Selain itu kita dapat memilih test yang ingin dijalankan. Bisa menjalankan semua test, bisa juga menjalankan test spesifik saja.
## Exercise 6
**Pembuatan Mutant**
Pada fungsi views.py berikut adalah code implementasi fitur komentar :
```
def view_list(request, list_id):
list_ = List.objects.get(id=list_id)
items = Item.objects.filter(list=list_)
if len(items) == 0:
comment = 'Yey, waktunya berlibur'
elif len(items) < 5:
comment = 'Sibuk tapi santai'
elif len(items) >= 5:
comment = 'Oh tidak'
return render(request, 'list.html', {'list': list_, 'comment':comment})
```
Setelah mengubah code tersebut beberapa kali, dapat dibuat satu mutant pada line 9 dengan mengubah menjadi :
`elif len(items) > 5:`
Dengan mengubah decision pada line tersebut, test tidak error karena pada test sebelumnya tidak menghandle kondisi dimana `len(items) = 5`. Maka dari itu butuh dibuat test baru yang dapat menghandle kondisi tersebut. Jadi pada test_views.py ditambahkan function test untuk `len(items) = 5`, setelah ditambahkan test tersebut, function tersebut menjadi error, maka mutant sudah berhasil di kill.
**Mutation Testing Tool : Django-mutpy**
Berikut adalah hasil dari mutation testing menggunakan django-mutpy. Tool ini dijalankan pada test_models dan test_views.
```
[0.13787 s] killed by test_passes_correct_list_to_template (lists.tests.test_views.ListViewTest)
[*] Mutation score [9.18592 s]: 100.0%
- all: 38
- killed: 38 (100.0%)
- survived: 0 (0.0%)
- incompetent: 0 (0.0%)
- timeout: 0 (0.0%)
Destroying test database for alias 'default'...
```
Dari hasil tersebut dapat kita lihat bahwa semua mutant sudah berhasil di kill oleh test yang ada.
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment