Saya ingin belajar (dan menguasai) TDD. Apa yang terbaik:
- buku
- situs web
- video
- daftar latihan
- kata-kata bijak pribadi
untuk belajar, menghargai, dan menggunakan TDD?
Saya ingin belajar (dan menguasai) TDD. Apa yang terbaik:
untuk belajar, menghargai, dan menggunakan TDD?
Jawaban:
Secara pribadi saya menemukan bahwa membaca satu atau dua esai JUnit yang menekankan bahwa "Anda menulis tes sebelum kode" cukup untuk membuat saya memulai.
Bagian terpenting dalam mempelajari teknologi ini adalah menulis BANYAK kode berbasis tes , karena Anda perlu mengubah beberapa cara paling dasar untuk berpikir tentang menulis kode. Hal-hal seperti:
Tempat terbaik untuk memulai dari yang kecil, adalah dengan rutinitas utilitas Anda. Lain kali Anda membutuhkannya maka rancang saja dengan tes terlebih dahulu, tulis banyak tes yang mencakup semua usecases resmi Anda (termasuk apa yang seharusnya terjadi dengan nilai nol yang diteruskan dll), dan ketika semua use-case diimplementasikan Anda harus dapat menggunakan langsung di kode Anda, dan yakin itu berfungsi seperti yang diharapkan.
Ini juga pengalaman saya bahwa tes yang baik dapat melakukan pekerjaan tambahan sebagai dokumentasi, karena Anda memiliki banyak kode yang sangat ringkas yang mengatakan dengan tepat bagaimana kode berperilaku dalam berbagai situasi, yang dapat dengan mudah terbukti benar (bilah hijau). Dengan komentar yang hati-hati Anda tidak mendapatkannya lebih baik dari itu.
Untuk Java, versi jUnit benar-benar bagus.
Menurut pendapat saya, TDD lebih tentang membuat kode dapat diuji, daripada menulis tes.
Tentu saja Anda dapat menulis tes sebelum melakukan pengkodean, tetapi seluruh alasan tes ini ditulis adalah agar Anda dapat membuat kode - yang tidak akan menghentikan Anda dari menulis kode yang sulit untuk diuji.
Lihatlah ini untuk mendapatkan pemahaman yang lebih baik tentang apa yang saya maksud: My Unified Theory of Bugs
Jika Anda tertarik dengan konsep ini, dan ingin mempelajari lebih lanjut, cukup komentar - dan saya akan mengarahkan Anda ke arah presentasi yang direkam tentang topik tersebut dari Google.
MEMPERBARUI:
Cara Menulis Kode yang Bersih dan Dapat Diuji
Miško Hevery Presenting (Oleh GoogleTechTalks ) Di Google di NYC dan disponsori oleh grup Rekayasa Produktivitas Google
Terlepas dari beberapa buku yang telah disebutkan, saya dapat merekomendasikan Growing Object-Oriented Software yang Dipandu oleh Tes . Saya belum selesai membacanya, tetapi itu adalah bacaan yang layak, termasuk kisah keseluruhan, proyek TDD yang hidup, bukan hanya contoh kode yang disederhanakan.
Saya sudah membaca dua buku:
Pengembangan Test Driven: Dengan Contoh oleh Kent Beck dan
Kerangka Uji Unit oleh Paul Hamil
Buku Beck dianggap baik, tetapi saya tidak memulai dengan pengujian unit sampai saya membaca "Kerangka Tes Unit". Saya melakukan beberapa TDD, tetapi saya juga menambahkan tes ke kode lama yang harus saya pertahankan (ketika saya bisa).
Sunting: Juga, setelah Anda menguasainya, saya sarankan menggunakannya pada proyek saat ini segera. Bagi saya saat itulah pembelajaran yang sebenarnya terjadi, dan saya pikir buku "Unit Test Framework" adalah buku referensi yang lebih baik untuk tujuan ini. (Saya menggunakan nunit dengan C #).
Meskipun tidak terutama tentang TDD (meskipun itu menyentuh, serta merancang untuk testability), The Art of Unit Testing adalah buku yang saya akan merekomendasikan karena mengajarkan Anda cara menulis tes yang baik.
Lebih khusus, ini mengajarkan cara membuat tes yang dapat dipercaya, dipelihara, dan dapat dibaca. Saya pikir ini adalah bagian paling penting dari buku ini, di luar mungkin dasar-dasar tentang pengujian unit dan kerangka kerja isolasi. Sudah jelas bahwa jika tes unit menjadi titik nyeri atau menambah gesekan pada pekerjaan pengembang, maka setiap keberhasilan atau manfaat darinya akan terbatas. Jika seseorang menginvestasikan waktu dan upaya untuk membuat tes, maka dia harus bisa mendapatkan hasil maksimal dari investasi itu.