การประกันคุณภาพซอฟต์แวร์ ตอนที่ 2 : การประกันคุณภาพต่างจากการควบคุมคุณภาพอย่างไร

การประกันคุณภาพต่างจากการควบคุมคุณภาพอย่างไร
dm8o5c37tq1odarv.gif

เมื่อ กล่าวถึง QA เรามักคิดกันว่า QA ก็คือ tester นั่นแหละ มีหน้าที่ในการทดสอบโปรแกรมหรือซอฟต์แวร์ที่โปรแกรมเมอร์เขียน แต่จะมีซักกี่คนที่รู้ว่าจริงๆแล้ว QA เค้าทำอะไรกันบ้าง มาตามดูกันเลย

ผลิตผลที่ได้จากการผลิต ซอฟต์แวร์นั้น เป็นได้ทั้งสิ่งที่สามารถจับต้องได้ จับต้องไม่ได้ มองเห็นและมองไม่เห็น อาทิเช่น เอกสารข้อกำหนดความต้องการ หรือเอกสาต่างๆที่จัดทำขึ้นในกระบวนการผลิตซอฟต์แวร์, ข้อมูลที่ใช้สำหรับการทดสอบ ซอร์สโค้ด ชิ้นส่วนซอฟต์แวร์ หรือแม้แต่หน้าจอการทำงานของซอฟต์แวร์ นอกจากผลิตผล ที่ออกมาเป็นชิ้นงานดังกล่าวแล้ว การบริการก็ถือเป็นผลิตผลหนึ่งของการผลิตซอฟต์แวร์ด้วย อาทิเช่น การประชุมกับลูกค้า (meeting) การฝึกอบรม (training) และการให้ความช่วยเหลือ/แก้ปัญหาการใช้งานซอฟต์แวร์ (help desk) ผลิตผลด้านการบริการเหล่านี้ก็ต้องมีคุณลักษณะทางด้านคุณภาพเช่นกัน

ดังที่ได้กล่าวมาแล้วข้างต้นเกี่ยวกับความหมายของคุณภาพ ซึ่งหมายถึงการ “meeting requirements and customer needs” ซึ่งสามารถตีความได้ว่าผลิตภัณฑ์นั้นไม่มีข้อบกพร่อง หรือ “Defect-free” ทั้งในมุมของผู้ผลิตและผู้ใช้งาน และเพื่อให้ได้ผลิตภัณฑ์ที่ไม่มีข้อบกพร่อง จึงได้มีการนำวิธีการของการควบคุมคุณภาพและการประกันคุณภาพเข้ามาใช้ แต่ในปัจจุบันยังมีความเข้าใจที่คลาดเคลื่อนในความหมายของการควบคุมคุณภาพ (Quality Control) และการประกันคุณภาพ (Quality Assurance) บุคลากรที่ทำหน้าที่ด้านการประกันคุณภาพในปัจจุบันส่วนใหญ่ ยังทำหน้าที่ในการควบคุมคุณภาพโดยที่ยังไม่ได้นำหลักปฏิบัติในการประกัน คุณภาพมาใช้ในการผลิตซอฟต์แวร์นั้น จะต้องมีกระบวนการผลิตซึ่งประกอบด้วยกิจกรรมต่างๆที่เกิดขึ้นเพื่อให้สามารถ ผลิตออกมาเป็นซอฟต์แวร์ได้ ผู้ผลิตที่มีกระบวนการผลิตซอฟต์แวร์ที่สามารถทำซ้ำได้ จะสามารถผลิตซอฟต์แวร์ออกมาได้ด้วยคุณภาพที่คล้ายคลึงกับที่เคยผลิตออกมา แล้ว หลักการของการประกันคุณภาพนั้นจะเกี่ยวข้องกับกระบวนการผลิตซอฟต์แวร์ โดยหากผู้ผลิตซอฟต์แวร์มีกระบวนการผลิตที่คงเส้นคงวาแล้ว ก็สามารถให้การรับประกันกับลูกค้าได้ว่าลูกค้าจะได้รับมอบผลิตภัณฑ์ที่มี คุณภาพในระดับเดียวกับผลิตภัณฑ์ที่ได้จากกระบวนการผลิตดังกล่าว

การควบคุมคุณภาพ (Quality Control) หมายถึงกระบวนการ หรือวิธีการที่ใช้สำหรับ

  • การเปรียบเทียบคุณภาพของผลิตภัณฑ์ที่ผลิตออกมากับข้อกำหนดความต้องการ (requirements) และมาตรฐานต่างๆที่ใช้ในการผลิตซอฟต์แวร์

  • การดำเนินการอย่างใดอย่างหนึ่งหากพบสิ่งที่ไม่เป็นไปตามข้อกำหนดหรือมาตรฐาน

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

อุปสรรคที่สำคัญที่ทำให้การดำเนินงานด้านการควบคุมคุณภาพไม่ประสบความสำเร็จมีดังนี้

  • การควบคุมคุณภาพถูกมองว่าเป็นการจับผิด

  • มักมีความเข้าใจว่างานการผลิตซอฟต์แวร์เป็นงานศิลปะ

  • กระบวนการหรือมาตรฐานที่ใช้ในการผลิตซอฟต์แวร์ไม่มีประสิทธิภาพ

  • ขาดการฝึกอบรมเกี่ยวกับกระบวนการ

การประกันคุณภาพ (Quality Assurance) เป็นการดำเนินกิจกรรมต่างๆ เพื่อให้มีกระบวนการพัฒนาซอฟต์แวร์ที่ดีและมีการปรับปรุงกระบวนการอย่างต่อ เนื่อง เพื่อให้องค์กรสามารถใช้กระบวนการดังกล่าวในการผลิตและส่งมอบผลิตภัณฑ์ (ซอฟต์แวร์และบริการ) ได้ตรงตามข้อกำหนดความต้องการและเป็นผลิตภัณฑ์ที่ผู้ใช้งานต้องการใช้งาน การประกันคุณภาพเป็นการป้องกันการเกิดปัญหา ผู้ที่ทำหน้าที่การประกันคุณภาพจะให้คำแนะนำและแนวทางที่ถูกต้องในเวลาที่ เหมาะสม รวมทั้งเป็นผู้ที่ทำให้เกิดการตื่นตัว สร้างความเข้าใจเกี่ยวกับแนวคิดด้านคุณภาพภายในองค์กรและสร้างทัศนคติที่ดี ด้านคุณภาพ ทำให้บุคลากรทั้งในระดับบริหารและระดับผู้ปฏิบัติเข้าใจและเห็นถึงประโยชน์ ของคุณภาพ รวมทั้งทำให้แนวคิดด้านคุณภาพนั้นกลายเป็นวินัยและเป็นส่วนหนึ่งของการทำงาน

หน้าที่หลักๆของการประกันคุณภาพ คือ

  • ทำให้เกิดกระบวนการ พัฒนาซอฟต์แวร์ กระบวนการควบคุมคุณภาพ กระบวนการบำรุงรักษาและกระบวนการอื่นๆที่เกี่ยวข้องกับการผลิตซอฟต์แวร์ที่ ดีและเหมาะสมสำหรับองค์กร

  • ประเมินผลกระบวนการที่กำหนดขึ้น เพื่อค้นหาจุดอ่อนและปรับปรุงกระบวนการอย่างต่อเนื่อง

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

  • ระดับบริหารไม่หนักแน่นพอหรือหละหลวมในการให้ทีมงานทำงานตามกระบวนการที่กำหนด

  • ผู้ปฏิบัติงานไม่เห็นความสำคัญของกระบวนการ

  • กระบวนการที่ใช้ล้าสมัย

  • เป็นกระบวนการที่ยากเกินไป

  • กระบวนการที่เลือกใช้ ไม่ตอบสนองต่อการผลิตซอฟต์แวร์

  • ผู้ปฏิบัติไม่ได้รับการฝึกอบรมเกี่ยวกับกระบวนการ

  • ไม่มีการวัดผล

  • มีการให้โทษกับผู้ปฏิบัติในการวัดผล

ในตอนถัดไป เราจะมาทำความเข้าใจกับคุณลักษณะของคุณภาพที่เราคาดหวังจากอฟต์แวร์กัน

Featured Posts
Recent Posts
Search By Tags
Follow Us
  • Facebook Classic
  • Twitter Classic
  • Google Classic