ตอนนี้ฉันรู้ว่าผู้คนสามารถพิจารณาคำถามนี้ซ้ำหรือถามหลายครั้งในกรณีนี้ฉันจะขอบคุณลิงก์ไปยังคำถามที่เกี่ยวข้องพร้อมคำตอบสำหรับคำถามของฉัน
เมื่อเร็ว ๆ นี้ฉันไม่เห็นด้วยกับบางคนเกี่ยวกับการครอบคลุมโค้ด ฉันมีกลุ่มคนที่ต้องการให้ทีมงานของเราลดการมองการครอบคลุมโค้ดทั้งหมดโดยอ้างว่าการครอบคลุม 100% ไม่ได้หมายถึงการทดสอบคุณภาพที่ดีและรหัสคุณภาพดี
ฉันสามารถผลักดันกลับได้โดยการขายอาร์กิวเมนต์ที่ Code Coverage บอกฉันว่ายังไม่ได้ทดสอบอย่างแน่นอนและช่วยให้เรามุ่งเน้นไปที่พื้นที่เหล่านั้น
(ข้างต้นได้รับการกล่าวถึงในลักษณะคล้ายกันในคำถาม SO อื่น ๆ เช่นนี้ - /programming/695811/pitfalls-of-code-coverage )
ข้อโต้แย้งจากคนเหล่านี้คือ - จากนั้นทีมจะตอบสนองโดยการสร้างการทดสอบคุณภาพต่ำอย่างรวดเร็วและทำให้เสียเวลาโดยไม่เพิ่มคุณภาพที่สำคัญ
ในขณะที่ผมเข้าใจมุมมองของผมกำลังมองหาวิธีที่จะทำให้เป็นกรณีที่แข็งแกร่งมากขึ้นสำหรับความคุ้มครองรหัสโดยการแนะนำเครื่องมือที่มีประสิทธิภาพมากขึ้น / (Functional, Statement,Decision, Branch, Condition, State, LCSAJ, path, jump path, entry/exit, Loop, Parameter Value etc)
กรอบที่ดูแลเกณฑ์ที่ครอบคลุมมากขึ้น
สิ่งที่ฉันกำลังมองหาคือข้อเสนอแนะสำหรับการรวมกันของเครื่องมือครอบคลุมรหัสและการปฏิบัติ / กระบวนการที่จะไปกับพวกเขาซึ่งสามารถช่วยฉันตอบโต้ข้อโต้แย้งดังกล่าวในขณะที่รู้สึกสะดวกสบายกับคำแนะนำของฉัน
ฉันยังยินดีรับฟังความคิดเห็น / ข้อเสนอแนะใด ๆ ที่ยึดตามประสบการณ์ / ความรู้ของคุณเกี่ยวกับวิธีการโต้แย้งเช่นกันเพราะในขณะที่อัตนัยการครอบคลุมโค้ดได้ช่วยให้ทีมของฉันตระหนักถึงคุณภาพของรหัสและคุณค่าของการทดสอบมากขึ้น
แก้ไข: เพื่อลดความสับสนเกี่ยวกับการเข้าใจจุดอ่อนของการครอบคลุมโค้ดทั่วไปฉันต้องการชี้ให้เห็นว่าฉันไม่ได้อ้างถึงเครื่องมือ Statement Coverage
(หรือบรรทัดของการเรียกใช้โค้ด) (มีจำนวนมาก) ในความเป็นจริงที่นี่เป็นบทความที่ดีเกี่ยวกับทุกสิ่งที่ผิดกับมัน: http://www.bullseye.com/statementCoverage.html
ฉันกำลังมองหามากกว่าแค่คำแถลงหรือคำแถลงเรื่องของสายซึ่งจะครอบคลุมเกณฑ์และระดับความครอบคลุมที่หลากหลาย
ดู: http://en.wikipedia.org/wiki/Code_coverage#Coverage_criteria
แนวคิดก็คือถ้าเครื่องมือสามารถบอกความครอบคลุมของเราตามเกณฑ์หลายเกณฑ์ได้นั่นจะเป็นการประเมินคุณภาพการทดสอบแบบอัตโนมัติที่สมเหตุสมผล ฉันไม่เคยพยายามที่จะพูดว่าการครอบคลุมบรรทัดเป็นการประเมินที่ดี ในความเป็นจริงนั่นคือหลักฐานของคำถามของฉัน
แก้ไข:
โอเคฉันอาจคาดการณ์ได้เล็กน้อยเกินไป แต่คุณก็ได้ประเด็น ปัญหาคือเกี่ยวกับการกำหนดกระบวนการ / นโยบายโดยทั่วไปในทุกทีมในลักษณะที่เป็นเนื้อเดียวกัน / สอดคล้องกัน และความกลัวนั้นเป็นเรื่องทั่วไปที่คุณจะมั่นใจในคุณภาพของการทดสอบอย่างไรคุณจัดสรรเวลารับประกันอย่างไรโดยไม่ต้องมีมาตรการใด ๆ ดังนั้นฉันชอบมีคุณสมบัติที่สามารถวัดได้ซึ่งเมื่อสำรองข้อมูลด้วยกระบวนการที่เหมาะสมและเครื่องมือที่เหมาะสมจะช่วยให้เราสามารถปรับปรุงคุณภาพรหัสในขณะที่รู้ว่าเวลาไม่ได้ถูกใช้ในกระบวนการที่สิ้นเปลือง
แก้ไข: จนถึงสิ่งที่ฉันมีจากคำตอบ:
- การตรวจสอบรหัสควรครอบคลุมการทดสอบเพื่อให้มั่นใจในคุณภาพการทดสอบ
- ทดสอบกลยุทธ์แรกช่วยหลีกเลี่ยงการทดสอบที่เขียนขึ้นหลังจากข้อเท็จจริงเพื่อเพิ่มความครอบคลุม%
- การสำรวจเครื่องมือทางเลือกอื่น ๆ ที่ครอบคลุมถึงเกณฑ์การทดสอบอื่น ๆ นอกเหนือจากเพียง Statement / Line
- การวิเคราะห์รหัสที่ครอบคลุม / จำนวนข้อบกพร่องที่พบจะช่วยชื่นชมความสำคัญของการครอบคลุมและทำให้เป็นกรณีที่ดีกว่า
- สิ่งสำคัญที่สุดคือความเชื่อมั่นของทีมที่จะทำสิ่งที่ถูกต้องและต่อสู้เพื่อความเชื่อของพวกเขา
- บล็อกที่ครอบคลุม / # ของการทดสอบ - เป็นที่ถกเถียงกันอยู่ แต่ถือค่าบางอย่าง
ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม ฉันซาบซึ้งจริงๆ หัวข้อนี้ดีกว่าการระดมสมองชั่วโมงด้วยพลังที่เป็น