Summary (สรุป)

เมื่อนำทั้งหมดนี้มารวม กัน สิ่งที่ผมได้ระบุไว้ในบทนี้คือแนวทางแบบองค์รวมต่อการทดสอบ ซึ่งหวังว่าจะให้คำแนะนำทั่วไปแก่คุณเกี่ยวกับวิธีดำเนินการเมื่อทดสอบระบบของคุณเอง เพื่อทบทวนพื้นฐาน:

  • Optimize เพื่อ feedback ที่รวดเร็ว และแยกประเภทของเทสต์ให้สอดคล้องกัน

  • หลีกเลี่ยงความจำเป็นของ end-to-end test ที่ครอบคลุมมากกว่าหนึ่งทีม พิจารณาใช้ consumer-driven contract แทน

  • ใช้ consumer-driven contract เพื่อเป็นจุดโฟกัสสำหรับบทสนทนาระหว่างทีม

  • พยายามเข้าใจการแลกเปลี่ยนระหว่างการทุ่มเทความพยายามมากขึ้นในการทดสอบ กับการตรวจจับปัญหาได้เร็วขึ้นใน production (การ optimize สำหรับ MTBF เทียบกับการ optimize สำหรับ MTTR)

  • ลองทดสอบใน production ดูสิ!

ถ้าคุณสนใจอ่านเพิ่มเติมเกี่ยวกับการทดสอบ ผมขอแนะนำ Agile Testing โดย Lisa Crispin และ Janet Gregory (Addison-Wesley) ซึ่งครอบคลุมการใช้ testing quadrant อย่างละเอียดมากขึ้น รวมถึงเรื่องอื่นๆ ด้วย สำหรับการเจาะลึกเรื่อง test pyramid มากขึ้น พร้อมกับตัวอย่างโค้ดและการอ้างอิงเครื่องมือเพิ่มเติม ผมยังขอแนะนำ “The Practical Test Pyramid” โดย Ham Vocke ด้วย 9

บทนี้เน้นไปที่การทำให้แน่ใจว่าโค้ดของเราทำงานได้ก่อนที่มันจะไปถึง production เป็นหลัก แต่เราก็เริ่มมองไปที่การทดสอบ application ของเราเมื่อมันไปถึง production แล้วด้วย นี่เป็นสิ่งที่เราต้องสำรวจอย่างละเอียดมากขึ้นอีกมาก ปรากฏว่า microservices ก่อให้เกิดความท้าทายมากมายในการเข้าใจว่าซอฟต์แวร์ของเรามีพฤติกรรมอย่างไรใน production ซึ่งเป็นหัวข้อที่เราจะครอบคลุมอย่างละเอียดมากขึ้นในบทถัดไป

1 Lisa Crispin and Janet Gregory, Agile Testing: A Practical Guide for Testers and Agile Teams (Upper Saddle River, NJ: Addison-Wesley, 2008).

2 Mike Cohn, Succeeding with Agile (Upper Saddle River, NJ: Addison-Wesley, 2009).

3 Steve Freeman and Nat Pryce, Growing Object-Oriented Software, Guided by Tests (Upper Saddle River, NJ: Addison-Wesley, 2009).

4 Jason D. Valentino, “Moving One of Capital One’s Largest Customer-Facing Apps to AWS,” Capital One Tech, May 24, 2017, https://oreil.ly/5UM5W .

5 Diane Vaughan, The Challenger Launch Decision: Risky Technology, Culture, and Deviance at NASA (Chicago: University of Chicago Press, 1996).

6 Martin Fowler, “Eradicating Non-Determinism in Tests,” martinfowler.com, April 14, 2011, https://oreil.ly/7Ve7e .

7 Emily Bache, “End-to-End Automated Testing in a Microservices Architecture—Emily Bache,” NDC Conferences, July 5, 2017, YouTube video, 56:48, NDC Oslo 2017, https://oreil.ly/QX3EK .

8 Nicole Forsgren, Jez Humble, and Gene Kim, Accelerate: The Science of Building and Scaling High Performing Technology Organizations (Portland, OR: IT Revolution, 2018).

9 Ham Vocke, “The Practical Test Pyramid,” martinfowler.com, February 26, 2018, https://oreil.ly/J7lc6 .