Pengembangan yang digerakkan oleh tes dan peningkatan keterampilan pengujian kotak putih

9

Saya seorang programmer Java level pemula langsung keluar dari sekolah. Saya memiliki pengetahuan dan pengalaman yang baik dengan J2SE. Adakah yang bisa menyarankan saya tentang cara meningkatkan atau menyesuaikan keterampilan saya untuk menjadi tester kotak putih Java? Berbagai macam masukan diterima.

Dan apa itu Tes Didorong Pengembangan?

pengguna892871
sumber
Mengapa tidak pengujian kotak hitam juga?
Martijn Verburg
@ Martijn, mengingat latar belakang, kemungkinan besar karena tantangan teknis pengujian whitebox. Selain itu, meskipun teknik kotak hitam sangat berguna bagi pengembang, orang dengan kualitas yang baik untuk pengembang tidak membuat penguji kotak hitam yang baik, kami terlalu penasaran dan bisa menjadi tidak sabar. Saya tahu saya melakukannya.
StuperUser

Jawaban:

9

Test Driven Development (TDD) dan saudara sepupunya yang diperpanjang, Acceptance TDD (ATDD) dan Behavior Driven Development (BDD) adalah teknik yang berguna untuk dipelajari sebagai penguji dalam ekosistem Jawa. Saya akan fokus pada TDD saat Anda mencari pengujian kotak putih.

Apa itu TDD? - Pada intinya itu adalah praktik menulis tes gagal (merah), membuat tes lulus dengan menulis implementasi (hijau) dan kemudian re-factoring. The Wikipedia Pasal adalah tempat yang cukup untuk memulai untuk mengetahui informasi lebih lanjut. Tapi topiknya luas, saya sarankan membaca beberapa buku terkenal di ruang ini seperti Test Driven Development by Example dan Bekerja secara efektif dengan kode lawas . Saya juga akan melemparkan plug - in yang tidak tahu malu untuk bab TDD di The Java Well-Grounded Developer

Dalam ekosistem Jawa, ini berarti Anda ingin belajar:

  1. The JUnit perpustakaan dan / atau TestNG perpustakaan.
  2. Perpustakaan mengejek seperti Mockito atau JMock
  3. Alat uji beban untuk menyerang kode - JMeter
  4. Konsep Injeksi Ketergantungan (bentuk Pembalikan Kontrol)

Dan kemudian berlatih, berlatih, berlatih, berlatih. Penguji kotak putih Java yang baik sangat jarang, yang terbaik memiliki tes tertulis terhadap berbagai basis kode.

HTH membantu Anda memulai!

Martijn Verburg
sumber
Mereka juga merupakan teknik yang berguna untuk dipelajari sebagai pengembang di ekosistem Jawa. Seperti yang saya mengerti, penguji harus melakukan pengujian kotak hitam.
Tom
1

Junit adalah salah satu kerangka pengujian unit terbaik untuk bahasa pemrograman Java. Ini merupakan kerangka kerja open source untuk menulis dan menjalankan tes berulang.

Swagatika
sumber
1

Saya biasanya tidak suka mengutip Wikipedia tetapi informasi pada artikel ini tampaknya cukup aman ...

http://en.wikipedia.org/wiki/Test-driven_development

Pada dasarnya dalam istilah awam, ini adalah pendekatan Uji-Pertama untuk pengembangan perangkat lunak, yaitu tes unit dirancang dan ditulis untuk menggunakan kasus terlebih dahulu, kemudian pengembangan keras terjadi setelah itu untuk membantu membuat unit tes lulus.

maple_shaft
sumber
0

Saya tidak yakin apakah saran saya akan dianggap sebagai alat untuk pengujian kotak putih, tetapi Anda juga dapat melihat dbUnit untuk proyek berbasis database dan Selenium untuk pengujian web (mis., Inspeksi elemen yang harus ada berdasarkan beberapa hasil).

Bob Santos
sumber
0

Pertanyaannya secara khusus mengacu pada "pengujian kotak putih". Di sinilah tes Anda memiliki pengetahuan mendalam tentang struktur internal kode Anda dan menegaskan perilaku pada setiap langkah daripada hanya efek input / output / samping (pengujian kotak hitam). Sementara JUnit sangat baik untuk melakukan keduanya, Anda perlu kerangka kerja tambahan lebih lanjut untuk melakukan ini dalam konteks unit test.

EasyMock dan JMock adalah kerangka kerja yang baik untuk melakukan ini. Saya cenderung menyukai JMock.

Dengan risiko memulai debat PL, Anda harus berpikir hati-hati tentang implikasi pengujian kotak putih. Tes kotak putih terkait erat dengan kode Anda (jelas), dan jika tidak digunakan dengan hati-hati, kerangka kerja mengejek dapat menyebabkan tes Anda menjadi agak rumit, sulit dibaca dan cenderung lebih rapuh saat melakukan refactoring.

Saya cenderung bertahan pada campuran keduanya. Tes kotak hitam sedapat mungkin, dan tes kotak putih hemat diterapkan pada kode yang lebih berisiko / rumit.

Tentu saja kerangka kerja yang tercantum di atas juga dapat digunakan dalam tes kotak hitam di mana jumlah kelas yang berkontribusi (disuntikkan) besar dan penguburan sederhana menjadi sulit dilakukan.

Mengenai TDD - ini terutama pendekatan peningkatan desain untuk menulis kode, bukan hanya cara menulis tes. Tes yang Anda miliki pada akhirnya adalah output yang penting, tetapi terlebih lagi pendekatan ini dimaksudkan untuk meningkatkan desain dan struktur aplikasi Anda.

rupjones
sumber