Skip to content

Latest commit

 

History

History
54 lines (31 loc) · 4.78 KB

README.md

File metadata and controls

54 lines (31 loc) · 4.78 KB
description
Software Testing

👦 Test-Driven Development

😢 ปัญหา

  1. เคยรู้สึกปวดกบาลกันไหม เวลาที่เราเขียนๆงานอยู่แล้วเพื่อนมาบอกว่าเจอ bug ในงานของเรา แล้วพอเราแก้ให้เขาเสร็จ มันก็เดินมาบอกว่าไอ้ที่แก้เมื้อกี้มันทำตรงนั้นพังด้วยอ่ะ ด้วยจิตวิญญาณของโปรแกรเมอร์ของเราเลยต้องตามไปแก้ให้มันต่อ แล้วพอเราแก้เสร็จ เจอเพื่อนเรามันก็เดินมาบอกว่า อะเค bug ล่าสุดหายละ แต่ bug ตัวแรกสุดอะกลับมาอีกละ วนเวียนกันไปเรื่อยๆ
  2. ตอนที่เราเทสกันแต่ละรอบก็ใช้เวลาเทสนานม๊วก เช่นกว่า developer จะส่งให้ฝั่ง tester ได้เทส และกว่าที่ tester จะส่งผลกลับมาให้ developer ได้ นี่ยังไม่รวมว่าพวก tester จะต้องใช้เวลาทำความเข้าใจว่าจะเทสยังไงด้วยนะ รวมๆแล้วเขียนโปรแกรมหรือแก้ bug เสร็จ 1 ครั้ง กว่าจะรู้ผลว่ามี bug หรือเปล่าอาจจะใช้เวลามากกว่า 1 วันก็ได้!

😄 วิธีแก้ปัญหา

ปัญหาที่เกิดขึ้นมันชี้ว่า โค้ดที่เราเขียนมันไม่ถูกนำไปเทส หรือ เทสที่นำไปทดสอบมันไม่ครอบคลุม และในบางทีอาจจะหมายถึงเราไม่มีสิ่งที่เรียกว่า Test automation ก็ได้ทำให้การเทสแต่ละครั้งมันช้าม๊วก ดังนั้นจากที่ว่ามาในเรื่องนี้เราจะมาดูกันว่าการพัฒนาซอฟต์แวร์โดยใช้หลัก Test-Driven Development หรือ TDD มันจะมาช่วยลดปัญหาที่ว่ามายังไงบ้างกันเน่อ

{% hint style="info" %} เชื่อไหมว่า 80% ของคนเขียนโค้ดส่วนใหญ่ไม่สนใจเรื่องนี้เพราะมองว่ามันเสียเวลาที่จะทำ แต่สุดท้ายงานก็จะออกมาไม่มีคุณภาพ bug เยอะเต็มไปหมด และไม่สามารถจะเพิ่มความสามารถใหม่ๆเข้าไปในโปรแกรมได้ แต่ถ้าเราได้ลองศึกษาและทำมันเป็นชีวิตประจำวันไปแล้วละก็จะพบว่า มันเร็วกว่าการเขียนแบบเดิมหลายเท่าเสียอีก (ผมไม่ได้มโนเอานะ มันมีวิจัยเรื่องนี้จริงๆ) {% endhint %}

{% hint style="success" %} สไลด์ที่ใช้ในการสอน
https://gitpitch.com/saladpuk/test-driven-development {% endhint %}

🧭 ความรู้ในการจัดการปลาตัวนี้

{% page-ref page="intro.md" %}

{% page-ref page="test-cases.md" %}

{% page-ref page="xunit01.md" %}

{% page-ref page="xunit02.md" %}

{% page-ref page="testable-code.md" %}

{% page-ref page="mantra-of-tdd.md" %}

{% page-ref page="fun-n-nonefun-testing.md" %}

{% page-ref page="manual-vs-automation.md" %}

{% page-ref page="automation-frameworks.md" %}

{% page-ref page="mock-framework.md" %}

{% page-ref page="moq101.md" %}

{% page-ref page="summary.md" %}

🎥 วีดีโอทั้งหมดของคอร์สนี้

@Youtube Test-Driven Development (TDD)