Week 9: F.I.R.S.T Principles for Unit Tests
- Admin
- Apr 6, 2017
- 2 min read
Welcome to Sprint 2, yeay!
Awal sprint ini kami, GoodangCode, masih melakukan fixing fitur Sprint 1, karena bingung mau nulis apa, saat ini sepertinya mau bahas tentang kaidah pembuatan unit testing dengan menggunakan prinsip F.I.R.S.T aja di tulisan ini, simak ya!
---
F.I.R.S.T PRINCIPLES
[F]ast
Pengembang harus menjalankan seluruh script testing yang dibuat dengan cepat. Oleh karena itu, kelompok kami menggunakan GitLab continuous integration, sehingga sesaat kami melakukan pushing commit ke GitLab, script testing yang telah dibuat, sudah termasuk function setup() dan teardown(), dapat langsung dijalankan secara otomatis.
[I]solated
Pengembang tidak boleh menuliskan source code yang memiliki ketergantungan dengan test case lain. Pada setiap kasus, kita harus dapat menjalankan setiap test case dalam satu waktu di keadaan apapun. Dengan membuat script testing yang saling independen, yaitu tidak bergantung dengan test case lain, pengembang dapat dengan mudah fokus terhadap satu behaviour dari bagian yang ingin kita test.
[R]epeatable
Pengembang harus dapat menghasilkan hasil yang sama pada script testing yang dibuat di setiap kali pengembang menjalankan testing tersebut. Salah satu cara yang dapat digunakan agar script testing yang dibuat adalah repeatable test, kita harus mengisolasi test tersebut dari external environment yang di luar kontrol pengembang.
[S]elf-validating
Pengembang harus menghasilkan script testing yang dapat memvalidasi dirinya sendiri, yaitu apakah output pada test case yang dibuat (expected value) sesuai atau tidak dengan keadaan aslinya (actual value) dan harus dapat menentukan apakah test tersebut failed atau pass, tidak boleh ada manual interpretation.
[T]imely
Pengembang harus menuliskan script testing secara berkala dan script testing yang dihasilkan harus meng-cover setiap method yang dibuat, tidak harus menghasilkan 100% coverage (pada PPL ini, coverage yang diharapkan adalah 85-90%), dengan memperhatikan guidelines atau strict rules dalam penulisan testing. Semakin banyak unit-test yang dibuat, maka semakin mudah juga kita menemukan kejanggalan yang ada pada code kita nanti, atau bahkan dapat mengefisiensikan waktu penulisan kode, karena script testing yang dibuat diharapkan menerapkan prinsip TDD, yaitu test first and code second, sehingga tidak perlu ada lagi proses refactoring.
Sekian yang dapat dituliskan, semoga kedepannya proses pengembangan aplikasi dapat berjalan dengan lancar dan semoga ilmu yang didapatkan dapat berguna dengan sebagaimana mestinya.
Salam,
Betty Nauli Dina
REFERENSI
- https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing
- http://howtodoinjava.com/best-practices/first-principles-for-good-tests/
- http://stackoverflow.com/questions/18024785/tdd-first-principle
Comentários