Sekarang saya tahu orang-orang dapat mempertimbangkan pertanyaan ini duplikat atau ditanyakan berkali-kali, dalam hal ini saya akan menghargai tautan ke pertanyaan yang relevan dengan jawaban atas pertanyaan saya.
Saya baru-baru ini berselisih dengan beberapa orang tentang cakupan kode. Saya memiliki sekelompok orang yang ingin tim kami berhenti melihat cakupan kode secara keseluruhan berdasarkan argumen bahwa cakupan 100% tidak berarti tes kualitas yang baik dan dengan demikian kode kualitas yang baik.
Saya dapat mendorong kembali dengan menjual argumen yang Kode Cakupan memberi tahu saya apa yang belum diuji pasti dan membantu kami fokus pada bidang-bidang tersebut.
(Hal di atas telah dibahas dengan cara yang sama dalam pertanyaan SO lainnya seperti ini - /programming/695811/pitfalls-of-code-coverage )
Argumen dari orang-orang ini adalah - maka tim akan bereaksi dengan cepat membuat tes berkualitas rendah dan dengan demikian membuang waktu sambil menambahkan tidak ada kualitas yang signifikan.
Sementara saya memahami sudut pandang mereka, saya mencari cara untuk membuat kasus yang lebih kuat untuk cakupan kode dengan memperkenalkan alat / kerangka kerja yang lebih kuat yang menangani lebih banyak kriteria cakupan (Functional, Statement,Decision, Branch, Condition, State, LCSAJ, path, jump path, entry/exit, Loop, Parameter Value etc)
.
Apa yang saya cari adalah saran untuk kombinasi alat cakupan kode dan praktik / proses untuk pergi dengan mereka yang dapat membantu saya melawan argumen tersebut sambil merasa nyaman dengan rekomendasi saya.
Saya juga akan menyambut komentar / saran yang menyertainya berdasarkan pengalaman / pengetahuan Anda tentang cara untuk melawan argumen seperti itu, karena meskipun subjektif, cakupan kode telah membantu tim saya menjadi lebih sadar akan kualitas kode dan nilai pengujian.
Sunting: Untuk mengurangi kebingungan tentang pemahaman saya tentang kelemahan cakupan kode tipikal, saya ingin menunjukkan bahwa saya tidak merujuk pada alat Statement Coverage
(atau baris kode yang dijalankan) (ada banyak). Sebenarnya di sini ada artikel bagus tentang segala sesuatu yang salah dengan itu: http://www.bullseye.com/statementCoverage.html
Saya mencari lebih dari sekedar pernyataan atau cakupan garis, lebih ke beberapa kriteria dan tingkat cakupan.
Lihat: http://en.wikipedia.org/wiki/Code_coverage#Coverage_criteria
Idenya adalah jika alat dapat memberi tahu kami cakupan kami berdasarkan beberapa kriteria, maka itu menjadi penilaian otomatis kualitas tes yang wajar. Saya sama sekali tidak berusaha mengatakan bahwa cakupan garis adalah penilaian yang baik. Sebenarnya itu adalah premis dari pertanyaan saya.
Sunting:
Ok, mungkin saya memproyeksikannya agak terlalu dramatis, tetapi Anda mengerti maksudnya. Masalahnya adalah tentang menetapkan proses / kebijakan secara umum di semua tim dengan cara yang homogen / konsisten. Dan rasa takutnya adalah umum bahwa bagaimana Anda memastikan kualitas tes, bagaimana Anda mengalokasikan waktu yang dijamin tanpa harus mengukurnya. Jadi saya suka memiliki fitur yang terukur bahwa ketika didukung dengan proses yang tepat dan alat yang tepat akan memungkinkan kami untuk meningkatkan kualitas kode sambil mengetahui bahwa waktu tidak dihabiskan dengan paksa dalam proses yang boros.
EDIT: Sejauh ini apa yang saya dapatkan dari jawaban:
- Ulasan kode harus mencakup tes untuk memastikan kualitas tes
- Strategi Tes Pertama membantu menghindari tes yang ditulis setelah fakta untuk hanya meningkatkan cakupan%
- Menjelajahi alat-alat alternatif yang mencakup kriteria pengujian selain sekadar Pernyataan / Baris
- Analisis kode tertutup / jumlah bug yang ditemukan akan membantu menghargai pentingnya perlindungan dan membuat kasus yang lebih baik
- Yang terpenting, percaya masukan Tim untuk melakukan hal yang benar dan memperjuangkan keyakinan mereka
- Blok Tertutup / # tes - Debatable tetapi memiliki beberapa nilai
Terima kasih atas jawaban yang luar biasa sejauh ini. Saya sangat menghargai mereka. Utas ini lebih baik daripada berjam-jam bertukar pikiran dengan kekuatan yang ada.