Saat menulis jawaban ini, saya menyadari ini bukan tentang pengujian, ini tentang dokumentasi. Anda harus terlebih dahulu membaca manifesto tangkas :
[Kami menghargai] perangkat lunak yang berfungsi di atas dokumentasi yang komprehensif
Jadi, Anda harus membuat spesifikasi Anda dapat dieksekusi, yaitu menuliskannya sebagai serangkaian tes yang sepenuhnya otomatis.
Apakah menulis spesifikasi berdasarkan cerita adalah ide yang bagus?
Ya, tentu saja. Ini disebut "pengembangan yang didorong oleh perilaku" atau "spesifikasi dengan contoh". Di ruby ada mentimun alat hebat yang banyak membantu.
Masalahnya sekarang adalah karena ada begitu banyak cerita, itu tidak segera jelas, untuk bagian mana pun dari sistem yang terkait dengan cerita itu.
Mengapa Anda ingin ini menjadi jelas? Maksud saya, apakah Anda benar-benar membutuhkan matriks "keterlacakan / kode" penelusuran? Keuntungan dari menulis tes sebagai spesifikasi adalah bahwa Anda tidak memerlukan penelusuran "persyaratan / tes" yang terpisah, karena tes menjadi persyaratan. Untuk keperluan pengujian integrasi, Anda harus memperlakukan perangkat lunak Anda secara keseluruhan, bukan sebagai bagian yang terpisah.
Anda mungkin memerlukan alat cakupan untuk melihat apakah ada modul "mati", bagian dari sistem Anda yang tidak dicakup oleh tes spesifikasi Anda. Tetapi Anda benar-benar tidak perlu peduli spesifikasi apa yang sesuai dengan kode ini. Itu harus sebaliknya: dari spesifikasi tertentu Anda harus tahu bagian mana dari sistem yang sesuai dengannya. Anda tidak perlu khawatir tentang duplikasi dalam spesifikasi Anda. Dan jika Anda menerapkan prinsip KERING pada kode Anda, akan ada puluhan spesifikasi yang mengeksekusi kode yang sama.
Ini bekerja pada saat pengembang, setiap sprint para dev hanya mendapatkan spesifikasi menguraikan apa yang perlu mereka lakukan dan perubahan yang perlu mereka lakukan. Tetapi dalam hal mempertahankan daftar cerita ini dan untuk pengujian, mulai mendapatkan bug pelacakan sangat sulit dan secara umum hanya mempertahankan spesifikasi, karena satu fungsi di layar mungkin telah didokumentasikan di sejumlah tempat yang berbeda karena itu menjadi dipisah oleh cerita.
Bukan tidak biasa bahwa ratusan tes integrasi rusak oleh satu perubahan kecil dalam modul kritis. Di situlah unit pengujian masuk.
Anda harus menyusun tes Anda sedemikian rupa sehingga Anda dapat mengetahui apakah tes tertentu mencakup persyaratan tingkat tinggi, atau hanya detail halus dari itu. Jika yang terakhir, Anda harus memisahkan tes ini dari suite tes integrasi Anda. Tujuan pengujian unit adalah untuk melokalkan bug. Sehingga jika Anda memperkenalkan bug, akan ada satu dan hanya satu kegagalan pengujian.
Sudahkah kita menulis cerita dengan cara yang salah?
Saya pikir, Anda hanya perlu mengatur cerita Anda menjadi epos baik oleh pengguna, misalnya "Pelanggan", "Asisten", atau dengan fitur / layar / alur kerja ("Pembelian", "Pengembalian").
Dan lagi, tes spesifikasi bukan pengganti untuk pengujian unit. Baca lebih banyak