Artikel ini adalah sinopsis dari buku " Unit Testing Principles ".
Mari kita mulai dengan membuat daftar properti pengujian unit yang baik.
Pertama. Terintegrasi ke dalam siklus pengembangan. Hanya tes yang Anda gunakan secara aktif yang berguna; jika tidak, tidak masuk akal untuk menuliskannya.
Kedua. Hanya bagian terpenting dari kode Anda yang diuji. Tidak semua kode yang berfungsi membutuhkan perhatian yang sama.
Ketiga. Memberikan perlindungan maksimal terhadap bug dengan biaya perawatan minimum. Untuk melakukan ini, Anda harus mampu mengenali tes yang efektif dan menuliskannya.
Namun, mengenali dan menulis tes yang efektif adalah dua keterampilan yang berbeda. Dan untuk memperoleh keterampilan kedua, Anda harus menguasai keterampilan pertama terlebih dahulu. Sisa artikel ini akan menunjukkan kepada Anda bagaimana mengenali tes yang efektif. Piramida pengujian dan pengujian sesuai dengan prinsip "kotak hitam" / "kotak putih" juga akan dipertimbangkan.
Empat Aspek Pengujian Unit yang Baik
Pengujian unit yang baik harus memiliki atribut berikut: perlindungan bug, resistansi refactoring, umpan balik cepat, dan kemudahan pemeliharaan.
Keempat atribut ini sangat mendasar. Mereka dapat digunakan untuk menganalisis pengujian otomatis apa pun, baik itu unit, integrasi, atau pengujian ujung ke ujung.
Mari kita mulai dengan atribut pertama dari pengujian unit yang baik: perlindungan bug. Bug (atau regresi) adalah bug perangkat lunak. Biasanya, kesalahan seperti itu terjadi setelah melakukan perubahan pada kode.
Semakin banyak fungsionalitas, semakin tinggi kemungkinan Anda menambahkan bug ke versi baru. Inilah mengapa sangat penting untuk mengembangkan perlindungan bug yang baik. Tanpa perlindungan semacam itu, tidak mungkin atau sangat sulit untuk memastikan pertumbuhan proyek dalam jangka panjang karena jumlah kesalahan yang terus meningkat.
Untuk menilai seberapa baik kinerja pengujian dalam hal perlindungan bug, pertimbangkan hal berikut:
jumlah kode yang dieksekusi oleh pengujian;
kompleksitas kode ini;
pentingnya kode ini dalam hal logika bisnis.
, , . , (assertions).
, -. , -, β .
, . - -.
- β . , .
. : . β .
. : , , . , , . , .
? . - . , .
:
, . . .
. -, . , .
?
, , . , . : . β , , .
β , . , , . β , .
- ( ) . , . - : , .
, . ( ), , ( ).
, , , : ( ).
, , . : . . β II .
, : , . . .
: , . :
( , );
( , ).
. 3, . β (), . β (), .
:
-. , . . , , , .
. :
. . , .
. , , .
. «» : , .
, . , .
? , . , β , β . : .
, . , . , , .
β (end-to-end) . . , , .
, . , , , . - , .
: . , , . .
β . , .
, . , , . - , .
- , , . : , .
β β , (end-to-end) . - , . . , .
. ; . , . , , . .
, ; . .
? : , . . , . , .
- CAP. , : (consistency) , (availability), (partition tolerance).
:
1. CAP ;
2. . β , , - Amazon β . .
: -, , .
. . , . , . . , .
. : ; - β ; - .
, β . : . , .
. - , -, β . ; , , (, ). CRUD- - .
β API, (, ). . , . , β .
Β« Β» Β« Β»
Β« Β» . . , , , .
Β« Β» . . , .
, : , . Β« Β». β , -, β Β« Β» , -. -, .
-
Aspek pengujian unit yang baik
Untuk apa pengujian integrasi?