เมื่อฉันได้อ่าน “software testing”

Ploy Chonnikan
1 min readSep 4, 2017

--

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

…….. มาเริ่มกันเลย ตัวแรกที่เราได้รู้จักจากการอ่านก็คือ เจ้าตัวนี้เลย “ Software Quality ” หลายๆคนคงเคยได้รู้จักเจ้านี่มาบ้างแล้ว วันนี้เราเลยอยากบอกบางอย่างเกี่ยวกับเจ้าตัวนี้ในมุมของเราบ้าง
Some facts of software quality !

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

แล้วภาพนี้บอกอะไร ?
มีคนเรียกเจ้านี่ว่า “Software Quality Triangle” เพราะแสดงให้เห็นถึง gab ระหว่างมุม 3 มุม ที่ประกอบไปด้วย 1. Software 2. User Requirement และ 3. Requirement Specification ซึ่ง 3 มุมที่กล่าวมานี้มีความเกี่ยวข้องกับคุณภาพของ Product ทั้งหมด หากเราดูจากรูป ถ้ารูปที่เห็นเป็นสามเหลี่ยมด้านเท่าขนาดเล็กแสดงว่า Product ที่ได้นั้นมีคุณภาพดีมาก แต่หากรูปที่เห็นเอียนเอียงไม่เท่ากัน เราก็จะรู้ทันทีว่าปัญหาของคุณภาพ Product เกิดขึ้นจากฝั่งใด ถ้าใครสนอยากรู้รายละเอียดเพิ่มเติม แนะนำไปอ่านที่ http://www.welovebug.com/for-your-information/software-product-quality-and-software-quality-triangle/

อีกตัวนึงที่เราได้รู้วันนี้ก็คือ “ Software testing ” เจ้าตัวนี้มีเพื่อ..

  • ทดสอบว่า Product สามารถทำงานตรงตามความต้องการ Business ไหม
  • ทดสอบเพื่อลดความเสี่ยงของข้อผิดพลาด
  • การทดสอบไม่ได้เป็นการตรวจสอบว่าซอฟต์แวร์ทำงานถูกต้อง
  • การทดสอบต้องแสดงให้เห็นว่าซอฟต์แวร์มีข้อผิดพลาด

“ เป้าหมายที่สำคัญที่สุดของผู้ทำการทดสอบซอฟต์แวร์ คือ หาข้อผิดพลาดให้เร็วที่สุด และ ตรวจสอบว่าข้อผิดพลาดได้รับการแก้ไขแล้ว ”

ซึ่งการทดสอบแบ่งออกได้เป็น 4 Levels ดังนี้

  • Test Level 1 >> Unit test
    Unit test : เป็นการทดสอบฟังก์ชั่นของโปรแกรมว่าทำงานได้ถูกต้องไหม ซึ่งการเขียน Unit test จะเป็นหน้าที่ของโปรแกรมเมอร์ โดยวิธีการเขียนก็จะขึ้นอยู่ที่ประสบการณ์และข้อกำหนดของ code
    เป้าหมายหลักคือ ทำการตรวจสอบหาข้อบกพร่องและโครงสร้างของโปรแกรมว่าทำงานได้ถูกต้องไหม
  • Test Level 2 >> Integration test
    Integration test : เป็นการทดสอบการรวมแต่ละฟังก์ชั่นเข้าด้วยกัน การทดสอบนี้ขึ้นอยู่กับข้อกำหนดของระบบ [ ข้อกำหนดทางเทคนิคของการออกแบบ ]
    เป้าหมาย คือ การตรวจสอบข้อบกพร่องที่เกิดขึ้นบน interface และ พฤติกรรมทั่วไปของระบบว่าเมื่อรวม code แล้วโปรแกรมยังสามารถใช้งานได้เหมือนเดิมหรือไม่
  • Test Level 3 >> System testing
    System testing : เป็นการทดสอบโดยรวมของระบบ มักใช้เอกสารเป็นข้อกำหนด
    เป้าหมาย คือ การประเมินคุณลักษณะ เช่น ความสามารถในการใช้งาน ความน่าเชื่อถือ และ ประสิทธิภาพ
  • Test Level 4 >> Acceptance test
    Acceptance test : การทดสอบภาพรวมในมุมของลูกค้า
    เป้าหมาย คือ เพื่อตรวจสอบว่า Product ใช้งานได้ตรงตามความต้องการและความคาดหวังของลูกค้าไหม
    Regression testing : การทำซ้ำของการทดสอบเมื่อมีการเปลี่ยนแปลง code

บันทึกไว้เพื่อกลับมาทบทวน ครั้งแรกของการเขียน หากผิดพลาดต้องขออภัยมา ณ ที่นี้ด้วย สวัสดีค่ะ :)

--

--