จากหนังสือ The Clean Coder นั้น
มีเรื่องที่น่าสนใจสำหรับ Professional developer มากมาย
หนึ่งในนั้นคือ "Professional developer test their code”
การทดสอบ code ที่เขียนเป็นสิ่งที่ดี
แต่มันไม่ได้ง่ายแบบที่พูดนะสิ
ดังนั้นต้องเขียนแบบไหน เท่าไร ถึงจะดี
ก่อนอื่นต้องเริ่มด้วย Test Strategy ที่ดี มาเริ่มเรียนรู้กันหัวข้อแรกคือ QA (Quality Assurance) ในหนังสือบอกไว้ว่า QA should find nothing QA is part of the team QA as specifier QA as characterizer
QA should find nothing
หมายความว่า ถ้ายังแยกทีม Dev และ QA/Tester ออกจากกัน ผลที่ตามมาคือ ความน่ากลัวและสิ้นเปลืองอย่างมาก เหมือนเกมส์แมวจับหนู ซึ่งเป็นขั้นตอนการค้นหา แต่สิ่งที่ควรเกิดขึ้นคือ QA/Tester ควรถามและบอกว่า มีอะไรบ้างที่จะเกิดขึ้น จะทดสอบอย่างไร ขั้นตอนเป็นอย่างไร ก่อนที่จะเริ่มต้นพัฒนา นี่คือสิ่งที่ควรต้องเกิดขึ้น เพื่อป้องกันปัญหานั่นเอง ทำให้เกิด QA should find nothingQA is part of the team
หมายความว่าทีม Dev และ QA/Tester ต้องทำงานร่วมกัน ไปด้วยกัน ผิดด้วยกัน เพื่อช่วยกันทำให้มั่นใจว่า ระบบมีคุณภาพ ซึ่งหน้าที่ของ QA ในทีมนั้นควรทำตัวเป็น specifier และ characterizer ?QA as specifier
การที่ต้องทำงานร่วมกับฝ่าย business เพื่อสร้าง automated acceptance test มันก็คือ specification และ requirement ที่แท้จริงของระบบนั่นเอง เป็นการแปลงข้อมูลจาก requirement จากฝั่ง business มาเป็นข้อมูลฝั่งพัฒนา เพื่อทำให้เข้าใจความต้องการและการทำงานของระบบแบบชัดเจน ไม่ต้องเสียเวลามานั่งตีความ ซึ่งในการทำงานจริง ๆ นั้น ฝั่ง business จะเขียน test caseเฉพาะ happy path ส่วนฝั่ง QA จะเพิ่มเติมส่วนที่ขาดหายไปทั้ง unhappy path, edge case เป็นต้นQA as characterizer
จะใช้แนวปฏิบัติจาก Exploratory Testing สำหรับดูพฤติกรรมการทำงานจริง ๆ ของระบบว่าทำงานอย่างไร จากนั้นทำการสรุปผลไปยังทีมพัฒนาและทีม business QA นั้นไม่ได้มีหน้าที่ในการแปลหรืออธิบาย requirement แต่ต้องทำการระบุให้ได้ว่า ระบบจริง ๆ มันทำงานและมีพฤติกรรมอย่างไรเรื่องที่ 2 คือ The Test Automation Pyramid
เป็นเรื่องที่คนที่มีความเกี่ยวข้องในการพัฒนา software น่าจะเข้าใจเป็นอย่างดี แม้จะนำไปใช้หรือไม่ใช้ก็ตาม โดยในหนังสือจะเน้นมาก ๆ คือ- Professional developer ต้องให้ความสำคัญกับ TDD สำหรับการสร้าง unit test
- Professional development team ต้องใช้ acceptance test สำหรับระบบการทำงานของระบบ
- Professional development team ต้องใช้ Continuous Integration สำหรับการทำ regression
วันนี้ QA should find nothing แล้วหรือยัง ?ขอให้สนุกกับการ coding ครับ