บทที่ 9 การทดสอบซอฟต์แวร์ (software testing) ·...

72
บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) วิชา วิศวกรรมซอฟต์แวร์ (04-06-306) เอกสารประกอบการสอน วิชา วิศวกรรมซอฟต์แวร์ (04-06-306) 1

Upload: others

Post on 26-Mar-2020

10 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

บทท 9 การทดสอบซอฟตแวร (Software testing)

วชา วศวกรรมซอฟตแวร (04-06-306)

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306) 1

Page 2: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

วตถประสงคการเรยนร

• เพอใหผเรยนมความรความเขาใจเกยวกบกระบวนการในการทดสอบซอฟตแวร

• เพอใหผเรยนสามารถน าเครองมอส าหรบการทดสอบซอฟตแวร ในการทดสอบซอฟตแวรเบองตนได

2 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 3: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

หวขอ

• บทน า (Overview)

• การทดสอบซอฟตแวร

– ระดบการทดสอบ

– แนวทางทดสอบ

– วธการทดสอบ

• เครองมอการทดสอบซอฟตแวร

• สรป (Summary)

3 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 4: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

บทน า (Overview)

เขยนโปรแกรม

• Unit • Migrate • System

ระดบทดสอบ • คนหาขอผดพลาด

ปองกน และแกไข • ประเมนผลการท างาน

ของซอฟตแวร

วตถประสงค

4 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 5: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การทดสอบซอฟตแวร (Software Testing)

• กจกรรมทจดท าขนเพอประเมนและปรบปรงคณภาพของซอฟตแวร

– ตรวจหาขอผดพลาดและปญหา

– แกไขขอผดพลาดหรอปญหาดงกลาวใหถกตอง

• วตถประสงคของการทดสอบซอฟตแวร

– เพอพสจนวาซอฟตแวรท างานไดครบทกฟงกชนตามขอก าหนดความตองการ

– เพอตรวจสอบในแตละฟงกชนสามารถประมวลผลไดถกตอง

5 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 6: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

V & V Technique

• การทดสอบซอฟตแวร เปนหนงในหลายกจกรรมของการประกนคณภาพของซอฟตแวร (Quality Assurance)

• V & V Technique – การทวนสอบ (Verification)

• การตรวจสอบวา ระบบท างานตามขอก าหนดทกฟงกชนหรอไม

– การตรวจรบ (Validation) • การตรวจสอบวา ระบบสามารถท างานตรงตามความตองการของผใช

หรอไม • การตรวจสอบวาระบบทพฒนาขนมานนถกตองหรอไม

6 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 7: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

V-Model

7

ทมา: Rod Stephens, Beginning Software Engineering, 2015. เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 8: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

ค าศพททควรทราบ

• Test Case / กรณทดสอบ, Test Plan / แผนการทดสอบ

• Error, Fault และ Failure คณลกษณะทไมพงประสงคของซอฟตแวร โดยมลกษณะดงน

– Error / การกระท าผด

– Fault / Defect / ความผดพลาดหรอขอบกพรอง • Bug

• Debugging

– Failure / ลมเหลว

8 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 9: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

ขอผดพลาด (Error)

• ขอผดพลาดทเกดขนในการพฒนาโปรแกรม – Syntax error

• Compile • Syntax Error

– Logical error • Execute • Logical Error

– Runtime error • Execute, no syntax error • Logical error เชน เกดจากตวหารเปนศนย เปนตน

9 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 10: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การแกไขขอบกพรอง (Debugging)

• กระบวนการแกไขขอบกพรองทปรากฏขนภายหลงการทดสอบโปรแกรม เรมตนดวยการน ากรณทดสอบมาทดลองประมวลผล เพอคนหาสาเหตของขอบกพรองทปรากฏในโปรแกรม โดยการเปรยบเทยบผลลพธจากการทดลองกบผลลพธทคาดหวง

• ถาผลลพธไมตรงกนแสดงวาพบสาเหตของขอบกพรอง จากนนผทดสอบจะคนหาจดทท าใหเกดขอบกพรอง และท าการแกไขเพอขจดขอบกพรองนนทง

• กรณทผลลพธของการเปรยบเทยบตรงกน ผทดสอบจะออกแบบกรณทดสอบใหม จนกระทงพบขอบกพรองในโปรแกรม

10 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 11: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การแกไขขอบกพรอง (Debugging) (ตอ)

• สามารถจ าแนกแนวทางการ Debugging เปน 3 กลม ดงน – Brute force เปนวธธรรมดาไมมประสทธภาพในการแยกเหตการณ

ของการเกดขอผดพลาดในโปรแกรม – Backtracking เหมาะส าหรบโปรแกรมขนาดเลก โดยเรมแกะรอยการ

ประมวลผลของโปรแกรม ตงแตต าแหนงทไมเกดอาการ จนพบจดของการเกดขอผดพลาดในโปรแกรม

– Cause elimination น าขอมลทท าใหเกดขอผดพลาดมาแบงเปนสวนๆ เพอท าการทดสอบ โดยตงสมมตฐานจากเหตการณทท าใหเกดขอผดพลาด และน าตวอยางขอมลมาทดสอบ เพอตดเสนทางทไมเกยวของทง

11 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 12: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

แนวทางการทดสอบซอฟตแวร

• ทดสอบตามรอบการสรางซอฟตแวร

– Single Module > Incremental Test Approach

• ขนตอนการทดสอบซอฟตแวรในแตละระดบ มดงน

12

Test Case Design

Prepare Test Data

Software Testing

Comparison Test Result

Test Report

A

B

C

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 13: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

กลวธการทดสอบซอฟตแวร

• วธการออกแบบกรณทดสอบ (Test case) และการวางแผนทดสอบ (Test Plan) • เพอใหไดชดของขนตอนตามทปฏบต เปนการยนยนวาการสรางซอฟตแวร

ประสบผลส าเรจ

• กลยทธใด ๆ ตองม • แผนการทดสอบ การออกแบบกรณทดสอบ การลงมอทดสอบ และการ

รวบรวมและประเมนผลขอมลผลลพธ

13

การหาความผดพลาดใหพบ กรณทดสอบทดควรมความเปนไดสงทจะหาขอผดพลาดพบ

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 14: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

กรณทดสอบ (Test Case)

• สถานการณตาง ๆ ทระบบ/โปรแกรมตองตอบสนอง

– ครอบคลมตงแตสถานการณเรมตน สถานการณตาง ๆ ทมผลตอการด าเนนการของโปรแกรม และผลลพธทคาดหวง

• การออกแบบกรณทดสอบ (Test Case Design)

– การออกแบบกรณทดสอบตาง ๆ ส าหรบการทดสอบโปรแกรม

– มความส าคญเชนเดยวกบการออกแบบโปรแกรม

– ตองจดท าขนเพอใหไดขอผดพลาดมากทสด/เลวรายทสด

14

การออกแบบกรณทดสอบตาง ๆ ตองครอบคลมทกลกษณะ ของโปรแกรม

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 15: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

ระดบการทดสอบซอฟตแวร

• การทดสอบสามารถจ าแนกออกเปน 3 ระดบ ดงน

– การทดสอบระดบหนวย (Unit Testing) • Module Testing หรอ Component Testing

– การทดสอบระดบรวมหนวย (Integration Testing)

– การทดสอบระบบ (System Testing) • Devices, People และ Data

15 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 16: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

ระดบการทดสอบซอฟตแวร (ตอ)

Unit Testing

• Black box

• White box

Integration Testing

• Top Down

• Bottom Up

• Regression

• Validation

System Testing

• Alpha

• Beta

• Performance

• Recovery

• Stress

• Security

16

A B C

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 17: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การออกแบบกรณทดสอบทด

17

• มความนาจะเปนสงในการหาความผดพลาดพบ A good test has a high

probability of finding an error

• ไมซ าซอน A good test is not redundant.

• ควรเปนตวทคดมาดทสด A good test should be “best of breed”

• ไมธรรมดาเกนไปหรอซบซอนเกนไป A good test should be neither too simple nor

too complex

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 18: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

เทคนคการทดสอบโปรแกรม

• การทดสอบโปรแกรมแบงออกเปน 2 กลม ดงน

– Manual Testing • การทดสอบโดยไมใชเครองคอมพวเตอร

– Automated Testing • การทดสอบดวยเครองคอมพวเตอร

18 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 19: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Manual Testing

• การทดสอบโปรแกรมโดยการตรวจสอบของโปรแกรมเมอรเอง ไมมการใชเครองคอมพวเตอร แบงไดเปน 2 ชนด คอ – Inspection

• โปรแกรมเมอรตรวจสอบเอง • เปรยบเทยบ Code ของโปรแกรมทเขยนขนกบรายการ Error ท

ทราบแลว • ทดสอบความผดพลาดของ Code เทานน • ปองกนขอผดพลาดรปแบบเดมไมใหเกดซ าอก • ไมท าใหทราบวามผลลพธถกตองหรอไม

19 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 20: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Manual Testing (ตอ)

– Desk Checking

• การตรวจสอบโคดของโปรแกรมตามล าดบค าสง ตรรกะผดพลาดหรอไม ด าเนนการโดยผทไดรบการแตงตงใหเปนผทดสอบ

• วธการนไมเหมาะส าหรบงานทความซบซอนสง / เสยเวลามากในการทดสอบ

20 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 21: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Automated Testing

• การทดสอบแบบอตโนมตแบงไดเปน 5 ชนด ดงน

– Syntax checking

– Unit testing / Module Testing

– Integration testing

– Stub testing

– System testing

21 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 22: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Syntax Checking

• ตรวจสอบไวยากรณทเขยนขนโดยใช Compiler

• ใชเวลาไมนาน

• ไมสามารถตรวจสอบผลลพธได

22 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 23: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing

• การทดสอบระดบหนวย หรอเรยกวา Module Testing

• โปรแกรมเมอรทดสอบ Module ทตนเองรบผดชอบ

• คนหาขอผดพลาดในการท างานแตละโมดลม 2 รปแบบ ดงน

– Black Box Testing

– White Box Testing

23 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 24: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing

• เปนการทดสอบโดยไมค านงถงค าสงภายในโปรแกรม

• เปนการทดสอบ Function ของโปรแกรมตาม Requirements

• เปนการทดสอบโดยพจารณาคา Output จาก Input ทใหกบโปรแกรมตองมความสอดคลองกน

• สนใจเฉพาะระบบม Function การท างานอยางไร และ Output ไดอะไร

24 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 25: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing (ตอ)

• การก าหนดขอมลในการทดสอบ ไดแก

– คาตวแทนของกลม

– คาสงสด

– คาต าสด

– คาเกนพกด

– คาทผดวสย

25 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 26: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing (ตอ)

• ส าหรบ Technique ตาง ๆ ทใชในการทดสอบแบบ Black box testing นนมหลายวธ ยกตวอยางทนยม ดงน

– Equivalence partitioning • ก าหนดคาตวแทน ของกลมขอมลขนมา 1 คา

• น าคาทก าหนดมาใชในการทดสอบ

26 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 27: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing (ตอ)

• ตวอยาง ระบบธนาคารสามารถใหโอนเงนผาน ATM ขนต าคอ 100 และสงสดคอ 500 บาท

– การทดสอบจะตองก าหนดตวแทนของกลมของขอมลทจะตองน ามาทดสอบ ดงน

• กรณโอนเงน (A) บาท (เปนตวแทนของกลมท < 100 )

• กรณโอนเงน (B) บาท (เปนตวแทนของกลมทอยระหวาง 100 - 500 )

• กรณโอนเงน (C) บาท (เปนตวแทนของกลมท > 500 )

27

** เพราะฉะนนจะไดชดของขอมลมาสามชด และได data มาทดสอบ 3 คาเทานน **

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 28: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing (ตอ)

– Boundary value analysis • เปนวธการทดสอบโดยก าหนดขอบเขตของขอมลขนมา เพอจะได

คา input data ทครอบคลม

• การทดสอบจะตองก าหนดขอบเขตของขอมลทจะตองน ามาทดสอบ

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

28

ตวอยาง กรณโอนเงน 99 บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท กรณโอนเงน ..…. บาท

Page 29: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing (ตอ)

• ตวอยาง หนาจอการรบคาขอมล User และ Password โดยลกคาระบความตองการโดย User ตองเปนชอภาษาองกฤษไมต ากวา 5 แตไมเกน 8 ตวอกษร และ Password เชนเดยวกน ควรจะมการทดสอบอยางไรเพอท าใหไมเกดขอผดพลาดกบระบบ

29

Log in

User:

Password:

Submit Clear

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 30: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing (ตอ)

• การออกแบบกรณทดสอบ (Test Case)

• Input: –User และ Password

• Condition: – 5<= ความยาวขอมล User <=8 – 5<= ความยาวขอมล Password

<=8 • Output:

– Pass, Fail

30 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 31: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: Black Box Testing (ตอ)

31

Test ID User Password Expected

Result Actual Results

Accepted Results

1 admin nimda Pass Pass Pass

2 guest gpass

3 sutharat paa

4 nattaphon oatchad

5 aumaum apass

6 chinathip mmuay

Test case

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 32: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing

• การทดสอบเพอดโครงสรางของโปรแกรม หรอทางเดนในโปรแกรม

• สรางชดทดสอบเฉพาะส าหรบทดสอบในเงอนไขตาง ๆ โดยชดทดสอบจะตองประกอบดวยชดทสามารถประมวลผลอยางปรกตและไมปรกต

• ตองมความรเรองของระบบวามการออกแบบอยางไร ท างานอยางไร

• ตองมความรในเรองของ Programming Language

32 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 33: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• Basis Path Testing – เปนแนวคดทชวยในการท า White-box ใหงายขน – เปลยน Flowchart ใหเปน Graph ทประกอบดวย Vertices และ Edge – เพอทดสอบความสลบซบซอนทางตรรกะ โดยจะทดสอบทก ๆ

"Execution path" การออกแบบกรณทดสอบจะท าการทดสอบ "Basic set" ทใช "Execute logical path" ดงน

• Sequence logical path • If logical path • Loop logical path

33 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 34: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• การทดสอบแบบ Basis Path Testing ตองรจ านวนเสนทางความซบซอนของปญหา (Cyclomatic Complexity หรอแทนดวยกราฟ V(G)) โดย V(G) สามารถหาไดจาก 3 วธ ดงน

• วธท 1 – V(G) = จ านวนของพนทแบบปด (enclosed area) ของผงงานโปรแกรม + 1

• วธท 2 – V(G) = จ านวนของสญลกษณตดสนใจในผงงานโปรแกรม (simple

decisions) +1 • วธท 3

– V(G) = Edge (จ านวนเสนเชอมระหวาง Node) – Node (จ านวน Node ภายในกราฟ) + 2

34 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 35: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• วธท 1

– ……………………………………………………..

• วธท 2

– ……………………………………………………..

• วธท 3

– ……………………………………………………..

35

Flow Chart

Flow Graph

1

2

3

4

5

6

7

1, 2 4, 5

3 7

6

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 36: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• Independent Process Path

– เสนทางการประมวลผลอสระ (Independent process path) เปนเสนทางใด ๆ ผานโปรแกรมทมประโยคค าสงหรอประโยคทดสอบเงอนไขอยางนอย 1 ประโยค

– จ านวนเสนทางทแยกเปนอสระไดจากคา V(G)

36 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 37: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• ตวอยาง สรางกรณทดสอบ (test case) ทจะน ามาทดสอบในแตละ path เลอกขอมลใหมคาเหมาะสมในการทดสอบแตละเสนทาง เมอก าหนดกรณทดสอบใหกบทก path แลวใหท าการทดสอบแตละ path และเปรยบเทยบผลลพธทได กบ ผลลพธทคาดหวง (Expected results)

37 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 38: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

38

จงหาจ านวน Path V(G) = Edge – Node + 2 V(G) = 9 – 9 + 2 = 2 (Ans)

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 39: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

Test ID x y Expected Results (Z)

1 2

39

Path 1: ………………….

Path 2: …………………. Create Test Case

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 40: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

40

PROCEDURE average: i =1; t_input =t_valid =0; sum =0; DO WHILE value[i] <>-999 AND t_input <100 increment t_input by 1; IF value[i] >= minimum AND value[i]<=maximum THEN increment t_value by 1; sum = sum + value[i]; ELSE skip ENDIF increment i by 1; ENDDO IF t_valid >0 THEN average = sum / t_valid; ELSE average = -999; ENDIF END average

1 2

6

10

13

12 11

9

3

4

8

7

5

• ก าหนดใหหาโหนดจากโปรแกรมทดสอบ

• วธท 1 ....................................... • วธท 2 ....................................... • วธท 3 .......................................

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 41: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

41

• พจารณาเสนทางทแยกเปนอสระ (Independent path) • จ านวนเสนทางทแยกเปนอสระ = ….6 เสนทาง • แตละเสนทางมรายละเอยดดงน

path 1: 1-2-10-11-13 path 2: 1-2-10-12-13

path 3: 1-2-3-10-11-13 path 4: 1-2-3-4-5-8-9-2-… path 5: 1-2-3-4-5-6-8-9-2-… path 6: 1-2-3-4-5-6-7-8-9-2-…

1

2

3

4

5

6

7

8 9

10

11 12

13

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 42: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• Loop Testing

– เปนเทคนคในการทดสอบแบบ White-Box โดยมงประเดนไปทความถกตองของโครงสรางของการวนซ าหรอลป (Loop constructs) มกลมของลปทแตกตางกนจ าแนกเปน 4 แบบ ไดแก • Simple Loops

• Nested Loops

• Concatenated Loops

• Unstructured Loops

42 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 43: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

43

Simple loops Nested loops Concatenated loops

Unstructured loops เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 44: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• ชดทดสอบลปอยางงาย เมอ n เปนจ านวนรอบสงสดทอนญาตใหผานลป

– ท างานขามลปไปเลย

– ท างานผานลปเพยงหนงรอบ

– ท างานผานลป 2 สอง

– ท างานผานลป m รอบ เมอ m < n

– ท างานผานลป n-1, n, n+1 รอบ

44 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 45: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Unit Testing: White Box Testing (ตอ)

• ในการทดสอบแบบลปซอนลป จะท าใหการทดสอบเพมขนเปนตามจ านวนชนของลปทซอน

• ขอแนะน าในการทดสอบ ดงน

– เรมทดสอบจากลปในสดกอน โดยตงคาลปอนๆ ใหมคานอยทสด

– ท าการทดสอบจากลปในไปลปนอกทละชน

– ท าตอไปจนกวาทก ๆ ลปไดทดสอบหมด

45 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 46: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Integration Testing

• เพอตรวจสอบความถกตองของ Function การท างานตางๆ เมอมการ Integrate unit / module เขารวมกน

• ทดสอบการท างานรบสงขอมลกนระหวางโมดลอาศย structure chart ม 2 รปแบบ ดงน – แบบบนลงลาง (Top-down Approach)

– แบบลางขนบน (Bottom-up Approach)

46 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 47: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Integration Testing: Top-down Approach

47

Module A

Module B Module C Module D

Module E Module F

………..

………..

………..

• เปนการทดสอบโปรแกรมโดยทดสอบโมดลจากบนลงลาง

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 48: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Integration Testing: Bottom-up Approach

48

Module A

Module B Module C Module D

Module E Module F

• เปนการทดสอบโปรแกรมโดยทดสอบโมดลลางขนบน

………..

………..

………..

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 49: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Stub Testing

• การทดสอบแบบเพมโมดล (Integration Testing) คอย ๆ เพมโมดลเขามาทดสอบตามล าดบ – กรณทเพมจากบนลงลาง คอ เรมทดสอบจาก Module A กอน แลวคอยเพม

Module B,C และ D ตามล าดบกอนเพม Module E,F แตความจรง Module B ตองเรยกใชขอมลจาก Module E,F ทอยในระดบลางซงยงไมถงรอบการทดสอบ

– ปญหาคอ อาจไมเหนผลลพธ – ดงนนจงตองสราง Stub Testing เปนตวแทน Module E,F เพอทดสอบ

ชวคราว • Driver คอ โมดลทดสอบโมดลหลก • Stub คอ กลมค าสงสนๆ ทเขยนขนมาเพอเปนโมดลตวแทนในการทดสอบโปรแกรม

49 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 50: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

System Testing

• คลายการทดสอบแบบ Integration แตจะตางกนตรงทจะทดสอบโปรแกรมหนง และเพมเรอยๆ จะครบทกโปรแกรมของระบบงาน

• เปนการตรวจสอบการท างานทงระบบ วาโปรแกรมทกโปรแกรมเมอท างานรวมกนแลวจะใหผลลพธทถกตองแลวหรอไม

• วตถประสงค

– เพอตรวจสอบระบบวาระบบท างานไดถกตองและไดผลลพธตรงตาม Requirement

50 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 51: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

กลยทธในการทดสอบประสทธภาพของระบบ

• Peak Load Testing

• Performance Testing

• Recovery Testing

• Storage Testing

• Procedure Testing

• User Testing

51 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 52: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การทดสอบการท างานสงสด (Peak Load Testing)

• เปนการทดสอบประสทธภาพในการประมวลผลของระบบ เมอมการท ารายการมากทสด ณ ชวงเวลาใดเวลาหนง

• เพอทดสอบวาระบบรองรบการท ารายการค าสงมากทสด และนานเทาไหร เมอตองประมวลผลจ านวนรายการค าสงมากทสดดงกลาวในชวงเวลาหนง

52 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 53: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การทดสอบประสทธภาพของเวลา (Performance Testing)

• เปนการทดสอบระบบเพอพจารณาถงชวงเวลาทใชในการประมวลผลรายการ วาใชระยะเวลานานเพยงใดในการท ารายการ

– การประมวลผลแบบกลม (Batch Processing)

– การประมวลผลแบบออนไลน (On-line Processing)

53 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 54: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

กลยทธในการทดสอบประสทธภาพของระบบ (ตอ)

• การทดสอบการกระบบ ( Recovery Testing) เปนการทดสอบความสามารถในการกระบบกรณทระบบลม รวมถงความสามารถในการกขอมลดวย

• การทดสอบการเกบขอมล (Storage Testing) เปนการทดสอบวา เกบขอมลไดสงสดเปนจ านวนเทาใด เพอจะไดเตรยมการรองรบจ านวนขอมลทอาจเพมมากขนในอนาคต

• การทดสอบกระบวนการ (Procedure Testing) เปนการทดสอบการจดท าคมอการด าเนนงานของระบบ และคมอการใชงานวาสามารถสรางความเขาใจใหกบผใชหรอไม และสามารถใชเมอเกดปญหาหรอไม

• การทดสอบผใช (User Testing) เปนการทดสอบการใชงานจรงของระบบเพอตองการทราบวาปญหาในการใชระบบเปนอยางไรบาง

54 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 55: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การทดสอบการยอมรบโดยผใช

• หลงจากทไดทดสอบความสมบรณและความถกตองของโปรแกรมเรยบรอยแลว

• มความส าคญไมนอยไปกวาการทดสอบโปรแกรม*

• วธการทดสอบการยอมรบของระบบสามารถแบงออกเปน 2 ประเภท ดงน

– Alpha Testing

– Beta Testing

55 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 56: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การทดสอบการยอมรบโดยผใช: Alpha Testing

• การทดสอบความสมบรณของระบบ โดยผใชทดสอบรวมกบ Tester/QA เปนคนแนะน า

• ผใชจะทดสอบระบบขณะยงไมไดตดตงในสถานทจรง โดยทดสอบภายในสถานการณจ าลองทก าหนดขนโดยทมงานพฒนาระบบ ทมงานจะบนทกขอผดพลาดและท าการแกไข

• ท าใหรวาระบบมขอผดพลาดอะไรเกดขนบาง

56 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 57: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การทดสอบการยอมรบโดยผใช: Alpha Testing (ตอ)

• Alpha testing มการทดสอบ 4 ประการ ดงน

– Recovery Testing เปนการทดสอบการกระบบ

– Security Testing เปนการทดสอบความปลอดภยของระบบ

– Stress Testing เปนการทดสอบประสทธภาพการท างานของระบบภายใตความกดดน

– Performance Testing เปนการทดสอบประสทธภาพการท างานของระบบภายใตสภาพแวดลอมของคอมพวเตอร

57 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 58: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Alpha Testing: Recovery Testing

• การทดสอบการกคน (Recovery Testing)

– ความสามารถในการกคนเมอระบบเกดความลมเหลว

– Fault Tolerance ระบบตองท างานตอไดและตองทนตอความผดพลาด

– การทดสอบ ท าใหระบบลมเหลวในสถานการณตางๆ แลวดการกคนของขอมล

58 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 59: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Alpha Testing: Security Testing

• การทดสอบการรกษาความปลอดภย (Security Testing)

– มเครองมอในการรกษาความปลอดภยของระบบเปนทนาพอใจหรอไม

– การรกษาความปลอดภยอยางงายได แก การใชวธการใหสทธและการควบคมสทธ

– การเขารหสขอมล

59 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 60: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Alpha Testing: Stress Testing

• การทดสอบแรงตรงเครยด (Stress Testing)

– เปนการทดสอบในสถานการณทไมเปนปรกต เพอดความทนทานในระบบ

– แรงตรงเครยดของระบบอาจจะเกดจากการน าเขาขอมลทมากเกนไป การประมวลผลทบอยเกนไป

– Sensitivity Testing

60 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 61: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Alpha Testing: Performance Testing

• การทดสอบสมรรถนะ (Performance Testing)

• เปนการวดสมรรถนะของระบบวาอยในระดบทยอมรบได

• ระยะเวลาในการตอบสนองของงาน

• การจดสรรพนทหนวยความจ า

• การสราง Log File เพอเปนการจดบนทกเพอวดสมรรถนะการท างานของระบบในแตละชวงเวลา

61 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 62: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การทดสอบการยอมรบโดยผใช: Beta Testing

• การทดสอบความสมบรณของระบบโดยผใช และใชขอมลจรงในการทดสอบและภายใตสถานการณทเกดขนจรง โดยไมมทมงานไปเฝาสงเกต – ตองมคนคอยจดบนทกขอผดพลาดใหกบทมงาน

• การทดสอบประเภทนถอวาเปนการซอมตดตงระบบเพอใชงานจรง – เปนการทดสอบระบบอยางสมจรงไมวาจะเปน สถานการณ ขอมล

ขนตอนการด าเนนงานเอกสารคมอ การฝกอบรม การสนบสนนการท างาน

– แกปญหาทเกดขนระหวาง Alpha Testing

62 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 63: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การวางแผนการทดสอบระบบ (Test Planning)

• การก าหนดมาตรฐานของกระบวนการในการทดสอบ – ครอบคลม Errors – Minimum Cost

• ก าหนดขอตกลงเบองตนและรายละเอยดของระบบ • เตรยมแผนงานการทดสอบเพอการยอมรบระบบ • น าขอมลการออกแบบมาใชในการวางแผนการทดสอบความสมพนธ

ของระบบรวม • ก าหนดแผนการทดสอบความสมพนธของระบบยอย

63 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 64: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

การวางแผนการทดสอบระบบ

• การวางแผนการทดสอบระบบ ประกอบดวยรายละเอยด ดงน – Scope of Testing – Test Plan

• Objective • Reference • Summary

– Test Procedure – Actual Test Result

64 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 65: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

แผนการทดสอบ (Test Plan)

• ชดเอกสารทประกอบไปดวยชดขอมลน าเขา/ผลลพธ ของแตละเสนทางการท างานของทกโปรแกรม

– ชดขอมลจดเรยงไวตามล าดบเสนทาง และชนดของการทดสอบ

65

Test ID Test Name 1 2 … n

Planned Date ID Tester Completed Successful

Project Name : Project ID :

Project Manager : QA Manager :

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 66: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

วธการประเมนผลการท างานของระบบ

• การใชแบบสอบถาม

• การบนทกเทป/วดโอการท างานของผใช

• การสรางสวนพเศษภายในระบบ ใหสามารถบนทกขอมลเกยวกบการท างานของผใช

• การสรางระบบใหผใชสามารถบนทกความคดเหนของตนขณะก าลงใชงานระบบนน ๆ

66 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 67: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

Who Test Software ?

67 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Developer

Independent Tester

Customer

Page 68: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

เครองมอการทดสอบซอฟตแวร

• ในการทดสอบซอฟตแวรทมงานสามารถใชงานเครองมอชวยทดสอบ เพอวตถประสงคทแตกตางกน ดงน

– Code Analysis Tools

– Test Execution Tools

– Test Case Generators

68 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 69: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

69

เพมเตม: http://www.seleniumhq.org/ https://en.wikipedia.org/wiki/List_of_GUI_testing_tools

Example: Software testing framework for web applications

เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 70: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

สรป (Summary)

• การทดสอบซอฟตแวร (Software Testing) – เปนกจกรรมในการประเมนและปรบปรงคณภาพของซอฟตแวรดวยกลไก

ตางๆ ในการตรวจหาขอผดพลาดทเกดขนแลวแกไขใหถกตอง – พสจนทราบซอฟตแวรท างานไดครบทกฟงกชนไดตามขอก าหนดความ

ตองการ – ตองคนหาขอผดพลาดใหไดมากทสด

• สามารถแบงระดบการทดสอบเปน 3 ระดบ ดงน ระดบหนวย (Unit Testing) ระดบรวมหนวย (Integration Testing) และการทดสอบระบบ (System Testing)

70 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 71: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

กจกรรมทายบท

• การทดสอบซอฟตแวรมความส าคญ และมวตถประสงคอยางไร • จงบอกนยามของค าศพท ดงน Verification, Validation, Error, Fault,

Failure, Test Case, Test Data, Test Resulted, Test Plan, Driver และ Stub

• ระดบการทดสอบแบงออกเปนกระดบ ประกอบดวยอะไรบาง • จงบอกความแตกตางระหวางการทดสอบแบบ White Box Testing และ

Black Box Testing • จากตวอยางโปรแกรมทตองทดสอบ (หนา 40-41) ก าหนดใหสราง Flow

Chart และ Flow Graph เพอหาเสนทางการทดสอบและสรางกรณทดสอบ

71 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)

Page 72: บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing) · บทที่ 9 การทดสอบซอฟต์แวร์ (Software testing)

เอกสารอางอง

• กตต ภกดวฒนะกล, วศวกรรมซอฟตแวร (Software Engineering), กรงเทพฯ: เคทพ คอมพ แอนด คอนซลท, 2552

• Lan Sommerville, Software Engineering Ninth Edition, Pearson Education, Inc., publishing as Addison-Wesley, 2011.

• Rod Stephens, Beginning Software Engineering, John Wiley & Sons, Inc., Indianapolis, Indiana, 2015.

72 เอกสารประกอบการสอน วชา วศวกรรมซอฟตแวร (04-06-306)