สวัสดีค่ะ … ถึงเวลาซ๊ากที ฤกษ์งามยามดี กลิ่นดอกพญาสัตบรรณเลือนหาย แสงแดดสาดส่องแทนที่ ฤดูร้อนถามหา ณ เพลานี้เราได้พบกัน 🌼🌼 ก็ว่ากันตามหัวข้อของบทความ เรื่องราวเหมือนจะไม่เครียดแต่จริง ๆ ก็วิชาก๊านน วิชาการอยู่นะคะ ฮาา 😉ผู้เขียนจำได้ว่าสมัยเรียนป. ตรี (ก็ผ่านมายังไม่กี่ปีหรอกค่ะ ฮรี่ ๆ) Software Testing เป็น หัวข้อหนึ่งที่ผู้เขียนต้องเรียนด้วยค่ะ .. และผ่านมาไม่กี่ปีปัจจุบันผู้เขียนก็ได้มีโอกาส (ที่เรียกว่าบทบาทหน้าที่) เป็นผู้ทดสอบซอฟต์แวร์มาแล้วหลาย ๆ โปรแกรมค่ะ (อ๊ะไม่กี่ปีเหรอ ?) จึงได้รวบรวมข้อมูลและประสบการณ์เอาไว้ และถือโอกาสนี้มาเขียนบทความแชร์ให้กับผู้อ่านเพื่อเป็นแนวทางและ/หรือความรู้เล็ก ๆ น้อย ๆ ได้นำไปใช้ในการทดสอบซอฟต์แวร์ซึ่งถือเป็นขั้นตอนหนึ่งที่สำคัญไม่น้อยไปกว่าขั้นตอนอื่นในกระบวนการพัฒนาซอฟต์แวร์กันค่ะ สำหรับเนื้อหาหลักของบทความนี้ (ตอนที่ 1) ผู้เขียนจะนำเสนอข้อมูลและแชร์ประสบการณ์ให้กับผู้อ่านทราบเกี่ยวกับกิจกรรมและขั้นตอนต่าง ๆ ของการทดสอบซอฟต์แวร์กันก่อนค่ะ ในตอนต่อไปเราจะลงลึกไปแต่ละขั้นตอนพร้อมตัวอย่าง และประสบการณ์ที่ผู้เขียนอยากจะแชร์ให้ผู้อ่านได้ทราบกันนะคะ (เผื่อว่าเราจะได้มาระดมสมอง ช่วยแสดงความคิดเห็นกันเข้ามา และ/หรือผู้อ่านจะมีข้อเสนอแนะให้กับผู้เขียน ถือว่าเป็นการแลกเปลี่ยนกันค่ะ)การทดสอบซอฟต์แวร์ที่ผู้เขียนจะมาแชร์นั้น จะเป็นการทดสอบแบบ Functional Testing โดยใช้เทคนิค Blackbox Testing และทดสอบแบบ Manual นะคะ แต่ก่อนที่เราจะเข้าสู่เนื้อหาหลักของบทความนี้กันนั้น ผู้เขียน (ขอ) อธิบายนิยาม/ความหมายของ Software Testing รวมถึง Manual Testing, Functional Testing และ Blackbox Testing กันก่อนนะคะ เพื่อทั้งผู้อ่านและผู้เขียนจะได้ทบทวนกันซักหน่อย และทำความเข้าใจไปพร้อม ๆ กันค่ะ (อิอิอิ) 😊 Software Testing หรือการทดสอบซอฟต์แวร์ คืออะไรกันน่ะ ? การทดสอบซอฟต์แวร์ หรือ Software Testing ก็คือ กระบวนการในการประเมินและปรับปรุงคุณภาพของซอฟต์แวร์โดยการค้นหาข้อผิดพลาดและ/หรือจุดบกพร่องของซอฟต์แวร์ที่มีอยู่ให้ปรากฏออกมา แล้วสามารถระบุแนวทางที่ทำให้เกิดขึ้นได้และก็ทำการแก้ไข ค่ะ Manual Testing คืออะไร ? Manual Testing ก็คือ การทดสอบที่ดำเนินการโดยไม่ได้ใช้เครื่องมืออัตโนมัติ (Automated Tool) หรือสคริปต์ (Script) โดยผู้ทดสอบจะ Run Test ตาม Test Plan, Test Case หรือ Test Scenarios ด้วยมือของผู้ทดสอบเองนั่นแหละค่ะ[Manual คำศัพท์ทางวิศวกรรม ความหมาย คือ คู่มือ, (งาน) ทำด้วยมือ] อ่านถึงตรงนี้ผู้อ่านบางท่านอาจตั้งคำถามในใจ และ/หรืออุทาน ออกมาว่า “เดี๋ยวนี้เค้าทำ Automated Testing กันแล้วน่ะ ทำไมยัง Manual กันนี่ ! ” ก็เพราะว่า ………….. อืม ….. ยังไงผู้เขียนก็คิดว่า การที่เราจะตัดสินใจลงมือทดสอบแบบ Automated เลยแบบสุ่มสี่สุ่มห้า (รวมถึงเรื่องอื่นในชีวิต Drama ซะงั้น ฮาาา) โดยไม่ได้ดูถึงความเหมาะสมความคุ้มค่า ไอ้ที่เค้าว่าดีนั้น ก็อาจจะไม่ดีเพราะไม่ได้เหมาะสมกับการทดสอบโปรแกรมที่เราจะทดสอบก็ได้ และผู้เขียนเชื่อว่า เราจะ Automated ได้ดีนั้น ยังไงก็ต้อง Manual ได้ดีระดับหนึ่งก่อน มีความเข้าใจ และมีประสบการณ์มาก่อน เหมือนเป็นพื้นฐานที่สำคัญค่ะ อีกอย่างสุดท้ายเมื่อเรามีประสบการณ์การทดสอบซอฟต์แวร์ไประยะหนึ่งแล้ว เราก็จะพบว่าการทดสอบโปรแกรมหนึ่ง ๆ นั้น ยังไงก็ต้องทดสอบแบบ Manual ร่วมกับ Automated อยู่ดี จะ Automated 100% เลยก็อาจจะไม่ครอบคลุมทั้งหมดได้และเอาเป็นว่า ………. ผู้เขียนจะมาเล่าเรื่องนี้ให้ละเอียดกัน (ตามที่ผู้เขียนได้ประสบพบเจอ ศึกษาหาข้อมูลมา) ซักบทความหนึ่งในโอกาสหน้านะคะ ตอนนี้ก็เริ่ม ๆ มาจับ ๆ ถู ๆ เอ้ยยยยย ศึกษา Automated Test บ้างแล้วค่ะ ส่วน Tool ตัวไหนนั้น ขออุบส์ไว้ก่อนนะคะ กลัวจะไม่เวิคคค แฮร่ ไปซะไกลแล้วววจร้าาา เรามาว่ากันด้วยเนื้อหาของตอนที่ 1 ต่อกันดีกว่า