Saladpuk.com
💡 เกร็ดความรู้
💡 เกร็ดความรู้
  • ❤️ เกร็ดความรู้
  • กฏเหล็กในการทำงาน
  • หากเหนื่อยนักขอจงหยุดพักเสียก่อน
  • ดราม่ากับ PHP
  • อยากเรียนแต่ไม่มีตังเหรอ ?
  • แค่ต่างมุมมองทองก็กลายเป็นขี้ได้
  • อยากทำเว็บมันต้องรู้อะไรบ้างหว่า?
  • คิดแบบตรรกะจำแบบโปรแกรมเมอร์
  • เวลาทำงานเหตุผลมาก่อนเสมอ
  • บังคับคลีนโค้ดทำไมฟระ ?
  • บังคับทำเทสทำไมฟระ?
  • Requirement Driven Design
  • 👨‍💻 ที่สุดแห่งการเป็นโปรแกรมเมอร์
  • การทำซอต์แวร์โปรเจคยุคปัจจุบัน
  • เคล็ดไม่ลับในการทำซอฟต์แวร์
  • Quality vs Quantity
  • ปัญหาสมองไหล
  • เรื่องแปลกในการทำซอฟต์แวร์
  • กฎ 80:20
  • เมื่อเราไม่เข้าใจกัน
  • ปัญหาที่ใหญ่ที่สุดในการทำซอฟต์แวร์
Powered by GitBook
On this page

Was this helpful?

Export as PDF

บังคับทำเทสทำไมฟระ?

Previousบังคับคลีนโค้ดทำไมฟระ ?NextRequirement Driven Design

Last updated 5 years ago

Was this helpful?

หนึ่งในข้อดีในการเขียน Test คือ "การแก้ปัญหาก่อนที่ปัญหานั้นจะได้เกิด" ลองคิดดูว่าถ้าเราเข้าใจโจทย์ผิดและเขียนลงไปในโค้ดแล้ว แล้วพอมีคนไปเจอ bug เหล่านั้น เราจะไปตามแก้ตามเช็ดกันขนาดไหน แต่ในทางตรงกันข้าม ถ้าเราป้องกันไม่ให้มันมีโอกาสเกิดปัญหาพวกนั้นเลยอันไหนมันจะง่ายกว่ากัน ลองดูตัวอย่างที่ดูแล้วก็ไม่มีอะไร แต่มันอาจะทำให้เกิด bugs ง่ายๆในระบบได้เลย

ตัวอย่าง ลูกค้าทั่วไปที่มาซื้อหนังสือถ้าซื้อเกิน 200 บาทจะได้ส่วนลด 10 บาท แต่ถ้าเป็นลูกค้า VIP จะได้ส่วนลด 15%

จากด้านบนก็ดูเหมือนจะไม่มีอะไรชิมิ? แต่ผมถามหน่อยว่า

  • ลูกค้าทั่วไปถ้าซื้อ 200 บาทพอดีเป๊ะ จะได้ส่วนลดหรือเปล่า ? (รู้ได้ไงว่าลูกค้าอยากได้แบบที่เราคิด?)

  • ลูกค้า VIP ที่ซื้อเกิน 200 บาทจะได้ส่วนลด 10 บาทนั่นด้วยหรือเปล่า ? (รู้ได้ไงว่าโปรโมชั่นมันทับซ้อนกันไม่ได้ ?)

  • ลูกค้า VIP จำเป็นไหมที่ต้องซื้อเกิน 200 เพื่อให้ได้ส่วนลด 15% (ในโจทย์ไม่ได้บอกนิ ?)

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

สำหรับคนที่สนใจอยากรู้เรื่องการเขียน Test แนะนำลิงค์นี้เบยดูได้ฟรีตั้งแต่ต้นจนจบ

  • (คอร์สจัดหนัก)

  • (ตัวอย่างเบาๆ)

หนังสือแนะนำ

หรือจะลองเข้าไปอ่านตัวนี้ก่อนก็โอเคอยู่นะ

👦 Test-Driven Development
👦 Test-First Design
Writing Great Specifications: Using Specification By Example and Gherkin
Writing Great Specifications