Prinsip F.I.R.S.T

Selamat malam teman-teman,

Pada post kali ini, saya akan menjelaskan mengenai prinsip F.I.R.S.T pada unit testing. F.I.R.S.T sendiri merupakan singkatan dari Fast, Isolated/Independent, Repeatable, Self-Validating, dan Thorough/Timely. Ini penjelasan lebih detailnya 

1.       Fast

  • Pengembang tidak seharusnya ragu untuk menjalankan test walaupun lambat.
  • Termasuk set up, test yang sebenarnya dan test tear down seharusnya berjalan dengan sangat cepat karena akan terdapat ribuan test di dalam proyek yang dibuat.

2.       Isolated/Independent

  • Method test harus melakukan 3As, yaitu Arrange, Act, Assert.
  • Arrange: data yang digunakan dalam test tidak seharusnya tergantung pada lingkungan saat test dijalankan. Semua data yang dibutuhkan harus diatur sebagai bagian dari test.
  • Act: Memanggil method sebenarnya pada test.
  • Assert: sebuah method test untuk satu keluran logika, mengindikasikan bahwa harus ada satu assert logika. Sebuah assert logika dapat memiliki banyak assert physical selama semua assert test pada state dari sebuah objek. Dalam beberapa kasus, sebuah aksi dapat meng-update banyak objek.
  • Hindari assert dalam bagian Arrange, biarkan melemparkan exceptions dan test akan gagal
  • Tidak ada ketergantungan dalam menjalankan urutan kode. Test harus berhasil atau gagal ketika dijalankan secara sendiri-sendiri.
  • Tidak melakukan aksi apapun setelah perintah assert.

3.       Repeatable

  • Sebuah method test seharusnya tidak bergantung pada data apapun di lingkungan test sedang berjalan.
  • Hasilnya bersifat deterministic – seharusnya menghasilkan hasil yang sama di setiap waktu dan di setiap lokasi test dijalankan.
  • Setiap test seharusnya mengatur datanya sendiri.

4.       Self-Validating

  • Tidak ada inspeksi manual yang dibutuhkan untuk mengecek apakah test berhasil atau gagal.

5.       Thorough dan Timely

  • Seharusnya mencakup semua skenario use case dan tidak hanya bertujuan untuk mendapatkan 100% coverage.
  • Harus mencoba untuk melaksanakan TDD, jadi kode tidak memerlukan re-factoring pada tahap selanjutnya.

Sumber: https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s