สรุปเรื่องราวต่างๆ ที่ส่งมอบใน Software Testing 101 ครั้งที่ 1 ณ เชียงใหม่

sw-testing-cnx2016

จากบทสนทนาบนโต๊ะอาหารปลายเดือนกันยายน 2559  นำพามาสู่ชั้นเรียน Software Testing 101 (Agile Testing 101) เดือนตุลาคม 2559 ณ จังหวัดที่ผมชอบเป็นการส่วนตัว เชียงใหม่

จั่วหัวไว้ว่าเป็น Software Testing 101 แต่จริงจริงแล้วแบ่งออกเป็นสองส่วนของชั้นเรียนคือ

  • พื้นฐานของคุณภาพซอฟต์แวร์และการทดสอบซอฟต์แวร์
  • การทดสอบซอฟต์แวร์แบบเชิงป้องกันเพื่อคุมกำเนิด Bug

ในกรอบเวลาหกชั่วโมงตั้งแต่เก้าโมงเช้าจนถึงสี่โมงเย็น วันเสาร์ที่ 15  ตุลาคม พ.ศ. 2559

พื้นฐานของคุณภาพซอฟต์แวร์และการทดสอบซอฟต์แวร์

14691102_1193216017368393_6203678024363851724_n

ผมปูพื้นของผู้เข้าเรียนให้อยู่ในบริบทเดียวกันก่อนโดยมีลำดับดังนี้

  • สะท้อนภาพคุณภาพของซอฟต์แวร์ผ่านสามเหลี่ยมด้านเท่า
  • การทดสอบซอฟต์แวร์คือ
  • ต้นกำเนิดของ Bug/Defect มาจากไหนบ้าง
  • การบริหารจัดการ Bug/Defect (Defect Management)
  • เครื่องมือในการจัดเก็บบันทึก Bug/Defect
  • เราควรจะเขียน Bug/Defect Report เมื่อใด

พร้อมทั้งสอดแทรกประสบการณ์ต่างๆ ของตนเองลงไปด้วยเพื่อให้ผู้เรียนเห็นภาพชัดขึ้น

14639575_1193314727358522_8246669209915453382_n

ผมพาผู้เรียนลงลึกมาอีกนิดในส่วนของระดับของการทดสอบ (Test Level) โดยนำพามาให้ทำความรู้จัก

  • Agile Testing Pyramid ของ Mike Cohn
  • ความหมายของ Unit Testing, Integration Testing, System Testing, Acceptance Testing และ Non-Functional Testing โดยใช้ Agile Testing Pyramid ในการอธิบาย
  • Unit Testing คืออะไร
  • ความคุ้มทุนของการสร้าง Unit Testing
  • Whole Team Approach
  • Test Environment
  • Test Coverage Matrix
  • Test Plan

ปอและปจ่มขึ้นมาช่วยพูดเรื่อง Exploratory Testing จากสิ่งที่ได้ไปเรียนมาจากชั้นเรียน The Whole Team Approach to Agile Testing สอนโดย Janet Gregory ผู้ร่วมเขียนหนังสือ Agile Testing

การทดสอบซอฟต์แวร์แบบเชิงป้องกันเพื่อคุมกำเนิด Bug

14563296_1193333930689935_4213620901583077889_n

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

  • พัฒนาการของ Requirements –> Features –> Stories
  • การแตก Feature เป็น Stories ด้วย Test Design Techniques
  • สมการ Test Case
  • เทคนิคการออกแบบ Test Case (Test Design Techniques)
    • Boundary Value Analysis
    • Equivalent Partition
    • State Transition
    • Tabular
  • การทดสอบสำหรับการพัฒนาและส่งมอบซอฟต์แวร์เป็นรอบๆ (Iteration)
  • เขียนทุกอย่างที่คุยกันออกมาเป็นภาพ
  • แนวทางปฏิบัติ Table-Driven Programming
  • Automation Testing
  • Test-Last และ Test-First

ซึ่งผมเน้นย้ำเรื่องของการเตรียมเนื้อเตรียมตัวทั้ง Analyst, Programmer, Developer และ Tester สำหรับการมาของการพัฒนาซอฟต์แวร์แบบแอจไจล์ เพราะหากไม่เตรียตัวไว้ก่อน ความสงบสุขจะหายไปอย่างแน่นอน

จบครั้งที่หนึ่ง เพื่อนำมาสู่ครั้งต่อ ต่อ ต่อ ต่อ ไป

14606312_1193666687323326_8945904799550271487_n

สำหรับผมนั้นระยะเวลาหกชั่วโมงที่ได้มาแบ่งปันให้เพื่อนพ้องน้องพี่ ณ เชียงใหม่ในครั้งนี้ถือว่าคุ้มมากมาก เราไม่เน้นการทำกำไรใดใด มาทำกันด้วยใจและขอเป็นส่วนหนึ่งในการสร้างชุมชนแห่งการฝึกฝน ลงมือทำและแบ่งปัน ณ เชียงใหม่

ต้องขอขอบคุณเพื่อนพ้องน้องพี่ที่สนใจมาลงเรียนกับผม รวมทั้งปอและแจ่ม ที่ช่วยดำเนินการจนสำเร็จลุล่วง

จะกลับมาอีกในเร็วๆ นี้ครับ

วันจันทร์ที่ 17 ตุลาคม พ.ศ. 2559 เวลา 08:53น.
อำเภอเมืองเชียงใหม่ จังหวัดเชียงใหม่ ประเทศไทย

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *