7152305 ch 10

Page 1

บทที่ 10 การทดสอบซอฟต์แวร์


วัตถุประสงค์ • • • •

เพื่อทำควำมเข้ำใจกับกำรทดสอบซอฟต์แวร์ เพื่อให้เรียนรู้ระดับของกำรทดสอบซอฟต์แวร์ เพื่อให้เรียนรู้กำรทบทวน กำรตรวจตรำ และกำรตรวจตลอด เพื่อให้เรียนรู้กำรแก้จุดบกพร่อง และ กำรติดตั้งระบบ


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


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


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


การทดสอบและการตรวจสอบซอฟต์แวร์ Errors Requirements Conformance Performance

An Indication of Quality


แบบจาลองวี (V Model) Requirements Analysis

System Testing

Preliminary Design

Integration Testing Unit Testing

Detailed Design

Coding


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


การทดสอบแบบมอดูลหรือระดับหน่วย • • • • •

ส่วนต่อประสำน (Interface) โครงสร้ำงข้อมูลเฉพำะที่ (Local Data Structure) เงื่อนไขขอบเขต (Boundary Condition) เส้นทำงอิสระ (Independent Path) เส้นทำงกำรจัดกำรผิดพลำด (Error Handling Path)


การทดสอบแบบกล่องขาว White-Box Testing / Glass-Box Testing / Structural Testing เป็นกำรทดสอบที่คำนึงถึงข้อควำมสั่ง (Statement) ของ โปรแกรมเป็นหลัก โดยกรณีทดสอบจะออกแบบตำมโครงสร้ำงของ โปรแกรมและสำมำรถทดสอบข้อควำมสั่งของส่วนควบคุม (Control Statement) ต่ำง ๆ ในโปรแกรม


การทดสอบแบบกล่องขาว White-Box Testing / Glass-Box Testing / Structural Testing เป็นกำรทดสอบที่คำนึงถึงข้อควำมสั่ง (Statement) ของ โปรแกรมเป็นหลัก โดยกรณีทดสอบจะออกแบบตำมโครงสร้ำงของ โปรแกรมและสำมำรถทดสอบข้อควำมสั่งของส่วนควบคุม (Control Statement) ต่ำง ๆ ในโปรแกรม


Inputs

Outputs


การทดสอบการไหลของส่วนควบคุม (Control Flow Testing) Statement

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

Edge

Region


ลักษณะการไหลของส่วนควบคุม • • • • •

แบ่งตำมโครงสร้ำงของโปรแกรมเป็น 5 ลักษณะ Sequential คือ กำรทำงำนแบบเรียงลำดับ If-then-else คือ กำรทำงำนแบบกำรเลือก If-then คือ กำรทำงำนแบบกำรเลือก เงื่อนไขเดียว Do While คือ กำรทำงำนแบบวนซ้ำ (Loop) Repeat Until คือ กำรทำงำนแบบวนซ้ำ ทำอย่ำงน้อย 1 ข้อควำมก่อนสั่ง


โครงสร้างของโปรแกรม 5 ลักษณะ Condition

Condition

T

F

If-then-else

Sequential

If-then


โครงสร้างของโปรแกรม 5 ลักษณะ Condition

F

T F Condition

T

Do While

Repeat Until


การทดสอบเส้นทางมูลฐาน เป็นเทคนิคหนึ่งของกำรทดสอบแบบกล่องขำว ช่วยนักทดสอบระบบ สร้ำงกรณีทดสอบ เพื่อใช้เป็นตัวชี้วัดควำมซับซ้อนของมอดูลและใช้เป็นเกณฑ์ ในกำรกำหนดชุดมูลฐำนของเส้นทำงกำรทำงำน มอดูลจะถูกทดสอบทุก ๆ เส้นทำง เรียกว่ำ Execution Path • Exercise All Statement • Exercise All Logical Decision on T/F Branches • Exercise All Independent Paths • Exercise Loop Boundaries • Exercise Data Structures


การทดสอบเส้นทางมูลฐาน (Basis Path Testing) • Exercise All Logical Decision on T/F Branches คือ กำรทดสอบทุกข้อควำมสัง่ ใน โปรแกรม • Exercise All Logical Decision on T/F Branches คือ กำรทดสอบกำรตัดสินใจทำง ตรรกะ ทุกกำรตัดสินใจ ทั้งค่ำจริงและค่ำเท็จ • Exercise All Independent Paths คือ กำรทดสอบทุกเส้นทำง จะต้องทำงำนได้อย่ำง ถูกต้องสมบูรณ์หรือเมื่อนำข้อมูลเข้ำสูโ่ ปรแกรม ต้องมีอย่ำงน้อย 1 เส้นทำงที่ถูกเรียกใช้ งำน • Exercise Loop Boundaries คือ กำรทดสอบกำรทำงำนของกำรวนซ้ำตำมจำนวน รอบของกำรวนซ้ำ • Exercise Data Structures คือ กำรทดสอบโครงสร้ำงข้อมูลภำยในให้ถูกต้องก่อนส่งไป ประมวลผลที่หน่วยอืน่


การทดสอบแบบสุ่ม (Random Testing) กำรทดสอบระบบที่ต้องกำรเครื่องมือ เพื่อก่อให้เกิดข้อมูลขนำดใหญ่ ของข้อมูลนำเข้ำ ข้อเสีย ไม่รับประกันว่ำข้อมูลนำเข้ำที่นำมำทดสอบจะครอบคลุมทุก กรณีที่อยู่ในโปรแกรม


การทดสอบแบบกล่องดา (Black-Box Testing / Functional Testing)/Behavioral Testing

กำรทดสอบฟังก์ชันต่ำง ๆ โดยไม่คำนึงถึงข้อควำมสั่งของโปรแกรม โดยกรณี ทดสอบจะถูกนำมำจำกข้อกำหนดของกระบวนกำร หรือ ควำมต้องกำรของผู้ใช้ จะ ทดสอบโดยดูค่ำของข้อมูลส่งออกจำกข้อมูลนำเข้ำที่ให้กับโปรแกรมต้องมีควำม สอดคล้องกัน Inputs

Outputs


การทดสอบระดับการรวมหน่วย กำรทดสอบมอดูลแบบเพิ่มทีละมอดูล หรือเป็นกำรต่อประสำนระหว่ำง Driver Module มอดูลหนึ่งไปอีกมอดูลหนึ่ง A

B

C

D

E

F

G

H

I

J

L

K

M Stub Module


การทดสอบระบบ นำโปรแกรมหรือซอฟต์แวร์จำกสภำพแวดล้อมนักพัฒนำซอฟต์แวร์มำเข้ำสู่กำรทดสอบ ระบบในสภำพแวดล้อมจริง เพื่อดูว่ำ สำมำรถทำงำนได้ตำมวัตถุประสงค์หรือไม่ แบ่งเป็น 8 ประเภท • กำรทดสอบแบบอัลฟำ ( Alpha Testing) • กำรทดสอบแบบเบต้ำ (Beta Testing) • กำรทดสอบกำรยอมรับ (Acceptance Testing) • กำรทดสอบประสิทธิภำพ (Performance Testing) • กำรทดสอบควำมมั่นคง (Security Testing) • กำรทดสอบแรงตึงเครียด (Stress Testing) • กำรทดสอบกำรกู้คืน (Recovery Testing) • กำรทดสอบกำรถดถอย (Regression Testing)


Review / Inspection / Walkthrough เป็นกระบวนกำรสำคัญของวัฏจักรชีวิตของกำรพัฒนำซอฟต์แวร์ ซึ่งเป็น กระบวนที่ใช้ในกำรติดตำมควำมก้ำวหน้ำในกำรพัฒนำซอฟต์แวร์ ซึ่งผู้รับประกัน คุณภำพซอฟต์แวร์ (Software Quality Assurance: SQA) มีหน้ำที่ทบทวนกิจกรรม ในแต่ละกระบวนกำรที่ทำ มีกำรทดสอบแบบมอดูลหรือระดับหน่วย ทดสอบระดับ กำรรวมหน่วย และทดสอบระบบ เพื่อตรวจสอบกำรทำงำนของซอฟต์แวร์ รวมถึง รำยงำนผลกระทบจำกกำรทำงำนในแต่ละกระบวนกำรว่ำสำมำรถทำตำมมำตรฐำนที่ กำหนดไว้หรือไม่


การแก้จุดบกพร่อง (Debug) หำกพบจุดบกพร่อง นักเขียนโปรแกรมต้องรีบแก้ไขจุดบกพร่อง โดยทันที เพื่อลดค่ำใช้จ่ำย ในกำรบำรุงรักษำซอฟต์แวร์ หลังส่งมอบซอฟต์แวร์ให้ลูกค้ำหรือผู้ใช้ ระดับควำมเสียหำยแบ่งเป็น 10 ระดับ Damage Infectious Catastrophic

Serious Mild

Annoying

Extreme

Disturbing

Bug Type


การติดตั้งระบบ • • • •

กำรปรับเปลี่ยนระบบ จำกระบบเก่ำมำระบบงำนใหม่ กำรจัดทำเอกสำรประกอบกำรใช้งำนระบบ กำรฝึกอบรมผู้ใช้ กำรบำรุงรักษำซอฟต์แวร์



คาถามท้ายบท • อธิบำยระดับของกำรทดสอบซอฟต์แวร์ • ควำมแตกต่ำงระหว่ำงกำรทดสอบแบบกล่องขำวและกล่องดำ มีอะไรบ้ำง • ควำมแตกต่ำงระหว่ำงกำรทดสอบแบบอัลฟำและกำรทดสอบแบบเบต้ำ มี อะไรบ้ำง • อธิบำยระดับควำมเสียหำยที่เกิดจำกจุดบกพร่อง พร้อมยกตัวอย่ำง • กำรบำรุงรักษำซอฟต์แวร์คืออะไร และมีควำมสำคัญอย่ำงไร


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.