เมื่อวันอังคารที่ 16 มิถุนายน 2552  ผู้ช่วยศาสตราจารย์ ดร. สมใจ บุญศิริ จากภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย เดินทางมาเยี่ยมชมบริษัท และได้พูดคุยกันในเรื่องของ Software Testing ที่ทางท่านอาจารย์สมใจ ได้เปิดสอนมาเป็นเวลา 5 ปี ณ ปัจจุบัน ส่วนตัวดีใจที่สายงานด้าน Software Testing เริ่มมีการเรียนการสอนเกิดขึ้นในระดับมหาวิทยาลัย ซึ่งนอกจากจุฬาลงกรณ์มหาวิทยาลัยแล้วนั้น ยังมีอีกหลายๆ มหาวิทยาลัยที่ได้เปิดการเรียนการสอน Software Testing ขึ้นตั้งแต่ปี 2548 นับระยะเวลา 5 ปีที่ได้เปิดสอนด้านของ Software Testing นับว่าเป็นแนวโน้มที่ดีของสายงานด้าน Software Testing

สิ่งที่ได้จากการพูดคุยนั้น สรุปประเด็นสำคัญข้อหนึ่งคือ ในภาคการศึกษายังขาดในเรื่องของการประยุกต์ใช้ความรู้ และทฤษฎีต่างๆ ของ Software Testing ไปใช้งานจริง ดังนั้นนักศึกษาจึงมองไม่เห็นภาพว่าในการทำงานจริงๆ ของ Software Testing นั้นเป็นแบบไหน ซึ่งในส่วนที่ภาคการศึกษาขาดอยู่นั้น ในภาคเอกชนสามารถที่จะเข้าไปช่วยเหลือได้

ดังนั้นจึงได้เกิดการร่วมมือกันเกิดขึ้นในระหว่างทางภาควิชาคณิตศาสตร์ และบริษัทของผู้เขียน ที่จะนำประสบการณ์ในการทำงานด้าน Software Testing ไปถ่ายทอดให้กับนักศึกษาที่สนใจเรียนในวิชา Software Testing ได้เห็นถึงการทำงานจริงในภาคเอกชน

ผู้เขียนจะเป็นผู้ที่จะไปถ่ายทอดประสบกรณ์ในการทำงานด้าน Software Testing จึงได้ขอเอกสารประมวลรายวิชา (Course Syllabus) มาเพื่อเป็นข้อมูลเบื้องต้นในการเตรียมการสอน ก็เลยได้ขออนุญาติไปทางท่านอาจารย์สมใจ ในการที่จะขอนำรายละเอียดของเอกสารประมวลรายวิชา (Course Syllabus) มาเผยแพร่บน welovebug ซึ่งทางท่านอาจารย์สมใจ อนุญาติให้สามารถนำมาเผยแพร่ได้

ข้อมูลรายวิชา Software Testing

Software Testing เป็นชื่อวิชา (Course Title) ที่เปิดสอน ให้กับนักศึกษาชั้นปีที่ 4 สาขาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ โดยมีรายละเอียดเบื้องต้นดังต่อไปนี้

  • จำนวนหน่วยกิต (Course Credit) 3 หน่วยกิต
  • รายวิชาที่ต้องเรียนมาก่อน วิชาใดวิชาหนึ่ง
    • วิธีการและการพัฒนาทางวิศวกรรมซอฟต์แวร์ (Software Engineering Methodology and Development)
    • วิศวกรรมซอฟต์แวร์ (Software Engineering)
  • จำนวนชัวโมงที่สอนต่อสัปดาห์ 3 ชั่วโมง
  • วิชาเลือกเฉพาะสาขา กลุ่ม Computer Science  ระดับปริญญาตรี
  • ปีการศึกษา 2552 มีนิสิตลงทะเบียนเรียน 26 คน

วัตถุประสงค์ทั่วไป และ/หรือ วัตถุประสงค์เชิงพฤติกรรม เพื่อให้นิสิตสามารถ

  • อธิบายความหมาย ความสำคัญของการทดสอบซอฟต์แวร์
  • อธิบายหลักเกณฑ์การทดสอบซอฟต์แวร์
  • อธิบายพื้นฐานของการทดสอบซอฟต์แวร์ที่เป็นระบบ
  • ประยุกต์ทฤษฎีการพัฒนาซอฟต์แวร์เพื่อใช้ในการทดสอบ
  • ประยุกต์ระเบียบวิธีในการทดสอบซอฟต์แวร์

เนื้อหารายวิชาต่อสัปดาห์

การเรียนการสอนจะแบ่งออกเป็นทั้งหมด 15 สัปดาห์ ดังต่อไปนี้

สัปดาห์ที่ 1  Introduction to Software Testing Concepts

  • Purposes, Activities, Processes, and Context
  • Questions about Testing
  • Software Tester

สัปดาห์ที่ 2  Overview of Testing Techniques

  • Black-Box Testing (Functional)
  • White-Box Testing (Structural)
  • Gray-Box Testing (Functional and Structural)
  • Taxonomy of Software Testing Technique

สัปดาห์ที่ 3 – 5  Black-Box Testing Techniques

  • Equivalence Class Testing
  • Boundary Value Testing
  • Decision Table Testing
  • Pairwise Testing
  • State-Transition Testing
  • Domain Analysis Testing
  • Use Case Testing

สัปดาห์ที่ 6 – 7  White-Box Testing

  • Basis Path Testing
  • Loop Testing
  • Control Flow Testing
  • Data Flow Testing

สัปดาห์ที่ 8  สอบกลางภาค

สัปดาห์ที่ 9  Levels of Testing

  • Acceptance Testing
  • System Testing
  • Integration Testing
  • Unit Testing

สัปดาห์ที่ 10  Software Inspection

  • Basic Concepts and Generic Process
  • Fagan inspection
  • Other Inspections and Related Activities

สัปดาห์ที่ 11  Defect Classification and Analysis

  • General Types of Defect Analyses
  • Defect Classification and ODC
  • Defect Analysis for Classified Data

สัปดาห์ที่ 12  Test Planning

  • Build  a Test Plan
  • Define the Metric Objectives
  • Review/Approve the Plan

สัปดาห์ที่ 13  Test Implementation

  • Test Environment
  • What Should be Automated?
  • Avoiding Testing Tool Traps

สัปดาห์ที่ 14 – 15  Class Presentation

ส่งท้าย

ผู้เขียนหยิบส่วนหลัก 3 ส่วนจากเอกสารประมวลรายวิชา (Course Syllabus) มาให้เพื่อนพ้องน้องพี่ได้เห็นถึงรายละเอียดคราวๆ ของการเรียนการสอน Software Testing ของสาขาวิทยาการคอมพิวเตอร์ ภาควิชาคณิตศาสตร์ คณะวิทยาศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย ซึ่งเป็นจุดเริ่มต้นที่ดีมากมาก (ความคิดเห็นส่วนตัวของผู้เขียน)

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

ทั้งนี้ยินดีที่จะรับความคิดเห็น และข้อเสนอแนะต่างๆ ของเพื่อนพ้องน้องพี่ welovebug เพื่อที่จะนำส่งไปยังท่านอาจารย์สมใจ ในการนำไปประกอบในการปรับปรุงเนื้อหาให้ดียิ่งขึ้นในปีการศึกษาต่อๆ ไป ครับ