Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สรุปเรื่อง Pyramid of Software Quality 

$
0
0

mutation-testing-pyramid-of-software-quality

จากบทความ Mutation testing and the quest for quality ทำการอธิบายถึงความแตกต่างระหว่าง Mutation testing และ Code coverage ซึ่งมีเป้าหมายเพื่อปรับปรุงคุณภาพของ software โดยมีเรื่องหนึ่งที่น่าสนใจ คือ Pyramid of Software Quality จึงนำมาสรุปไว้ดังนี้

โดยปกติแล้วผู้ใช้งานจะเห็นเพียงว่า ระบบที่ใช้งานมีคุณภาพหรือไม่

แต่เบื้องหลังของคุณภาพเหล่านั้น ยังมีอีกหลายส่วนที่มักถูกมองข้ามไป ซึ่งสามารถสรุปได้ด้วย Pyramid of Software Quality แสดงดังรูป mutation-testing-pyramid-of-software-quality จากรูปจะเห็นว่าส่วนของ Software Quality หรือ คุณภาพของ software มันคือยอดของภูเขาน้ำแข็ง ซึ่งคนทั่วไปจะเห็นเพียงส่วนนี้เท่านั้น ดังนั้นมาดูส่วนอื่น ๆ กันบ้าง

1. Code Quality หรือ คุณภาพของ code

เป็นส่วนที่มีอิทธิผลต่อ Software Quality สูงมาก ๆ ถ้า code ที่สร้างขึ้นมามันไร้คุณภาพ ถ้า code ที่สร้างขึ้นมามันดูแลรักษายาก ถ้า code มันยุ่งเหยิง และ ซับซ้อน ถ้า code มันยากต่อการทำความเข้าใจ ดังนั้นเมื่อทำการแก้ไข code แล้ว ผลที่ตามมาก็คือ ส่วนการทำงานอื่น ๆ ทำงานผิดพลาด !! แต่ถ้าไม่มีการเปลี่ยนแปลง code ก็ไม่ต้องไปสนใจ !! ซึ่งมันคงเป็นไปไม่ได้ใช่ไหม ?

2. Test Quality หรือ คุณภาพของการทดสอบ

ถ้าคุณต้องการให้คุณภาพของ code สูงแล้ว จำเป็นต้องทำการ refactor code อยู่เป็นประจำ ซึ่งคุณจะมั่นใจในการ refactor code ได้อย่างไรถ้าไม่มีการทดสอบ แน่นอนว่า manual test คงไม่พอ และ เหนื่อยเกินไป เป็นที่มาของ Automated test นั่นเอง ดังนั้นเรื่องคุณภาพของการทดสอบ จึงความสำคัญต่อ Code Quality อย่างมาก ถ้า code ส่วนไหนที่สำคัญ แต่ไม่มีชุดการทดสอบครอบคลุมแล้ว คุณควรจะสร้างชุดการทดสอบส่วนนั้นขึ้นมาซะ อย่ารอช้า !! ลงมือทำเลย

3. Mutation testing

เพื่อเพิ่มความมั่นใจว่า ชุดการทดสอบที่เราสร้างขึ้นมานั้น มันช่วยลดความผิดพลาดของ code บน production server คุณต้องมีจำนวน Mutation test coverage ที่สูงมาก ๆ

4. Craftsman programmer

มันคือพื้นฐานที่สำคัญสุด ๆ ของ Software Quality ถ้าต้องการเพิ่มคุณภาพของ software ให้สูง จำเป็นต้องทำการปรับปรุงทั้ง production code และ test code เสมอ เนื่องจากพวก test coverage ที่มันสูง ๆ ไม่ได้ตอบโจทย์อะไรเลย มันเพียงแค่บอกว่า code ส่วนไหนไม่ถูกทดสอบเท่านั้นเอง ลองคิดดูสิว่า ถ้า test code มันแย่ ถ้า production code มันแย่ แต่จำนวน test coverage มันสูง แล้วเราจะได้ code ที่อ่านยากมานะสิ แน่นอนว่า ค่าใช้จ่ายในการดูแลย่อมสูงมากมาย !!
จากหนังสือ Clean Code เขียนไว้ว่า Clean code always looks like it was written by someone who cares
คำถาม วันนี้คุณใส่ใจใน code ที่คุณเขียนหรือไม่ ?

Viewing all articles
Browse latest Browse all 1997

Trending Articles