a thesis submitted in partial fulfillment of the ... · 2.1.2...

106
การสรางกรณีทดสอบโดยใชขั้นตอนวิธีเชิงพันธุกรรม Test Case Generation Using Genetic Algorithms นันทนี ชวยชู Nuntanee Chuaychoo วิทยานิพนธนี้เปนสวนหนึ่งของการศึกษาตามหลักสูตรปริญญา วิทยาศาสตรมหาบัณฑิต สาขาวิชาการจัดการเทคโนโลยีสารสนเทศ มหาวิทยาลัยสงขลานครินทร A Thesis Submitted in Partial Fulfillment of the Requirements for the Degree of Master of Science in Management of Information Technology Prince of Songkla University 2558 ลิขสิทธิ์ของมหาวิทยาลัยสงขลานครินทร

Upload: others

Post on 28-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม

Test Case Generation Using Genetic Algorithms

นนทน ชวยช

Nuntanee Chuaychoo

วทยานพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญา

วทยาศาสตรมหาบณฑต สาขาวชาการจดการเทคโนโลยสารสนเทศ

มหาวทยาลยสงขลานครนทร

A Thesis Submitted in Partial Fulfillment of the Requirements for the

Degree of Master of Science in Management of Information Technology

Prince of Songkla University

2558

ลขสทธของมหาวทยาลยสงขลานครนทร

Page 2: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(1)

การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม

Test Case Generation Using Genetic Algorithms

นนทน ชวยช

Nuntanee Chuaychoo

วทยานพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญา

วทยาศาสตรมหาบณฑต สาขาวชาการจดการเทคโนโลยสารสนเทศ

มหาวทยาลยสงขลานครนทร

A Thesis Submitted in Partial Fulfillment of the Requirements for the

Degree of Master of Science in Management of Information Technology

Prince of Songkla University

2558

ลขสทธของมหาวทยาลยสงขลานครนทร

Page 3: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(2)

ชอวทยานพนธ การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม

ผเขยน นางสาวนนทน ชวยช

สาขาวชา การจดการเทคโนโลยสารสนเทศ

บณฑตวทยาลย มหาวทยาลยสงขลานครนทร อนมตใหนบวทยานพนธฉบบน

เปนสวนหนงของการศกษา ตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาการจดการ

เทคโนโลยสารสนเทศ

.…….……………………………..…….………….

(รองศาสตราจารย ดร.ธระพล ศรชนะ)

คณบดบณฑตวทยาลย

อาจารยทปรกษาวทยานพนธหลก

………………………………………………...........................

(ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต)

คณะกรรมการสอบ

………………………………………...ประธานกรรมการ

(ผชวยศาสตราจารย ดร.วชรวล ตงคปตานนท)

…………………………................................กรรมการ

(ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต)

…………………………................................กรรมการ

(ดร.ฐมาพร เพชรแกว)

Page 4: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(3)

ขอรบรองวา ผลงานวจยนมาจากการศกษาวจยของนกศกษาเอง และไดแสดงความขอบคณบคคลทมสวนชวยเหลอแลว ลงชอ…………………………………………………………. (ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต) อาจารยทปรกษาวทยานพนธ ลงชอ………………………………………………………… (นางสาวนนทน ชวยช) นกศกษา

Page 5: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(4)

ขาพเจาขอรบรองวา ผลงานวจยนไมเคยเปนสวนหนงในการอนมตปรญญาในระดบใดมากอน และไมไดถกใชในการยนขออนมตปรญญาในขณะน ลงชอ………………………………………………………… (นางสาวนนทน ชวยช) นกศกษา

Page 6: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(5)

ชอวทยานพนธ การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม ผเขยน นางสาวนนทน ชวยช สาขาวชา การจดการเทคโนโลยสารสนเทศ

ปการศกษา 2558

บทคดยอ

การทดสอบซอฟตแวร เปนขนตอนหนงทส าคญในกระบวนการผลตซอฟตแวร การ

ทดสอบชวยใหซอฟตแวรทพฒนามความนาเชอถอ และมความถกตองเพมมากขน การสรางกรณทดสอบเปนอกองคประกอบหนงทมความส าคญในกระบวนการทดสอบซอฟตแวร คณภาพของการทดสอบจะขนอยกบประสทธภาพของกรณทดสอบ วทยานพนธนน าเสนอวธการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม และมการสรางเครองมอส าหรบสรางกรณทดสอบตามวธการทไดน าเสนอโดยใชวชวลสตดโอดอทเนต โดยขนตอนการสรางกรณทดสอบทไดน าเสนอไปประยกตใชกบกรณศกษา และใชการประเมนประสทธภาพของกรณทดสอบโดยวธการทดสอบแบบกลายพนธ ผลลพธจากการทดสอบพบวา กรณทดสอบทสรางขนตามวธการทน าเสนอส าหรบกรณศกษา ใหคาคะแนนการกลายพนธคอนขางสง

Page 7: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(6)

Thesis Title Test case Generation Using Genetic Algorithm Author Miss Nuntanee Chuaychoo Major Program Management of Information Technology Academic Year 2015

Abstract

Software testing is an important step in the software development process. It makes the developed software more reliable and accurate. Generating test cases is a key component in the software testing process. The quality of testing depends on the test case effectiveness. This thesis proposes a method for generating test cases using genetic algorithms. A test case generation tool is developed with Visual Basic .NET for supporting our method. The proposed method was applied on case studies and mutation testing was used to evaluate the test case performance. The results show that the test cases generated by using the proposed method achieve relatively high mutation scores.

.

Page 8: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(7)

กตตกรรมประกาศ

วทยานพนธฉบบนส าเรจลลวงได ดวยความกรณาและอนเคราะหชวยเหลอเปนอยางดของ ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต อาจารยทปรกษาวทยานพนธ ซงทานไดใหค าแนะน าและขอคดเหนตาง ๆ อนเปนประโยชนอยางยงในการท าวจย อกทงยงชวยแกปญหาตาง ๆ ทเกดขนระหวางการด าเนนงานวจยอกดวย

ขอขอบพระคณคณะกรรมการสอบทกทาน ไดแก ผชวยศาสตราจารย ดร.วชรวล ตงคปตานนท ผชวยศาสตราจารย ดร.อ านาจ เปาะทอง และ ดร.ฐมาพร เพชรแกว ทกรณาใหค าปรกษาแนะน าและตรวจทานแกไขวทยานพนธใหสมบรณ

ขอขอบพระคณอาจารยในหลกสตรการจดการเทคโนโลยสารสนเทศทกทานส าหรบการใหความร ขอแนะน าและความชวยเหลอในทก ๆ ดานในการท าวจย

ขอขอบคณพๆ หนวยวจยนวตกรรมสารสนเทศ มหาวทยาลยวลยลกษณทกคนทคอยเปนก าลงใจ และใหความชวยเหลอในการท าวจย

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

นนทน ชวยช

Page 9: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(8)

สารบญ หนา บทคดยอ (5) ABSTRACT (6) กตตกรรมประกาศ (7) สารบญ (8) รายการตาราง (11) รายการภาพประกอบ (13) บทท 1 บทน า 1

1.1 ความส าคญและทมาของงานวจย 1 1.2 วตถประสงคของงานวจย 2 1.3 ขอบเขตของงานวจย 2 1.4 ระยะเวลาการด าเนนงานวจย 3 1.5 ประโยชนทคาดวาจะไดรบ 3

บทท 2 ทฤษฎและหลกการ 4 2.1 การทดสอบซอฟตแวร (Software Testing) 4

2.1.1 กระบวนการทดสอบซอฟตแวร 5 2.1.2 ระดบของการทดสอบซอฟแวร 7 2.1.3 การทดสอบแบบความครอบคลมรหสโปรแกรม (Code Coverage)

9

2.2 ขนตอนวธเชงพนธกรรม (Genetic Algorithm) 11 2.3 กราฟควบคมการไหล (Control Flow Graph) 16 2.4 Branch Distance Calculation 20 2.5 การทดสอบแบบกลายพนธ (Mutation Testing) 21 2.6 งานวจยทเกยวของ 24

2.6.1 งานวจยเรอง Application of Genetic Algorithm in Software Testing โดย Praveen Ranjan Srivastava และ Tai-hoon Kim

24

2.6.2 งานวจยเรอง Automatic Software Structural Testing by Using Evolutionary Algorithms for Test Data Generations โดย Maha Alzabidi , Ajay Kumar และ A.D. Shaligram

24

Page 10: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(9)

สารบญ (ตอ) หนา

2.6.3 งานวจยเรอง Testing Object-Oriented Code Through a Specifications-Based Mutation Engine โดย Pantelis Stylianos Yiasemis และ Andreas S. Andreou

25

บทท 3 วธการด าเนนการวจย 27 3.1 การวเคราะหและออกแบบขนตอนการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม

27

3.2 การสรางกราฟควบคมการไหลและระบเสนทางเปาหมาย(Generating Control Flow Graph and Specifying Target Paths)

28

3.3 การสรางกรณทดสอบ (Generating Test Cases) 29 บทท 4 ผลการด าเนนงานวจย 38

4.1 การออกแบบและพฒนาเครองมอตนแบบส าหรบสรางกรณทดสอบ 38 4.1.1 กรอบการท างานของเครองมอทพฒนา 38 4.1.2 การออกแบบสวนตดตอกบผใช 40

4.2 ผลการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมจากเครองมอทพฒนา

44

บทท 5 การประเมนประสทธภาพของกรณทดสอบ 49 บทท 6 บทสรปและขอเสนอแนะ 52

6.1 สรปผลการวจย 52 6.2 ขอเสนอแนะส าหรบการวจยในอนาคต 53

บรรณานกรม 54 ภาคผนวก 56

ภาคผนวก ก กรณศกษาการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม 57 1. กรณศกษา การสรางกรณทดสอบโปรแกรมค านวณคาสงสดและคา

ต าสด 57

2. กรณศกษา การสรางกรณทดสอบโปรแกรมค านวณหาประเภทของรปสามเหลยม

60

3. กรณศกษา การสรางกรณทดสอบโปรแกรมค านวณหาคากลางของขอมล

63

Page 11: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(10)

สารบญ (ตอ)

หนา 4. กรณศกษา การสรางกรณทดสอบโปรแกรมตรวจสอบขอความ

Palindrome 66

ภาคผนวก ข คมอการใชงานเครองมอการสรางกรณทดสอบ 70 ภาคผนวก ค รายงานผลงานตพมพ 76

ประวตผเขยน 90

Page 12: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(11)

รายการตาราง หนา ตารางท 2-1 ตวอยางกรณทดสอบส าหรบการทดสอบในระดบครอบคลมเงอนไขแบบ

หลายกรณ 10

ตารางท 2-2 Korel’s distance function 20 ตารางท 2-3 แสดงการค านวณคา Branch Distance ส าหรบกราฟควบคมการไหล

ในภาพท 2-17 21

ตารางท 2-4 Mutation Operators 23 ตารางท 3-1 กลมกรณทดสอบตนก าเนด ส าหรบการทดสอบโปรแกรมหาคาสงสด

และต าสด 31

ตารางท 3-2 Predicate Path ทตองพจารณาจากภาพท 3-7 33 ตารางท 3-3 ตวอยางการเรยงล าดบคา Branch Distance ใหมจากนอยไปมาก 35 ตารางท 3-4 แสดงการไขวเปลยนแบบจดเดยวทต าแหนงท 2 36 ตารางท 3-5 แสดงการกลายพนธแบบจดเดยวทต าแหนงท 3 37 ตารางท 4-1 กรณทดสอบทไดจากโปรแกรมค านวณคาสงสดและคาต าสด 45 ตารางท 4-2 กรณทดสอบทไดจากโปรแกรมค านวณหาประเภทของรป

สามเหลยม 46

ตารางท 4-3 กรณทดสอบทไดจากโปรแกรมค านวณหาคากลางของขอมล 46 ตารางท 4-4 กรณทดสอบทไดจากโปรแกรมตรวจสอบขอความ Palindrome 47 ตารางท 4-5 จ านวนกรณทดสอบของโปรแกรมตางๆ 48 ตารางท 5-1 สรปผลการประเมนประสทธภาพกรณทดสอบ 50 ตารางท ก-1 รายละเอยดโปรแกรมค านวณคาสงสดและคาต าสด 57 ตารางท ก-2 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมค านวณคาสงสดและคา

ต าสด 58

ตารางท ก-3 การก าหนดคาตงตนโปรแกรมค านวณคาสงสดและคาต าสด 59 ตารางท ก-4 ผลการสรางกรณทดสอบโปรแกรมค านวณคาสงสดและคาต าสด 59 ตารางท ก-5 สรปผลการประเมนประสทธภาพกรณทดสอบโปรแกรมค านวณ

คาสงสดและคาต าสด 59

ตารางท ก-6 รายละเอยดโปรแกรมค านวณหาประเภทของรปสามเหลยม 60 ตารางท ก-7 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมค านวณหาประเภทของ

รปสามเหลยม 61

Page 13: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(12)

รายการตาราง (ตอ) หนา ตารางท ก-8 การก าหนดคาตงตนโปรแกรมค านวณหาประเภทของรปสามเหลยม 62 ตารางท ก-9 ผลการสรางกรณทดสอบโปรแกรมค านวณหาประเภทของรป

สามเหลยม 62

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

62

ตารางท ก-11 รายละเอยดโปรแกรมค านวณหาคากลางของขอมล 63 ตารางท ก-12 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมค านวณหาคากลางของ

ขอมล 64

ตารางท ก-13 การก าหนดคาตงตนโปรแกรมค านวณหาคากลางของขอมล 65 ตารางท ก-14 ผลการสรางกรณทดสอบโปรแกรมค านวณหาคากลางของขอมล 65 ตารางท ก-15 สรปผลการประเมนประสทธภาพกรณทดสอบโปรแกรมค านวณหาคา

กลางของขอมล 65

ตารางท ก-16 รายละเอยดโปรแกรมตรวจสอบขอความ Palindrome 66 ตารางท ก-17 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมตรวจสอบขอความ

Palindrome 68

ตารางท ก-18 การก าหนดคาตงตนโปรแกรมตรวจสอบขอความ Palindrome 68 ตารางท ก-19 ผลการสรางกรณทดสอบโปรแกรมตรวจสอบขอความ Palindrome 69 ตารางท ก-20 สรปผลการประเมนประสทธภาพกรณทดสอบโปรแกรมตรวจสอบ

ขอความ Palindrome 69

Page 14: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(13)

รายการภาพประกอบ หนา ภาพท 2-1 แสดงกระบวนการทดสอบซอฟตแวร 5 ภาพท 2-2 Black-box Testing 7 ภาพท 2-3 White-box Testing 8 ภาพท 2-4 กราฟควบคมการไหล 10 ภาพท 2-5 การด าเนนการของขนตอนวธเชงพนธกรรม 12 ภาพท 2-6 การไขวเปลยนแบบจดเดยว 14 ภาพท 2-7 การไขวเปลยนแบบสองจด 14 ภาพท 2-8 การกลายพนธ 15 ภาพท 2-9 กราฟควบคมการไหลส าหรบโครงสราง Sequence 16 ภาพท 2-10 กราฟควบคมการไหลส าหรบโครงสราง If – Else 17 ภาพท 2-11 กราฟควบคมการไหลส าหรบโครงสราง If 17 ภาพท 2-12 กราฟควบคมการไหลส าหรบโครงสราง While Loop 17 ภาพท 2-13 กราฟควบคมการไหลส าหรบโครงสราง For Loop 18 ภาพท 2-14 กราฟควบคมการไหลส าหรบโครงสราง Select Case 18 ภาพท 2-15 รหสตนฉบบโปรแกรมค านวณหาคาสงสดต าสด 19 ภาพท 2-16 กราฟควบคมการไหลโปรแกรมค านวณหาคาสงสดต าสด 19 ภาพท 2-17 แสดงตวอยางการค านวณหา Branch Distance 20 ภาพท 2-18 Mutation Testing Process 22 ภาพท 2-19 ตวอยางโปรแกรมตนฉบบและโปนแกรมกลายพนธ 23 ภาพท 3-1 แผนภาพแสดงกรอบแนวคดขนตอนการสรางกรณทดสอบโดยใช

ขนตอนวธเชงพนธกรรม 27

ภาพท 3-2 ตวอยางรหสตนทางของโปรแกรมหาคาสงสดและต าสด (Max - Min) 28 ภาพท 3-3 กราฟควบคมการไหลของโปรแกรมหาคาสงสดและต าสด (Max - Min) 28 ภาพท 3-4 เสนทางเปาหมายทงหมดของโปรแกรมหาคาสงสดและต าสด (Max -

Min) 29

ภาพท 3-5 GA Execution 30 ภาพท 3-6 ขนตอนการประเมนคาความครอบคลม 32 ภาพท 3-7 กราฟควบคมการไหลแสดงเสนทางเปาหมาย 33

Page 15: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(14)

รายการภาพประกอบ (ตอ)

หนา

ภาพท 4-2 ตวอยางรหสโปรแกรมตนฉบบในรปแบบ Text File 39 ภาพท 4-3 หนาจอการท างานในสวนการตดตอกบผใช 40 ภาพท 4-4 ตวอยางไฟลโปรแกรมหาคาสงสดและต าสด (Max - Min) ทมการระบ

เสนทางตามกราฟควบคมการไหล 41

ภาพท 4-5 ปมการท างาน 43 ภาพท 4-6 หนาจอแสดงรายละเอยดการการปฏบตการด าเนนการทางพนธกรรมใน

การหากรณทดสอบส าหรบเสนทางเปาหมายทระบ (Execution Detail) 44

ภาพท 4-7 หนาจอแสดงผลการหากรณทดสอบ 44 ภาพท ก-1 รหสตนฉบบโปรแกรมค านวณคาสงสดและคาต าสด 57 ภาพท ก-2 กราฟควบคมการไหลโปรแกรมค านวณคาสงสดและคาต าสด 58 ภาพท ก-3 รหสตนฉบบโปรแกรมค านวณหาประเภทของรปสามเหลยม 60 ภาพท ก-4 กราฟควบคมการไหลโปรแกรมค านวณหาประเภทของรปสามเหลยม 61 ภาพท ก-5 รหสตนฉบบโปรแกรมค านวณหาคากลางของขอมล 63 ภาพท ก-6 กราฟควบคมการไหลโปรแกรมค านวณหาคากลางของขอมล 64 ภาพท ก-7 รหสตนฉบบโปรแกรมค านวณหาค าจากขอความทสะกดเหมอนเดมทง

จากหนาไปหลงหรอหลงไปหนา 66

ภาพท ก-8 กราฟควบคมการไหลโปรแกรมค านวณหาค าจากขอความทสะกดเหมอนเดมทงจากหนาไปหลงหรอหลงไปหนา

67

ภาพท ข-1 เครองมอการสรางกรณทดสอบ 70 ภาพท ข-2 หนาจอการตงคา Genetic Algorithm Parameters 71 ภาพท ข-3 หนาจอการอพโหลดไฟล (Upload File) 72 ภาพท ข-4 หนาจอแสดงรายละเอยดขอมล 72 ภาพท ข-5 หนาจอแสดงรหสโปรแกรมตนฉบบ (Source Code) 73 ภาพท ข-6 หนาจอการก าหนดเสนทางเปาหมายทตองการใชในการหากรณทดสอบ 73 ภาพท ข-7 หนาจอการเพมเสนทางเปาหมาย 74 ภาพท ข-8 หนาจอการแกไขเสนทางเปาหมาย 74 ภาพท ข-9 ปมการท างาน 74

Page 16: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

(15)

รายการภาพประกอบ (ตอ)

หนา

ภาพท ข-10 หนาจอแสดงรายละเอยดการการปฏบตการด าเนนการทางพนธกรรมในการหากรณทดสอบส าหรบเสนทางเปาหมายทระบ (Execution Detail)

75

ภาพท ข-11 หนาแสดงผลการหากรณทดสอบ (Result) 75

Page 17: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

1

บทท 1

บทน ำ

1.1 ควำมส ำคญและทมำของงำนวจย ในปจจบนคอมพวเตอรและเทคโนโลยสารสนเทศเขามามบทบาทในชวตประจ าวน

ของคนเราเปนอยางมาก ซอฟตแวรประยกต (Application Software) ถกพฒนาขนมามากมายเพอใชในงานดานตางๆ ตามความตองการของผใชส าหรบงานเฉพาะอยาง เพออ านวยความสะดวกและเพมความรวดเรวในการท างาน ในการพฒนาซอฟตแวรเหลาน มความจ าเปนทจะตองมกจกรรมหรอกระบวนการทดสอบซอฟตแวร เพอตรวจสอบความถกตองของซอฟตแวรกอนทจะน าไปใชงานจรง

การทดสอบซอฟตแวร (Software Testing) [1] เปนขนตอนในกระบวนการพฒนาซอฟตแวรทมบทบาทและมความส าคญ การทดสอบเปนกจกรรมทจดท าขนเพอปรบปรงคณภาพของซอฟตแวร คนหาขอบกพรองและลดขอผดพลาดจากการท างานของซอฟตแวรใหเหลอนอยทสด ขนตอนหนงทส าคญในกระบวนการทดสอบซอฟตแวร คอการคดเลอกขอมลทน ามาใชในการทดสอบ ดงนนการน าเสนอขนตอนการสรางกรณทดสอบทดจะมสวนท าใหการทดสอบมประสทธภาพ โดยกรณทดสอบทมประสทธภาพจะตองครอบคลมคณลกษณะตางๆ ของระบบและมจ านวนกรณทดสอบทไมมากจนเกนไป การสรางกรณทดสอบสามารถท าไดแบบ manual และแบบอตโนมต ซงการสรางกรณทดสอบแบบอตโนมตจะมขอดกวาในดานการประหยดคาใชจาย ในปจจบนมงานวจยหลายชนทน าเสนอกระบวนการสรางกรณทดสอบ ตวอยางเชน Korel [2] และ Michael [3] ไดน าเสนอวธการสรางกรณทดสอบจากการสม โดยไดท าการสมขอมลทเปนตวเลขเพอเปนขอมลน าเขา (Input data) ส าหรบการทดสอบซอฟตแวร การสรางกรณทดสอบจากการสมน เปนวธพนฐานส าหรบการสรางกรณทดสอบตามขอก าหนดของซอฟตแวร แตกรณทดสอบทไดอาจไมเพยงพอตอการน าไปใชเพอทดสอบการท างานทงหมดของซอฟตแวร Monalisa [4] ไดน าเสนอวธการสรางกรณทดสอบโดยอตโนมตจากแผนภาพ UML (Unified Modeling Language) ซงเปนภาษาทใชแผนภาพตางๆ ในการอธบายขนตอนการท างานของซอฟตแวร โดยทมการใชภาษาหรอภาพสญลกษณทเปนภาษาทนยมใชในการพฒนาระบบ งานวจยชนนไดใช Use Case Diagram และ Sequence Diagram ในการสรางกรณทดสอบ Theerapong Lertphumpanya และ Twittie Senivongse [5] ไดน าเสนอวธการสรางกรณทดสอบโดยอตโนมตส าหรบการทดสอบเวบเซอรวสจากการสรางกราฟควบคมการไหลและหาเสนทางทเหมาะสมส าหรบการสรางกรณทดสอบ

Page 18: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

2

ขนตอนวธเชงพนธกรรม (Genetic Algorithms) เปนวธการคนหาค าตอบทเหมาะสมส าหรบปญหาทพจารณา โดยใชวธการคดเลอกแบบธรรมชาตเลยนแบบแนวคดววฒนาการของสงมชวตทวา สงมชวตทแขงแรงกวาจะมโอกาสอยรอดในธรรมชาตมากวาสงมชวตทออนแอกวา โดยกระบวนการท างานของขนตอนวธเชงพนธกรรมจะท าการหาค าตอบทเหมาะสมโดยเรมตนจากการพจารณาจากกลมของค าตอบของปญหาทถกสรางขนโดยการเขารหส ซงเปนการแปลงคาตวแปรหรอพารามเตอร (Parameters) ของปญหาใหอยในรปโครงสรางของโครโมโซม (Chromosomes) ทก าหนด แลวจงน ากลมของค าตอบนนไปคดเลอกโครโมโซมเพอหาค าตอบทเหมาะสมส าหรบสรางววฒนาการของค าตอบใหดขน โดยใชการปฏบตการทางพนธศาสตรเพอแลกเปลยนคาพารามเตอรตางๆ ระหวางโครโมโซมทถกคดเลอก ซงจะท าใหค าตอบของปญหาถกปรบปรงใหดขนจนกระทงพบค าตอบทเหมาะสมส าหรบปญหานนๆ

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

1.2 วตถประสงคของงำนวจย

1.2.1 เพอน าเสนอกระบวนการสรางกรณทดสอบส าหรบกระบวนการทดสอบซอฟตแวรโดยประยกตใชขนตอนวธเชงพนธกรรม

1.2.2 เพอพฒนาเครองมอส าหรบสรางกรณทดสอบ ตามกระบวนการทไดน าเสนอ 1.3 ขอบเขตของงำนวจย

1.3.1 เสนอขนตอนในการสรางกรณทดสอบซอฟตแวรโดยอาศยวธการเชงพนธกรรม

1.3.2 พฒนาเครองมอเพอใชในการสรางกรณทดสอบซอฟตแวรโดยอาศยวธการเชงพนธกรรม ตามขนตอนทไดน าเสนอ

Page 19: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

3

1.4 ระยะเวลำกำรด ำเนนงำนวจย ระยะเวลาการด าเนนงานวจยทงหมด 12 เดอน โดยเรมโครงการวนท 1 พฤษภาคม

2557 และสนสดโครงการวนท 30 เมษายน 2558

1.5 ประโยชนทคำดวำจะไดรบ 1.5.1 ไดวธการทใชในการสรางกรณทดสอบโดยประยกตใชขนตอนวธเชงพนธกรรม 1.5.2 ไดเครองมอทชวยในการสรางกรณทดสอบโดยอตโนมต เปนการชวยลดภาระการ

ด าเนนงานของผทดสอบ

Page 20: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

4

บทท 2

ทฤษฎและหลกกำร 2.1 กำรทดสอบซอฟตแวร (Software Testing)

การทดสอบซอฟตแวร เปนการทดสอบความสมบรณของโปรแกรม รวมทงความนาเชอถอและความถกตองของผลลพธจากโปรแกรมทพฒนาขน การทดสอบเปนปจจยส าคญปจจยหนงของการประกนคณภาพซอฟตแวร วตถประสงคหลกของการทดสอบซอฟตแวร คอการทดสอบเพอคนหาขอผดพลาดทอาจเกดขนไดจากซอฟตแวรทพฒนาขน การทดสอบทดจะตองมความเปนไปไดสงทจะคนพบขอผดพลาดใหมๆ และการทดสอบทประสบความส าเรจจะตองพบขอผดพลาด ซงกระบวนการทดสอบทดจะตองประกอบไปดวยกรณทดสอบทมความเหมาะสมกบโปรแกรมหรอซอฟตแวรนนๆ

กรณทดสอบคอขอมลทผทดสอบใชในการทดสอบฟงกชนการท างานใด ๆ ของซอฟตแวร เพอใหทราบวาการท างานของฟงกชนการท างานนนมความถกตองหรอไม กรณทดสอบทดตองมคณสมบตคอ ตองมความครอบคลมคณลกษณะตางๆ ของงานททดสอบ และกรณทดสอบทมประสทธภาพ คอกรณทดสอบทสามารถคนพบขอผดพลาดทเกดขนในโปรแกรม

นอกจากนการทดสอบซอฟตแวรยงเปนกระบวนการทมความส าคญตอการสงมอบระบบ โดยเฉพาะในขนตอนของการท า UAT (User Acceptance Test) เปนขนตอนการทดสอบซอฟตแวรขนตอนสดทาย ซงเปนกระบวนการทดสอบทท าโดยผใชงานระบบ โดยการทดสอบในกระบวนการนจะนยมน าขอมลจรงมาใชในการทดสอบเพอจ าลองสถานการณจรงในการใชงานระบบ ซงหากสามารถตรวจพบจดบกพรองไดมากและละเอยดเทาไร กจะเปนการชวยลดตนทนใหแกผพฒนาซอฟตแวร และชวยลดความเสยงใหแกผใชระบบมากเทานน ดงนน การทดสอบซอฟตแวรจงเปนสงจ าเปนอยางหลกเลยงไมไดในอตสาหกรรมการพฒนาซอฟตแวรในปจจบน

Page 21: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

5

Test

Planning

Test

Closure

Activities

Test

Analysis

Test

Design

Test

Implemen-

tation

Test

Execution

Evaluating

Exit Criteria

and Test

Reporting

Software

Quality

ภำพท 2-1 แสดงกระบวนการทดสอบซอฟตแวร [6]

2.1.1 กระบวนกำรทดสอบซอฟตแวร กระบวนการในการทดสอบซอฟตแวร แสดงดงภาพท 2-1 ซงรายละเอยดในแตละ

ขนตอนมดงน (1) Test Planning เปนการก าหนดแผนการทดสอบซอฟตแวร ซงรวมถงการก าหนดตารางกจกรรม

ตางๆ ในการด าเนนการเพอทดสอบซอฟตแวร การจดสรรทรพยากรทจ าเปน การก าหนดขอบเขตของงานทชดเจน และการจดเตรยมสภาพแวดลอม (Environment) ทจ าเปนทตองใชในการทดสอบทงหมด เชน Hardware, Software (Operating System, Browsers, Database Systems) เครองมอและอปกรณทเกยวของ

(2) Test Analysis เปนการก าหนดสถานการณของการทดสอบ ซงสอดคลองกบความตองการของ

ระบบและสอดคลองกบความตองการในการท างานของฟงกชนตางๆ ในระบบเพอใชในการออกแบบการทดสอบ

(3) Test Design เปนการจดท ากรณทดสอบ (Test Case) ทใชในการทดสอบ ซงมลกษณะเปน

รายการตรวจสอบ (Checklist) ทมรายละเอยดครอบคลมทกคณสมบตหรอทกฟงกชนการท างานของซอฟตแวรทอยภายใตการทดสอบ โดยเมอท าการทดสอบแลวเสรจจะระบผลลพธทไดจากการทดสอบ (ผาน/ไมผาน) และรายละเอยดอนๆ ทจ าเปนลงไปในรายการตรวจสอบ

Page 22: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

6

(4) Test Implementation เปนขนตอนการจดเตรยมกจกรรมหรอกระบวนการตางๆ ในการทดสอบ โดย

กจกรรมทอยภายใตกระบวนการทดสอบในขนตอนน เชน

- จดท าตารางปฏบตการทดสอบ (Test Execution Schedule)

- จดเตรยมสภาพแวดลอมและขอมล ส าหรบใชในการทดสอบ

- จดเตรยมกระบวนการทใชในการตดตามผลการทดสอบและขอบกพรองทเกดจากการทดสอบ

- จดเตรยมเครองมอตางๆ (5) Test Execution เปนขนตอนการด าเนนการทดสอบ

- ด าเนนการทดสอบตามตารางปฏบตการทดสอบ

- ด าเนนการบนทก, แกไข, ตดตามขอผดพลาดทเกดขน

- ตดตามความกาวหนาของการทดสอบ

- ควบคมการทดสอบใหเปนไปตามแผนทวางไว (6) Evaluating Exit Criteria and Test Reporting เปนการตรวจสอบวาผลการทดสอบเปนอยางไร เชน ไดท าการทดสอบครบถวนตาม

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

- จ านวนกรณทดสอบทผาน/ไมผานการทดสอบ หรออยระหวางการทดสอบ

- จ านวนขอบกพรองทพบจ าแนกตามระดบความรนแรง (Severity) และสถานะ (Status) (7) Test Closure Activities คอการสรปผลหรออภปรายผลการทดสอบ เปนขนตอนสดทายในกระบวนการ

ทดสอบซอฟตแวร กจกรรมทอยภายใตกระบวนการน เชน

- ตรวจสอบความครบถวนของการทดสอบวาเปนไปตามตารางปฏบตการทดสอบ หรอไม และท าการแกไขขอบกพรองทพบทงหมดแลวหรอไม

Page 23: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

7

- ท าการสงมอบงาน เชน ผลการทดสอบ ขอมลทเกดจากการทดสอบ และรายงานใหผทเกยวของรบทราบ

- จดเกบขอมลและเอกสารส าคญ เชน ผลการทดสอบ ขอมลทเกดจากการทดสอบ และรายงานตางๆ ลงในแหลงจดเกบขอมล (Configuration Management System) 2.1.2 ระดบของกำรทดสอบซอฟตแวร ส าหรบเทคนคในการทดสอบซอฟตแวร (Software Testing Technique) ทนยมใช

ไดแก 1) Black-box Testing คอการทดสอบการท างานของซอฟตแวรทไมสนใจกลไก

ภายในของระบบ การท าการทดสอบเนนเพอการตรวจสอบผลการท างานของระบบในแตละหนาทตามขอก าหนดความตองการ (Requirement Specification) วาถกตองตามความตองการหรอไม ผทท าการทดสอบ (Tester) นน ไมท าการเขาถงรหสตนฉบบ (Source Code) โดยรหสตนฉบบจะถกพจารณาใหเปน “Big Black Box” ทผทดสอบระบบไมสามารถเหนภายในได ผทดสอบระบบจะรเพยงอยางเดยววาสามารถให Input แกระบบและระบบจะสง Output ออกมาดงภาพท 2-2

ภำพท 2-2 Black-box Testing

2) White-box Testing คอการทดสอบการท างานของซอฟตแวรซงพจารณากลไกภายในของระบบโดยจะมงเนนพจารณาโครงสรางภายใน แนวคดพนฐานของการทดสอบแบบนคอ การทความผดพลาดของซอฟตแวรจะถกตรวจพบไดนน จะตองท าการทดลองเรยกใชค าสงตางๆ ในโปรแกรมใหมากทสด การทดสอบโครงสรางของโปรแกรมเชนนมความส าคญมาก เนองจากจะชวยในการวเคราะหการท างานของโปรแกรมเพอคนหาขอบกพรองทอาจจะเกดขนจากการท างานของค าสงตางๆในโปรแกรมได

System Input Output

Page 24: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

8

ภำพท 2-3 White-box Testing

การทดสอบซอฟตแวรสามารถท าไดหลายระดบซงประกอบดวย 5 ระดบสามารถแบงออกได ดงน

(1) กำรทดสอบโมดล (Unit Testing หรอ Module Testing) เปนการทดสอบโปรแกรมทละโมดลเพอหาขอผดพลาด หรอเปนการทดสอบสวนท

เลกทสดของโปรแกรมอาจจะเปน Function หรอ Class โดยก าหนดขอมลเขา (Input) แลวทดสอบขอมลออก (Output) การทดสอบในระดบนมกจะท าโดย Programmer และอยในกลมของ White-Box Testing

(2) กำรทดสอบกำรรวมกน (Integration Testing) เปนการทดสอบการรวมโมดล โดยจะแบงเปน 2 ลกษณะ คอ การทดสอบแบบเพม

โมดลจากบนลงลาง (Top-down Approach) และการทดสอบแบบเพมโมดลจากลางขน (Bottom-up Approach)

(3) กำรทดสอบระบบยอย (Sub-System Testing) เปนการทดสอบระบบยอยทละระบบเพอหาขอผดพลาด ซงการทดสอบในระดบน

มกจะเปน Black-box Testing ซงระดบนจะท าการทดสอบความเขากนไดของระบบจากการรวมองคประกอบยอย ๆ ของโปรแกรมเขามาท างานดวยกน (เนองจากการพฒนาโปรแกรมใดๆ สวนใหญจะท าการแบงตวโปรแกรมออกเปนสวนยอย ๆ เรยกวา โมดล (Module), ฟงกชน (Function) หรอ สวนประกอบ (Component) เพอความสะดวกในการพฒนาและการจดการ ดงนนจงตองมการทดสอบวาเมอน ามารวมกนเพอใชงานเปนโปรแกรมหลกโปรแกรมเดยวแลว จะสามารถท างานรวมกนไดอยางถกตองหรอไม)

Component

Code Test data Test Output

Derives

Page 25: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

9

(4) กำรทดสอบทงระบบ (System Testing) จะเปนการน าระบบยอยทผานการทดสอบมาแลว มาทดสอบอกครงโดยเพมอก

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

(5) กำรทดสอบกำรยอมรบของระบบโดยผใช (Acceptance Testing) เปนการทดสอบ โดยจะเปนหนาทของผใชงาน (End User) ทจะท าการทดสอบ

โปรแกรมดวยตวเอง เพอดวาการท างานของโปรแกรมนนเปนไปตามความตองการ 2.1.3 กำรทดสอบแบบควำมครอบคลมรหสโปรแกรม (Code Coverage

Testing) เปนการทดสอบโดยมการค านงถงสวนของรหสโปรแกรม ทประกอบดวยสวนของ

ขอมลและสวนของโปรแกรม ขอมล ไดแก ตวแปร คาคงท อารเรย โครงสรางขอมล อนพทจากแปนพมพ และเมาส อนพทและเอาทพทจากไฟลและหนาจอ อปกรณไอโอ เปนตน การทดสอบโครงสรางของโปรแกรมสามารถกระท าไดหลายระดบตามระดบของความเขมขนหรอทเรยกวา ความครอบคลมรหสโปรแกรม (Code Coverage) [7] ตวอยางระดบความครอบคลม เชน

(1) กำรครอบคลมค ำสง (Statement Coverage - SC) เปนรปแบบพนฐานทสดของความครอบคลมรหสโปรแกรม เปาหมายของการ

ทดสอบในระดบนคอ ตองการใหทกค าสงในโปรแกรมไดรบการทดสอบอยางนอยหนงครง (2) กำรครอบคลมกำรตดสนใจ (Decision Coverage - DC) เปนการทดสอบความครอบคลมในระดบทสงขน โดยตองมการพจารณาการ

ตดสนใจ (Decision) ของชดค าสงทง 2 กรณ คอ กรณทการตดสนใจเปนจรง (True) และกรณทการตดสนใจเปนเทจ (False) เปาหมายของการทดสอบในระดบนคอ ตองการใหทกการตดสนใจในโปรแกรมไดรบการทดสอบอยางนอยหนงครงทงกรณทการตดสนใจเปนจรงและเปนเทจ

(3) กำรครอบคลมเสนทำง (Path Coverage - PC) การทดสอบในระดบนจะพจารณาชดค าสงในลกษณะของกราฟควบคมการไหล

(Control Flow Graph, CFG) ภาพท 2-4 แสดงกราฟควบคมการไหล ซงประกอบดวย 4 โหนด และ 4 เอจ หากพจารณาการทดสอบทระดบการครอบคลมค าสง สามารถเทยบไดกบการครอบคลม

Page 26: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

10

โหนด (Node Coverage) ในกราฟ และในระดบการครอบคลมการตดสนใจ สามารถเทยบไดกบการครอบคลมเอจ (Edge Coverage) ในกราฟ การทดสอบในระดบครอบคลมเสนทาง หมายถงการก าหนดใหมการทดสอบครอบคลมทกๆ เสนทางทเปนไปไดของกราฟ ซงในทางปฏบตไมสามารถกระท าได เนองจากกราฟมกมเสนทางมากมาย เชน มเสนทางทมการวนซ า ดงนน Ammann และ Outfutt [8] จงน าเสนอหลกการครอบคลมเสนทางในทางปฏบต กลาวคอ หากชดค าสงทท าการทดสอบมการวนรอบ (Loop) ทมจ านวนรอบไดไมจ ากดจ านวน ใหท าการทดสอบการวนรอบใน 3 กรณ คอ 1) ไมมการวนรอบเลย 2) วนรอบหนงครง และ 3) วนรอบหลายครง ในกรณทสามน เราไมสามารถก าหนดตายตวไดวาจ านวนการวนรอบเทาไร โดยเราสามารถก าหนดใหเปน 2 หรอจ านวนเทาใดครง

ภำพท 2-4 กราฟควบคมการไหล (4) กำรครอบคลมเงอนไขแบบหลำยกรณ (Multiple Condition Coverage -

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

กรณ ซงจะท าใหมกรณทตองพจารณาเทากบ 2n เมอ n คอจ านวนของเงอนไขยอย และคาความเปนไปไดของแตละเงอนไขยอยคอกรณทเปนจรงและเทจ ตวอยางเชน เงอนไข a or b ซงประกอบดวยคาของเงอนไข 2 ตว คอ a และ b ดงนนกรณทดสอบมจ านวนเทากบ 4 ดงตารางท 2-1

ตำรำงท 2-1 ตวอยางกรณทดสอบส าหรบการทดสอบในระดบครอบคลมเงอนไขแบบหลายกรณ

กรณทดสอบ a b a or b 1 จรง จรง จรง 2 จรง เทจ จรง 3 เทจ จรง จรง 4 เทจ เทจ เทจ

edge node

Page 27: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

11

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

2.2 ขนตอนวธเชงพนธกรรม (Genetic Algorithm)

ขนตอนวธเชงพนธกรรม เปนกระบวนการหนงทอาศยทฤษฏการววฒนาการของสงมชวต น าเสนอโดย John Holland [10] และเขาไดน าทฤษฏดงกลาวมาประยกตใชกบเทคนคการคนหาในเรอง Local Search Algorithm และตอมาไดน าขนตอนวธเชงพนธกรรมมาใชเปนเทคนคการเรยนรดวย ขนตอนวธเชงพนธกรรมสามารถน ามาใชเพอคนหาค าตอบทดขนและเหมาะสมมากขนโดยผานการเรยนรดวยตวเอง เปรยบเสมอนการววฒนาการของสงมชวตทสามารถววฒนาการเพอการด ารงชวตอย โดยน ามาจากแนวคดทวาสงมชวตทงหลายมทงสวนดและสวนทไมด ซงลกษณะทดยอมมโอกาสอยรอดไดมากกวาและจะไดรบการสนบสนนใหมการถายทอดลกษณะทางพนธกรรมไปยงรนตอไป

กระบวนการท างานของขนตอนวธเชงพนธกรรมแสดงดงภาพท 2-5 โดยการท างานจะเรมจากการสมโครโมโซมขนมาจ านวนหนงเพอสรางเปนกลมประชากรตนก าเนด ( Initial Population) และท าการประเมนคาความเหมาะสม (Fitness Evaluation) จากฟงกชนความเหมาะสมทก าหนดไว จากนนจะคดเลอกประชากร (Selection) มาจ านวนหนงเพอใชเปนตนก าเนดทางสายพนธหรอเปนกลมประชากรรนพอแม จากนนจะน าประชากรเหลานเขาสกระบวนการปฏบตการทางสายพนธ (Genetic Operation) ไดแก การไขวเปลยน (Crossover) และการกลายพนธ (Mutation) ซงจะท าใหเกดกลมประชากรทเปนรนลก และเมอน าประชากรกลมนไปประเมนคาความเหมาะสมแลวพบค าตอบทเหมาะสมกบปญหา กระบวนการท างานกจะจบลง แตหากค าตอบท ได ย ง ไม เหมาะสมกจะด า เนนตอไปโดยการน าประชากรร นล กท ได ไปแทนท (Replacement) ประชากรรนพอแม เมอท าการแทนทเสรจแลวกจะน าประชากรกลมใหมทไดกลบเขาสกระบวนการคดเลอกใหมอกครง ซงกระบวนการเหลานจะด าเนนการซ าไปเรอยๆ จนกระทงไดประชากรกลมทเหมาะสม

Page 28: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

12

Termination?

Initial Population

No

Yes

Fitness Evaluation

Selection

Crossover

Mutation

Replacement

Stop

ภำพท 2-5 การด าเนนการของขนตอนวธเชงพนธกรรม [10]

2.1.1 กำรสรำงกลมประชำกรตนก ำเนด (Initial Population) เปนขนตอนแรกของกระบวนการในขนตอนวธเชงพนธกรรม โครโมโซมมกถก

ก าหนดในรปแบบทแตกตางกนออกไปตามปญหานนๆ เชน 1) โครโมโซมแบบเลขฐานสอง (Binary) เปนรปแบบโครโมโซมเรมแรกทน ามาใช

แกปญหาของขนตอนวธเชงพนธกรรม โดยลกษณะของรปแบบโครโมโซมแบบนคอ ทกต าแหนงจะมคาเปน บต 0 หรอ 1

2) โครโมโซมแบบตวเลข (Value) รปแบบโครโมโซมในลกษณะน ทกต าแหนงของยนของโครโมโซมจะมคาบางคาซงสามารถเชอมโยงไปยงปญหาได เชน ตวอกษร จ านวนจรง ค าสงหรออนๆ รปแบบโครโมโซมแบบนสามารถใชไดกบปญหาทคอนขางซบซอน

Page 29: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

13

ในการหาผลลพธดวยวธการทางพนธกรรมนน ผลลพธเรมตนจะไดมาจากการสมเลอกกลมของผลลพธทเปนไปไดภายในขอบเขตของขอมลใหมจ านวนโครโมโซมเทากบจ านวนประชากรทไดก าหนดไว ตวอยางการก าหนดโครโมโซมอยางงายในขนตอนวธเชงพนธกรรมเปนเซตของยนทเปนเลขฐานสอง เชน {100101} โดยต าแหนงของยนแตละยนในโครโมโซมจะแทนลกษณะขององคประกอบยอยของชดค าตอบของปญหา ซงการก าหนดยนและโครโมโซม สามารถก าหนดในรปแบบอนได ขนอยกบโครงสรางขององคประกอบยอยของค าตอบและลกษณะของปญหาทตองการแก ตวอยางเชน อาจก าหนดโครโมโซมเปนเซตของยนทเปนเลขฐานสบ หรออาจก าหนดโครงสรางของโครโมโซมเปน Matrix ของยนทเปนตวเลขหรอตวอกษร ตามความตองการและลกษณะของปญหา

2.1.2 กำรประเมนคำควำมเหมำะสม (Fitness Evaluation) โครโมโซมทกตวจะตองมคาซงบงบอกถงความเหมาะสมทจะพจารณาวาสมควร

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

2.1.3 กำรคดเลอก (Selection) ประชากรรนใหมจ าเปนตองเกดมาจากประชากรรนพอ -แมทมลกษณะพนธทด

ดงนนในการเลอกประชากรรนพอ-แมเพอสบพนธจะตองเลอกจากโครโมโซมทใหผลลพธทดเพอเปนค าตอบเรมตนใหกบประชากรรนตอไปโดยอาศยทฤษฎการอยรอดของสงมชวต จงท าใหเกดรปแบบมากมายในการเลอกโครโมโซมทนาพอใจทสดเพอน าไปสบสายพนธ ดงน

1) การคดเลอกแบบวงลอรเลต (Roulette Wheel) คอ โครโมโซมทมคาความเหมาะสมทดกวามโอกาสในการถกสมเลอกเปนพอ-แมพนธทสงกวา

2) การคดเลอกแบบชวง (Ranking) คอการเลอกประชากรทมคาความเหมาะสมทดทสดโดยไมสนใจประชากรตวอน

3) การคดเลอกแบบ Elitist เปนแนวคดทปองกนการหาของเสนทางทดทสด คอมการคดลอกโครโมโซมทดทสดไวกอน สวนประชากรทเหลอทจะตองคดเลอกจะใชวธการเลอกแบบอนๆ

Page 30: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

14

2.1.4 กำรไขวเปลยน (Crossover) เปนกระบวนการทส าคญของขนตอนวธเชงพนธกรรม การไขวเปลยนคอการท

โครโมโซมในรนพอ-แม จะมการสลบลกษณะทางพนธกรรมซงกนและกน โดยอตราสวนของจ านวนโครโมโซมรนลกทถกสรางขนจากกลมประชากรในแตละรนตอขนาดของประชากรทงหมดจะเรยกวา อตรำควำมนำจะเปนในกำรไขวเปลยน (Probability of Crossover) ซงเปนพารามเตอรทส าคญในการหาค าตอบของกระบวนการเชงพนธกรรม ลกษณะการไขวเปลยนม 2 รปแบบ คอ

1) การไขวเปลยนแบบจดเดยว (Single-point Crossover) จะสมจดตดขนมาเพยงจดเดยวบนโครโมโซมพอกบโครโมโซมแม เพอใชเปนจดส าหรบไขวเปลยนระหวางโครโมโซม ท าใหเกดเปนโครโมโซมใหมขนมาตวอยางการไขวเปลยนทต าแหนงท 2 แสดงดงภาพท 2-6

ภำพท 2-6 การไขวเปลยนแบบจดเดยว

2) การไขวเปลยนแบบสองจด (Double-point Crossover) จะสมจดตดขนมาสอง

จดบนโครโมโซมพอกบโครโมโซมแม เพอใชเปนจดส าหรบไขวเปลยนระหวางโครโมโซม ท าใหเกดเปนโครโมโซมใหมขนมา ตวอยางการไขวเปลยนทต าแหนงท 1 และ 3 แสดงดงภาพท 2-7

ภำพท 2-7 การไขวเปลยนแบบสองจด

Page 31: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

15

2.1.5 กำรกลำยพนธ (Mutation) การกลายพนธ คอ การเปลยนลกษณะทางพนธกรรมภายในโครโมโซมรนลกเอง

หลงจากทไดท าการสลบสายพนธมาแลวขนตอนวธเชงพนธกรรมไดน าหลกการนมาชวยสรางค าตอบใหม โดยจะยอมใหคาภายในโครโมโซมสามารถเกดการกลายพนธได เปนขนตอนทอาจชวย ใหโครโมโซมมคาความเหมาะสมดขนหลงจากการไขวเปลยน ซงต าแหนงทกลายพนธจะเกดจากการสม โดยเปอร เซนตทจะเกดการกลายพนธหาไดจาก อตรำควำมนำจะเปนในกำรกลำยพนธ (Probability of Mutation) ตวอยางการกลายพนธทต าแหนงท 1 แสดงดงภาพท 2-8

ภำพท 2-8 การกลายพนธ

2.1.6 กำรแทนท (Replacement) กลมประชากรรนลกทไดจากการะบวนการไขวเปลยน (Crossover) และ การกลาย

พนธ (Mutation) จะถกน าไปแทนทขอมลทเปนประชากรรนพอแม และจะกลายเปนประชากรรนพอแมใหม ตอจากนนจะน าขอมลชดใหมไปเขาสกระบวนการประเมนคาความเหมาะสม (Fitness Evaluation) อกครงจนกวาจะไดกลมประชากรทเหมาะสม

2.1.7 พำรำมเตอร (Parameters) พารามเตอรทส าคญหรอเปนพนฐานของขนตอนวธเชงพนธกรรม มดงน 1) ขนาดของประชากร (Population Size) เปนพารามเตอรทมความส าคญและ

สงผลตอการท างาน เพราะหากก าหนดขนาดประชากรมากเกนไปจะตองใชทรพยากรส าหรบการค านวณมากขน เชน ใชหนวยความจ าและเวลาในการประมวลผลมากขน เปนตน 2) อตราความนาจะเปนในการไขวเปลยน (Probability of Crossover) เปนพารามเตอรทก าหนดความนาจะเปนของการเกดการไขวเปลยน (Crossover) ของโครโมโซม ซงจะมคาอยระหวาง 0 ถง 1 (หรอสามารถแปลงใหอยในรปแบบรอยละได) หากก าหนดอตราการไขวเปลยนเปน 1 แสดงวาจะเกดกระบวนการไขวเปลยนโครโมโซมทกครง ท าใหค าตอบมความหลากหลายเนองจากเกดโครโมโซมลกขนใหมตลอดเวลา สวนกรณทก าหนดอตราการไวเปลยนเปน 0

Page 32: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

16

แสดงวาไมมโอกาสเกดกระบวนการไขวเปลยนแตจะคดลอกโครโมโซมทพจารณานนมาเปนโครโมโซมลกแทน ท าใหพบค าตอบของปญหาไดยากเนองจากไมมค าตอบใหมทเกดขน 3) อตราความนาจะเปนในการกลายพนธ (Probability of Mutation) เปนพารามเตอรทก าหนดความนาจะเปนในการกลายพนธ (Mutation) โดยอตราการเกดจะอยระหวาง 0 ถง 1 หากก าหนดอตราการกลายพนธเปน 1 แสดงวาทกต าแหนงบนโครโมโซมสามารถเกดการกลายพนธหลงจากกระบวนการไขวเปลยนไดทกครง สวนกรณทก าหนดอตราการกลายพนธเปน 0 แสดงวาไมมโอกาสเกดการกลายพนธภายในโครโมโซม โดยสวนใหญมกใชกบกรณทตองการหาค าตอบทไดจากการไขวเปลยนเทานน 2.3 กรำฟควบคมกำรไหล (Control Flow Graph)

เปนกราฟทใชในการวเคราะหการท างานของโปรแกรมคอมพวเตอร เปนเครองมอทชวยในการทดสอบการท างานของซอฟตแวร แสดงใหเหนถงโครงสรางการท างานตามเงอนไขตางๆของซอฟตแวร สามารถสรางไดจากรหสตนฉบบ (Source Code) กราฟควบคมการไหลจะประกอบไปดวยโหนด (Node) ทเชอมตอกนดวยเสนเชอม (Edge) โดยทแตละโหนดคอตวแทนของค าสงในการท างานของโปรแกรมหรอกลมค าสงทท างานเปนล าดบ

ตวอยางการสรางกราฟควบคมการไหลจากรหสตนฉบบในรปแบบโครงสรางแบบตางๆ ตามหลกการทไดน าเสนอโดย Amman และ Offutt [8] แสดงดงภาพท 2-9 ถง 2-14

n0

n2

n1

read x

read x

x = y

ภำพท 2-9 กราฟควบคมการไหลส าหรบโครงสราง Sequence

read x; read y; x=y;

Page 33: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

17

n0

n2n1

n3

x < y x >= y

y = 0

x = x+1x = y

ภำพท 2-10 กราฟควบคมการไหลส าหรบโครงสราง If – Else

n0

n2

n1

x < y

x >= yy = 0

x = x+1

ภำพท 2-11 กราฟควบคมการไหลส าหรบโครงสราง If

n0

n2

n1

n3

x < y x >= y

y = f(x,y)

x = x+1

x = 0

ภำพท 2-12 กราฟควบคมการไหลส าหรบโครงสราง While Loop

if (x < y) {

y = 0; x = x + 1;

} else { x = y; }

if (x < y) {

y = 0; x = x + 1;

}

x = 0; while (x < y) {

y = f(x,y); x = x + 1;

}

Page 34: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

18

n0

n2

n1

n4

x < y x >= y

y = f(x,y)

x = 0

n3 x ++

ภำพท 2-13 กราฟควบคมการไหลส าหรบโครงสราง For Loop

n0

n2n1

n4

c = ‘N’ default

y = 0

breakn3

read c

c = ‘Y’

y = 50

break

y = 25

break

print y

ภำพท 2-14 กราฟควบคมการไหลส าหรบโครงสราง Select Case

กราฟควบคมการไหลส าหรบโครงสรางโปรแกรมในรปแบบตางๆ สามารถพจารณาไดจากรหสตนฉบบของโปรแกรมนน ซงกราฟควบคมการไหลทไดนนสามารถน ามาสรางเสนทางส าหรบการทดสอบซอฟตแวรใหครอบคลมเสนทางทเปนไปได

for (x = 0; x < y; x++ ) {

y = f(x,y); }

read c; switch c; { case ‘N’

y = 25; break;

case ‘Y’ y = 50; break;

default y = 0; break;

}

Page 35: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

19

ตวอยาง เมอพจารณาโครงสรางของรหสโปรแกรมค านวณหาคาสงสดต าสดดงภาพท 2-15 สามารถเขยนกราฟควบคมการไหลไดดงภาพท 2-16

n0

n1

n2 n3

n4

n6

n7

n8

n5

a>b a<=b

max<c

max = a

min = b

max = b

min = a

max>=cmax = c

max = c

max>c

max<=c

End

read a,b,c

read a,b,c if a > b {

max = a : min = b } else {

max = b : min = a } if max < c {

max = c } if max > c {

min = c }

ภำพท 2-15 รหสตนฉบบโปรแกรมค านวณหาคาสงสดต าสด

ภำพท 2-16 กราฟควบคมการไหลโปรแกรมค านวณหาคาสงสดต าสด

Page 36: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

20

2.4 Branch Distance Calculation Branch Distance Calculation เปนวธการค านวณหาระยะหางระหวางเสนทาง

2 เสนทาง โดยจะพจารณาตามประเภทการตดสนใจ (Decision Type) และใชวธการค านวณตามตารางท 2-2

ตำรำงท 2-2 Korel’s distance function [2] Decision Type Branch Distance a < b a - b a <= b a - b a > b b - a a >= b b - a a == b abs(a-b) a <> b abs(a-b) a && b a + b a || b min(a , b)

ส าหรบในวทยานพนธนใชการค านวณ Branch Distance เพอคดเลอกชดขอมลทมความเหมาะสม โดยจะค านวณคา Branch Distance ส าหรบแตละชดขอมลแลวน ามาพจารณาเพอสรางกลมประชากรใหมเพอเขาสกระบวนการวธเชงพนธกรรม

ภำพท 2-17 ตวอยางการค านวณหา Branch Distance

void example(int a, int b, int c, …) { if (a >= b)

{ if (b <= c) { If (a == c) { // target

Target Missed Branch Distance = b - a

Target Missed Branch Distance = abs(a – c)

Target Missed Branch Distance = b - c

false

false

false

true

true

true 1 if (a >= b)

2 if (b <= c)

3 if (a == c)

TARGET

Page 37: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

21

ภาพท 2-17 แสดงตวอยางการค านวณหา Branch Distance ซงจะค านวณคา Branch Distance ระหวางเสนทางหนงซงเปนเสนทางทก าลงพจารณา (Traversal Path) และเสนทางเปาหมาย (Target Path) จากตวอยาง ในกราฟควบคมการไหลม Decision Type จ านวน 3 Decision ไดแกโหนด 1, 2 และ 3 ดงนน ในกรณทเสนทางทก าลงพจารณาไมตรงกบเสนทางเปาหมายจะตองมการค านวณคา Branch Distance ใหส าหรบโหนดทเปน Decision Type ดงตารางท 2-3

ตำรำงท 2-3 แสดงการค านวณคา Branch Distance ส าหรบกราฟควบคมการไหลในภาพท 2-17

Node Decision Branch Distance 1 a >= b b - a 2 a <= b a - b 3 a == b abs(a-b)

2.5 กำรทดสอบแบบกลำยพนธ (Mutation Testing) การทดสอบแบบกลายพนธ เปนการทดสอบโดยการปรบเปลยนโปรแกรมทใชใน

การทดสอบใหตางไปจากโปรแกรมตนฉบบ (Original Program) โดยในการปรบเปลยนแตละครงจะท าเพยง 1 ต าแหนงเทานน โปรแกรมทไดจากการปรบเปลยนเรยกวาโปรแกรมกลายพนธ (Mutant Program)

ภาพท 2-18 แสดงกระบวนการท างานของการทดสอบแบบกลายพนธ ซงนยมน ามาใชเพอพจารณาประสทธภาพของกรณทดสอบ โดยน าชดกรณทดสอบ (Test Suit) ชดเดยวกนมาด าเนนการปฏบตกบโปรแกรมตนฉบบ (Original Program) และโปรแกรมกลายพนธ (Mutant Program) เพอเปรยบเทยบผลลพธ หากผลลพธทไดจากโปรแกรมกลายพนธ (Mutant Output) แตกตางจากผลลพธทไดจากโปรแกรมตนฉบบจะเรยกโปรแกรมกลายพนธนนวาโปรแกรมกลายพนธทถกฆา (Killed Mutant) แสดงวากรณทดสอบทใชในการด าเนนการปฏบตกบโปรแกรมกลายพนธ สามารถตรวจจบขอผดพลาดจากโปรแกรมกลายพนธนนได สวนในกรณทผลลพธทไดจากโปรแกรมกลายพนธไมมความแตกตางกบผลลพธทไดจากโปรแกรมตนฉบบ จะเรยกโปรแกรมกลายพนธในลกษณะนวาโปรแกรมกลายพนธทยงมชวตอย (Live Mutant) ส าหรบโปรแกรมกลายพนธทไมสามารถหากรณทดสอบใดๆ มาด าเนนการปฏบตแลวใหผลลพธทแตกตางจากโปรแกรมตนฉบบได จะเรยกโปรแกรมกลายพนธในลกษณะนวาโปรแกรมกลายพนธทสมมล (Equivalent Mutant) และอตราสวนของโปรแกรมกลายพนธทถกฆา ตอจ านวนโปรแกรมกลายพนธทงหมด ลบกบโปรแกรม

Page 38: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

22

กลายพนธทสมมล จะแสดงถงประสทธภาพของกรณทดสอบทสรางขนซงจะแสดงเปนคะแนนการกลายพนธ (Mutation Score) หากคะแนนการกลายพนธมคาเขาใกล 1 หมายถงกรณทดสอบนนมประสทธภาพสง และหากคะแนนการกลายพนธมคาเขาใกลศนย หมายถงกรณทดสอบนนมประสทธภาพคอนขางต า

ภำพท 2-18 Mutation Testing Process [13]

จากภาพท 2-19 โปรแกรมกลายพนธ (Mutant Program) ถกปรบเปลยนใหตาง

จากโปรแกรมตนฉบบ (Original Program) โดยการเปลยนค าสงในบรรทดท 4 จากเครองหมายมากกวา ( > ) เปนเครองหมายนอยกวาหรอเทากบ ( <= ) ซงการปรบเปลยนจะกระท าโดยอาศยตวด าเนนการทเรยกวาตวด าเนนการการกลายพนธ (Mutation Operator) คอรปแบบการด าเนนการเพอจะท าใหโปรแกรมทเกดคาทผดพลาดขน ด าเนนการการกลายพนธจะประกอบไปดวย ตวด าเนนการ (Operator) หลายรปแบบทแตกตางกนส าหรบแตละภาษา ตวอยางรปแบบตางๆ ของ ตวด าเนนการการกลายพนธส าหรบภาษา C# และภาษา Visual Basic แสดงดงตารางท 2-4 เชน AORS (Arithmetic Operations Replacement) เปนการแทนตวด าเนนการทางคณตศาสตรดวยคาทแตกตางไป เชนแทนเครองหมายบวก ( + ) ดวยเครองหมายลบ ( - ) ส าหรบ ROR (Relational Operations Replacement) เปนการแทนตวด าเนนการเชงสมพนธ ดวยคาทแตกตางกนออกไป เชนแทนความสมพนธ AND ดวยความสมพนธ OR เปนตน

Mutation Score = Killed Mutants (Total number of Mutants – Equivalent Mutants)

Page 39: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

23

ภำพท 2-19 ตวอยางโปรแกรมตนฉบบและโปรแกรมกลายพนธ

ตำรำงท 2-4 Mutation Operators [16] Operator Type Name Description Arithmetic AOR arithmetic operations replacement

AOI arithmetic operations insertion AOD arithmetic operations deletion

Relational ROR relational operations replacement Conditional COR conditional operations replacement

COI conditional operations insertion COD conditional operations deletion

Logical LOR logical operations replacement LOI logical operations insertion LOD logical operations deletion

Shift SOR shift operations replacement SOIA shift operations insertion SODA shift operations deletion

Replacement PR parameter replacement LVR local variable replacement

1. int max(int x , int y) 2. { 3. int mx = x; 4. if (x > y) 5. mx = x; 6. else 7. mx = y; 8. return mx; 9. }

Original Program

1. int max(int x , int y) 2. { 3. int mx = x; 4. if (x <= y) 5. mx = x; 6. else 7. mx = y; 8. return mx; 9. }

Mutant Program

Page 40: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

24

จากตารางท 2-4 งานวจยนเลอกใชตวด าเนนการการกลายพนธ (Mutation Operator) ในรปแบบของการแทนท (Replacement) โดยใชประเภทของตวด าเนนการในรปแบบตางๆ ซงพจารณาจากลกษณะโครงสรางของโปรแกรมแตละโปรแกรมไปแทนทโปรแกรมตนฉบบเพอสรางโปรแกรมกลายพนธ

2.6 งำนวจยทเกยวของ

2.6.1 งำนวจยเรอง Application of Genetic Algorithm in Software Testing โดย Praveen Ranjan Srivastava และ Tai-hoon Kim [14]

งานวจยน ไดน าเสนอวธการประยกตใชขนตอนวธเชงพนธกรรมในกระบวนการทดสอบซอฟตแวร เพอเพมประสทธภาพในการทดสอบซอฟตแวร และระบเสนทางทท าใหเกดความผดพลาด โดยใชวธการสรางกราฟควบคมการไหล (Control Flow Graph, CFG) และก าหนดคาน าหนก (Weight) ใหกบเสนทางตางๆในกราฟควบคมการไหล เสนทางทมผลรวมคาน าหนกมากจะเปนเสนทางทท าใหเกดความผดพลาด ในสวนของการด าเนนการทางพนธกรรม งานวจยนใชการไขวเปลยนแบบจดเดยว (Single-point Crossover) ทมอตราสวนของการไขวเปลยน เทากบ 0.8 และมคาคงทการกลายพนธเทากบ 0.3 มาด าเนนการกบโครโมโซมเพอหาชดของขอมลทใชในการทดสอบซอฟตแวรทมประสทธภาพดทสด ในสวนของการประเมนคาความเหมาะสม งานวจยนใชวธการค านวณหาคาน าหนกของแตละโหนดของกราฟควบคมการไหลส าหรบทกๆ เสนทางทใชในการทดสอบ งานวจยชนนพบวา การน าขนตอนวธเชงพนธกรรมมาประยกตใชส าหรบกระบวนการทดสอบซอฟตแวร สามารถชวยในการหาขอผดพลาดทอาจเกดขนจาก การท างานของซอฟตแวรไดอยางมประสทธภาพ

2.6.2 งำนวจยเรอง Automatic Software Structural Testing by Using

Evolutionary Algorithms for Test Data Generations โดย Maha Alzabidi , Ajay Kumar และ A.D. Shaligram [15]

งานวจยน ไดน าเสนอวธการสรางกรณทดสอบแบบอตโนมตโดยใชขนตอนวธววฒนาการ (Evolutionary Algorithms) รวมกบการทดสอบการครอบคลมเสนทางการท างานของโปรแกรม (Path Coverage) โดยใชกราฟควบคมการไหล (Control Flow Graph, CFG) ส าหรบน าเสนอเสนทางส าหรบใชในการทดสอบโปรแกรม ในสวนของการด าเนนการทางววฒนาการงานวจยชนนใชวธการประเมนคาความเหมาะสมของกรณทดสอบท ไดจาก Shifted-Modified-Similarity (SMS) ซงเปนการค านวณคาระยะทางระหวางเสนทางทใชในการทดสอบ เพอน ามาประเมนคาความเหมาะสมใหกบประชากรรนตอไป และในสวนของการด าเนนการทางววฒนาการใชการไขวเปลยน

Page 41: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

25

(Crossover) และการกลายพนธ (Mutation) จากผลการวจยนพบวาการไขวเปลยนแบบ 2 จด (Double-point Crossover) ท าใหเกดประชากรใหมทมประสทธภาพมากกวาการไขวเปลยนแบบจดเดยว (Single-point Crossover) สวนการกลายพนธเมอใชอตราความนาจะเปนในการกลายพนธทมคานอย (งานวจยชนนใชอตราความนาจะเปนในการกลายพนธเทากบ 0.005 :ซงท าใหเกดโอกาสในการกลายพนธทนอยมาก) จะท าใหเกดประชากรทมประสทธภาพดกวาการใชอตราความนาจะเปนในการกลายพนธทมคาสง และงานวจยนยงไดท าการเปรยบเทยบผลทไดจากการสรางกรณทดสอบโดยใชทฤษฎววฒนาการกบการสรางกรณทดสอบแบบสมกบโปรแกรมตวอยาง ไดแก Tri-Class และ Max-Min ผลทไดพบวาการสรางกรณทดสอบโดยใชทฤษฎววฒนาการสามารถสรางกรณทดสอบไดดกวาการสรางกรณทดสอบแบบสม

2.6.3 งำนวจยเรอง Testing Object-Oriented Code Through a Specifications-Based Mutation Engine โดย Pantelis Stylianos Yiasemis และ Andreas S. Andreou [16] งานวจยน น าเสนอการใชการทดสอบแบบกลายพนธ (Mutation Testing) ในการตรวจจบขอผดพลาดทเกดจากโปรแกรมทเขยนขนจากการเขยนโปรแกรมเชงวตถ (Object-Oriented Programming) ในภาษา C# และภาษา Visual Basic โดยสวนใหญการทดสอบแบบกลายพนธ จะถกน ามาใชในการประเมนประสทธภาพของกรณทดสอบ งานวจยนไดพฒนาเครองมอส าหรบใชในการตรวจจบขอผดพลาดทอาจเกดจากการเขยนโปรแกรมโดยใชการทดสอบแบบกลายพนธ ซงเครองมอทพฒนาขนจะมในสวนของการก าหนดตวด าเนนการการกลายพนธ (Mutation Operator) โดยใหผใชเปนผก าหนดเพอน ามาใชประเมนประสทธภาพของกรณทดสอบทสรางขน ลกษณะการด าเนนการของการใชการทดสอบแบบกลายพนธ คอจะปรบเปลยนโปรแกรมทใชในการทดสอบใหตางไปจากโปรแกรมตนฉบบไปตามประเภทของตวด าเนนการการกลายพนธ และในงานวจยชนนยงไดท าการเปรยบเทยบจ านวนของการทดสอบแบบกลายพนธ ในการทดลองกบโปรแกรมทเขยนดวยภาษา C# และภาษา Visual Basic โดยงานวจยชนนพบวา จ านวนของการทดสอบแบบกลายพนธ ทไดจากการทดสอบของโปรแกรมทเขยนดวยภาษาทงสองภาษาไมมความแตกตางกน และเครองมอทน าเสนอสามารถทจะคนหาขอผดพลาดทเกดจากการเขยนโปรแกรมไดอยางมประสทธภาพ

Page 42: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

26

จากการศกษางานวจยทเกยวของทง 3 ชนนท าใหผวจยไดแนวทางในการท าวทยานพนธฉบบนจากหลกการการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมจากงานวจยชนท 1 ไดน าแนวคดการทดสอบซอฟตแวรในระดบการทดสอบการครอบคลมเสนทางการท างานจากงานวจยชนท 2 และไดแนวคดส าหรบการประเมนประสทธภาพของกรณทดสอบโดยใชการทดสอบแบบกลายพนธจากงานวจยชนท 3

Page 43: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

27

บทท 3

วธกำรด ำเนนกำรวจย

3.1 กำรวเครำะหและออกแบบขนตอนกำรสรำงกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม ขนตอนการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม แสดงดงภาพท 3-1

ประกอบดวย 2 ขนตอนหลก คอ 1) การสรางกราฟควบคมการไหลและระบเสนทางเปาหมาย (Generating Control

Flow Graph and Specifying Target Paths) 2) การสรางกรณทดสอบ (Generating Test Cases)

Program Generating Control Flow Graph

and Specifying Target Paths

GA Execution

Coveraged all Paths

Selecting the Target Path

No

Yes

Generating Test Cases

Begin

End

Test Case

ภำพท 3-1 แผนภาพแสดงกรอบแนวคดขนตอนการสรางกรณทดสอบโดยใช

ขนตอนวธเชงพนธกรรม

Page 44: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

28

3.2 กำรสรำงกรำฟควบคมกำรไหลและระบเสนทำงเปำหมำย (Generating Control Flow Graph and Specifying Target Paths)

ขนตอนการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมจะเรมจากการสรางกราฟควบคมการไหลของโปรแกรมทตองการหากรณทดสอบและท าการพจารณาเสนทางการท างานของโปรแกรมทงหมดจากกราฟควบคมการไหลเพอทจะระบเสนทาง (Paths) ส าหรบการสรางกรณทดสอบส าหรบแตละเสนทาง ซงเสนทางทระบจะตองครอบคลมทกๆ เงอนไขการท างานของโปรแกรม โดยขนตอนนจะประกอบดวย 2 ขนตอนยอย คอ ขนตอนการสรางกราฟควบคมการไหลและขนตอนการระบเสนทางเปาหมาย

1) ขนตอนกำรสรำงกรำฟควบคมกำรไหล (Generating Control Flow Graph) การสรางกราฟควบคมการไหลจะพจารณาจากรหสตนฉบบ (Source Code) ของ

โปรแกรมทตองการทดสอบ โดยกราฟควบคมการไหลถกสรางขนตามหลกการทไดน าเสนอโดย Amman และ Offutt [8] ภาพท 3-2 แสดงตวอยางรหสตนฉบบของโปรแกรมหาคาสงสดและต าสด (Max - Min) ทตองการทดสอบ ภาพท 3-3 แสดงกราฟควบคมการไหลของโปรแกรมหาคาสงสดและต าสด (Max - Min)

S

1

2

3 5

7

10

11

E

8

T F

T

F

T

F

1 Dim a , b , c , max , min As Double

2 If a > b Then

3 max = a : min = b

4 Else

5 max = b : min = a

6 End If

7 If max < c Then

8 max = c

9 End If

10 If max > c Then

11 min = c

12 End If

ภำพท 3-2 ตวอยางรหสตนฉบบของโปรแกรมหาคาสงสดและต าสด (Max - Min)

ภำพท 3-3 กราฟควบคมการไหลของโปรแกรม หาคาสงสดและต าสด (Max - Min)

Page 45: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

29

2) ขนตอนกำรระบเสนทำงเปำหมำย (Specifying Target Paths) กราฟควบคมการไหลจากขนตอนท 1 จะถกน ามาใชเพอระบเสนทางเปาหมาย

(Target Paths) ทใชในการหากรณทดสอบส าหรบแตละเสนทาง ส าหรบเสนทางเปาหมายในงานวจยนจะพจารณาในระดบการครอบคลมเสนทาง (Path Coverage - PC) [8] ซงจะพจารณาการทดสอบใหครอบคลมทกๆ เสนทางการท างาน ตวอยางกราฟควบคมการไหลในภาพท 3-3 สามารถระบเสนทางเปาหมายส าหรบใชในการทดสอบไดทงหมด 8 เสนทาง ดงภาพท 3-4

Path 1 S 1 2T 3 7T 8 10T 11 E Path 2 S 1 2T 3 7T 8 10F E Path 3 S 1 2T 3 7F 10T 11 E Path 4 S 1 2T 3 7F 10F E Path 5 S 1 2F 5 7T 8 10T 11 E Path 6 S 1 2F 5 7T 8 10F E Path 7 S 1 2F 5 7F 10T 11 E Path 8 S 1 2F 5 7F 10F E

ภำพท 3-4 เสนทางเปาหมายทงหมดของโปรแกรม หาคาสงสดและต าสด (Max - Min)

3.3 กำรสรำงกรณทดสอบ (Generating Test Cases)

การสรางกรณทดสอบจะถกด าเนนการโดยใชหลกการขนตอนวธเชงพนธกรรมโดยเรมจากการเลอกเสนทางเปาหมายทตองการพจารณาเพอหากรณทดสอบ (Select Considering Target Path) แลวเขาสกระบวนการท างานของขนตอนปฏบตการวธเชงพนธกรรม (GA Execution) เพอคนหากรณทดสอบส าหรบเสนทางเปาหมายทก าลงพจารณา ภาพท 3-5 แสดงขนตอนปฏบตการขนตอนวธเชงพนธกรรม โดยขนตอนการเลอกเสนทางเปาหมายและการด าเนนการขนตอนปฏบตการขนตอนวธเชงพนธกรรม จะถกกระท าซ าๆ จนกระทงครบทกเสนทางเปาหมาย ในแตละรอบของการท างานซ า เสนทางเปาหมายทถกเลอกจะเรยกวา เสนทางเปาหมายทก าลงพจารณา (Traversal Path)

Page 46: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

30

Found

Test Case ?

Initial Test Cases

Yes

Coverage

Evaluation

Stop

GA Execution

Selection

Replacement

Crossover

Mutation

Coverage

Evaluation

Found

Test Case ?

Selection

Yes

No

No

ภำพท 3-5 GA Execution

จากภาพท 3-5 แสดงขนตอนการประยกตใชขนตอนวธเชงพนธกรรมใน

กระบวนการสรางกรณทดสอบซงมกระบวนการตางๆ ดงน ขนตอนท 1 กำรสรำงกลมกรณทดสอบตนก ำเนด (Initial Test Cases) กลมกรณทดสอบตนก าเนด (กลมประชากรตนก าเนด) จะถกสรางขนเพอเปน

จดเรมตนส าหรบการปรบเปลยนตามหลกการถายทอดลกษณะทางพนธกรรมใหกบกลมกรณทดสอบรนตอไป โดยกลมกรณทดสอบตนก าเนดจะถกสรางขนโดยใชวธการแบงสวนทสมดล (Equivalence Partitioning) [8] โดยขอมลน าเขาของโปรแกรมทตองการทดสอบแตละตวจะถกแบงสวนออกเปนกลมๆ กรณทดสอบตนก าเนดหนงกรณ ไดจากการน าสวนใดสวนหนงของขอมลน าเขาทกตวมารวมกน ดงนนหนงกรณทดสอบตนก าเนด (กลมประชากรตนก าเนด) หมายถงหนงชด

Page 47: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

31

ขอมลทดสอบ ซงจ านวนตวแปรของหนงชดขอมลทดสอบเทากบจ านวนโครโมโซมของหนงประชากร โดยทโครโมโซมของหนงประชากร (ขอมลน าเขา) อาจมชนดของขอมล (Data Type) ทแตกตางกน ซงการแบงสวนทสมดลส าหรบแตละชนดขอมลกแตกตางกนดวย ตวอยางเชน

1) การแบงสวนทสมดลส าหรบขอมลประเภทจ านวนเตม (Integer) และจ านวนทศนยม (Double) สามารถแบงสวนของขอมลออกเปน 3 กลม คอ มากกวา , นอยกวา และเทากบศนย

2) การแบงสวนทสมดลส าหรบขอมลประเภทรหสอกขระ (Character) สามารถแบงสวนของขอมลออกเปน 2 กลม คอ รหสอกขระ และคาวาง

3) การแบงสวนทสมดลส าหรบขอมลประเภทขอความ (String) สามารถแบงสวนของขอมลออกเปน 2 กลม คอ ขอความ และคาวาง

4) การแบงสวนทสมดลส าหรบขอมลประเภทคาความจรง (Boolean) สามารถแบงสวนของขอมลออกเปน 2 กลม คอ คาจรง (True) และคาเทจ (False)

โดยการก าหนดกลมของกรณทดสอบเรมตน จะก าหนดตามหลกการ Each Choice (EC) ทถกน าเสนอโดย Amman และ Offutt [8] โดยหลกการนก าหนดใหแตละสวนทถกแบง จะตองถกใชอยางนอย 1 ครงในการทดสอบ

ตวอยางโปรแกรมหาคาสงสดและต าสด (Max - Min) ซงมขอมลน าเขาคอ a, b และ c โดยทงสามเปนขอมลประเภทจ านวนทศนยม (Double) จากหลกการแบงสวนทสมดลสามารถสามารถแบงสวน (Partition) ขอมลน าเขาแตละตวออกเปน 3 กลม คอ มากกวา, นอยกวา และเทากบศนย เมอก าหนดกลมของชดขอมลเรมตนตามหลกการ Each Choice (EC) จะไดชดขอมลทใชส าหรบโปรแกรมหาคาสงสดและต าสด (Max - Min) ประกอบดวย 3 ชดขอมล คอ {a < 0.0 , b < 0.0 , c < 0.0}, {a = 0.0 , b = 0.0 , c = 0.0} และ {a > 0.0 , b > 0.0 , c > 0.0} จากนนท าการสมคาของขอมลทสอดคลองกบชวงของขอมลทก าหนดไว ตวอยางการสมคาขอมลแสดงดงตารางท 3-1

ตำรำงท 3-1 กลมกรณทดสอบตนก าเนด ส าหรบการทดสอบโปรแกรมหาคาสงสดและต าสด ตวแปร

ชดขอมล a b c

1 -2.2 -1.4 -4.5 2 0.0 0.0 0.0 3 3.7 2.4 5.3

Page 48: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

32

ขนตอนท 2 กำรประเมนคำควำมครอบคลม (Coverage Evaluation) การประเมนคาความครอบคลมจะพจารณาจากการประเมนคาความครอบคลม

เสนทางเปาหมายของกลมกรณทดสอบ ส าหรบงานวจยนการประเมนคาความครอบคลมใชวธการค านวณหาคา Distance [2] ของค าสงทเปนเงอนไขในการท างานของโปรแกรม ตามทฤษฏ Korel’s distance function ดงแสดงในตารางท 2-2 โดยขนตอนการประเมนคาความครอบคลม แสดงดงภาพท 3-6

Execute Program

Is Different ?

Traversal Path

Compare Traversal Path

with Target Path

No

YesCalculate Branch Distance

Stop

Test Data

Distance of

Traversal Path

ภำพท 3-6 ขนตอนการประเมนคาความครอบคลม

จากภาพท 3-6 ขนตอนจะเรมตนจากการน าชดขอมลทดสอบ (Test Data) ทได

จากขนตอนกอนหนา มาปฏบตกบโปรแกรมทตองการทดสอบ (Execute Program) โดยชดขอมลแตละชดจะใหเสนทางการท างาน (Traversal Path) ของขอมลชดนน จากนนน าเสนทางการท างานมาเปรยบเทยบกบเสนทางเปาหมาย (Target Path) โดยจะท าการเปรยบเทยบเฉพาะสวนของโปรแกรมทเปนค าสงเงอนไขการตดสนใจ (Decision) ในกรณทสวนทเปนค าสงเงอนไขการตดสนใจของเสนทางการท างานไมแตกตางกบเสนทางเปาหมายทก าลงพจารณา จะไมท าการค านวณคา Branch Distance แตในกรณทสวนทเปนค าสงเงอนไขการตดสนใจของเสนทางการท างาน แตกตางจากเสนทางเปาหมายทก าลงพจารณา จะท าการค านวณคา Branch Distance ตามประเภทของค าสงทเปนเงอนไขตามทฤษฎของ Korel’s distance function ดงแสดงในตารางท 2-2

Page 49: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

33

ตวอยางเชน จากภาพท 3-2 รหสตนฉบบของโปรแกรมหาคาสงสดและต าสด (Max - Min) เมอก าหนดใหเสนทางท 3 เปนเสนทางเปาหมายส าหรบการสรางกรณทดสอบคอเสนทาง

Path 3 : S , 1 , 2T , 3 , 7F , 10T , 11 , E สามารถเขยนกราฟควบคมการไหลแสดงเสนทางเปาหมายทตองการทดสอบได ดง

ภาพท 3-7

เงอนไขการท างานส าหรบเสนทางเปาหมาย Path 3 ทงหมดแสดงดงตารางท 3-2

ตำรำงท 3-2 Predicate Path ทตองพจารณาจากภาพท 3-7 Predicate

Path Predicate Branch

Distance 2T a > b b - a 7F max < c max - c 10T max > c c - max

ตวอยางชดขอมลทไดจากการสมกรณทดสอบตนก าเนดในตารางท 3-1 ถกน ามา

พจารณากบเสนทางเปาหมายทก าหนด ดงน

Target Missed

Branch Distance = c - max

Target Missed

Branch Distance = max - c

false

Target Missed

Branch Distance = b - a

false

false

true

true

true 2

if a > b

7

if max < c

10

if max > c

TARGET

ภำพท 3-7 กราฟควบคมการไหลแสดงเสนทางเปาหมาย

Page 50: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

34

ชดขอมลท 1 : a = -2.2 , b = -1.4 , c = -4.5 เสนทางส าหรบชดขอมลท 1 คอ TR(1) = S , 1 , 2F , 5 , 7F , 10T , 11 , E เมอพจารณาพบวา Predicate ทตองพจารณาคอ 2F Distance(TR(1)1) = b – a = (-1.4) – (-2.2) = 0.8

ดงนน Distance(TR(1)) = Distance(TR(1)1) = 0.8 ชดขอมลท 2 : a = 0.0 , b = 0.0 , c = 0.0 เสนทางส าหรบชดขอมลท 2 คอ TR(2) = S , 1 , 2F , 5 , 7F , 10F , E เมอพจารณาพบวา Predicate ทตองพจารณาคอ 2F และ 10F Distance(TR(2) 1) = b – a = 0.0 - 0.0 = 0.0 Distance(TR(2)2) = c – max = 0.0 - 0.0 = 0.0

ดงนน Distance(TR(2)) = Distance(TR(2)1) + Distance(TR(2)2) = 0.0 + 0.0 = 0.0

ชดขอมลท 3 : a = 3.7 , b = 2.4 , c = 5.3 เสนทางส าหรบชดขอมลท 3 คอ TR(3) = S , 1 , 2T , 3 , 7T , 8 , 10F , E เมอพจารณาพบวา Predicate ทตองพจารณาคอ 7T และ 10F Distance(TR(3) 1) = max – c = 3.7 – 5.3 = -1.6 Distance(TR(3)2) = c – max = 5.3 – 5.3 = 0.0

ดงนน Distance(TR(3)) = Distance(TR(3)1)+Distance(TR(3)2) = (-1.6)+0.0 = -1.6 คาความครอบคลมทไดจากการพจารณาค าสงทเปนเงอนไขการตดสนใจของแตละ

ชดขอมลจะถกน าไปพจารณาเพอเขาสกระบวนการคดเลอกทางพนธกรรมตอไปเพอสรางเปนชดขอมลหรอกลมกรณทดสอบเพอท าการคนหาชดของขอมลทเปนกรณทดสอบทมความเหมาะสมกบเสนทางเปาหมายทก าลงพจารณา โดยกรณทชดขอมลใดใหเสนทางเหมอนกบเสนทางเปาหมายทก าลงพจารณาแสดงวาชดขอมลนนเปนชดขอมลทครอบคลมเสนทางเปาหมายทก าลงพจารณา ในกรณนจะเปนกรณทพบชดขอมลทดสอบ (เงอนไข Found Test Case เปนจรง) จะมผลใหขนตอนปฏบตการขนตอนวธเชงพนธกรรมยต แตในกรณทไมสามารถหากรณทดสอบ ข นตอนปฏบตการขนตอนวธเชงพนธกรรมจะยตเมอครบจ านวนรอบทก าหนดไว

Page 51: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

35

ขนตอนท 3 การคดเลอก (Selection) จากการด าเนนการในขนตอนท 2 จะไดคา Branch Distance ส าหรบแตละชด

ขอมล ซงการคดเลอกจะกระท าการคดเลอกชดขอมลเพอน ามาเปนประชากรรนพอแม โดยเลอกชดขอมลทใหคาความเหมาะสมนอย ซงหมายถงชดขอมลทใหคา Branch Distance นอยทสด

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

ตำรำงท 3-3 ตวอยางการเรยงล าดบคา Branch Distance ใหมจากนอยไปมาก ตวแปร

ชดขอมล a b c Distance

1 3.7 2.4 5.3 -1.6 2 0.0 0.0 0.0 0.0 3 -2.2 -1.4 -4.5 0.8

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

ส าหรบเสนทางเปาหมายทก าลงพจารณาตอไป ขนตอนท 4 การไขวเปลยน (Crossover) การไขวเปลยนจะด าเนนการโดยเลอกชดขอมลทใหคา Branch Distance นอย

ทสด 2 ล าดบแรก เนองจากจ านวนตวแปรหรอจ านวนโครโมโซมของชดขอมลมจ านวนไมมาก ดงนนการท าการไขวเปลยนจงใชวธการไขวเปลยนแบบจดเดยว (Single-Point Crossover) ซงจะท าใหไดชดขอมลใหม 2 ชดขอมล ตวอยางเชน ชดขอมลทถกเลอกมาคอ {x1 , x2 , x3 , x4} และ {y1 , y2 , y3 , y4} จะท าการไขวเปลยนชดขอมลทงสอง ณ ต าแหนงท 4 ดงนนจะไดชดขอมลใหม คอ {x1 , x2 , x3 , y4} และ {y1 , y2 , y3 , x4}

จากการด าเนนการในขนตอนท 3 จะไดชดขอมลใหมมาเปนประชากรตนก าเนด ส าหรบงานวจยนจะท าการสมต าแหนงทจะท าการไขวเปลยนมา 1 คา ตวอยางเชน สมไดตวเลข 2 ดงนนจากชดขอมลดงตารางท 3-3 และท าการไขวเปลยนแบบจดเดยวในต าแหนงท 2 ซงท าใหไดชดของขอมลใหม ดงตารางท 3-4

Page 52: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

36

ตำรำงท 3-4 แสดงการไขวเปลยนแบบจดเดยวทต าแหนงท 2

ชดขอมล ตวแปร

a b c

1 3.7 0.0 0.0 2 0.0 2.4 5.3 3 -2.2 -1.4 -4.5

หลงจากท าการไขวเปลยนจะไดกลมประชากรใหมดงตารางท 3-4 ซงจะใชเปนกลม

ประชากรตนก าเนดเพอน ามาพจารณากบเสนทางเปาหมายทก าลงพจารณาตอไป โดยจะเขาสขนตอนท 2 การประเมนคาความครอบคลม (Coverage Evaluation) อกครง ซงในการประเมนคาความครอบคลม ในกรณทพบชดขอมลทดสอบจะมผลใหขนตอนปฏบตการในขนตอนวธเชงพนธกรรมยต แตในกรณทไมพบชดขอมลทดสอบจะไปด าเนนการในขนตอนถดไป

จากขอมลในตารางท 3-4 เมอพจารณาเสนทางทเกดขนกบขอมลขดท 1 พบวาเปนเสนทางเดยวกนกบเสนทางเปาหมาย ดงนนจงมผลใหขนตอนปฏบตการในขนตอนวธเชงพนธกรรมยต และกรณทดสอบส าหรบเสนทางเปาหมาย S , 1 , 2T , 3 , 7F , 10T , 11 , E คอ a = 3.7 , b = 0.0 และ c = 0.0

ขนตอนท 5 การกลายพนธ (Mutation) การกลายพนธจะกระท าโดยเลอกชดขอมลทใหคา Branch Distance นอยทสด

เพอท าการกลายพนธแบบจดเดยว (Single-Point Mutation) ซงจะท าใหไดชดขอมลใหม 1 ชดขอมล ตวอยางเชน ชดขอมลทถกเลอกมาคอ {x1 , x2 , x3 , x4} จะท าการกลายพนธ ณ ต าแหนงท 2 ดวยคา xmดงนนจะไดชดขอมลใหม คอ {x1 , xm , x3 , x4}

โดยทต าแหนงหรอโครโมโซมทจะกระท าการกลายพนธ จะไดจากการคดเลอกโดยวธการสม เนองจากจ านวนตวแปรหรอโครโมโซมของชดขอมลมจ านวนไมมาก ดงนนจงด าเนนการกลายพนธเพอสรางชดขอมลใหมโดยใชการกลายพนธแบบจดเดยว โดยจะท าการสมต าแหนงทจะท าการกลายพนธมา 1 ต าแหนง แลวเลอกชดขอมลทใหคาความเหมาะสมนอย ซงหมายถงชดขอมลทใหคา Branch Distance นอยทสดเพอเปนชดขอมลทใชในการกลายพนธ

ต าแหนงทท าการไขวเปลยน

Page 53: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

37

จากการด าเนนการในขนตอนท 3 จะไดชดขอมลใหมมาเปนประชากรตนก าเนด ส าหรบงานวจยนจะท าการสมต าแหนงทจะท าการกลายพนธมา 1 คา ตวอยางเชน สมไดตวเลข 3 ดงนนเมอท าการกลายพนธชดขอมลจากตารางท 3-3 โดยใชการกลายพนธแบบจดเดยวในต าแหนงท 3 จะท าใหไดชดของขอมลใหม ดงตารางท 3-5 ซงจะเปลยนชดขอมลท 1 ในต าแหนงท 3 จากขอมลเดม 5.3 เปน 7.6

ตำรำงท 3-5 แสดงการกลายพนธแบบจดเดยวทต าแหนงท 3

ชดขอมล ตวแปร

a b c

1 3.7 2.4 7.6 2 0.0 0.0 0.0 3 -2.2 -1.4 -4.5

หลงจากการกลายพนธจะไดกลมประชากรใหมดงตารางท 3-5 ซงจะใชเปนกลม

ประชากรตนก าเนดเพอน ามาพจารณากบเสนทางเปาหมายทก าลงพจารณาตอไป โดยจะเขาสขนตอนท 2 การประเมนคาความครอบคลม (Coverage Evaluation) อกครง ซงในการประเมนคาความครอบคลม ในกรณทพบชดขอมลทดสอบจะมผลใหขนตอนปฏบตการในขนตอนวธเชงพนธกรรมยต แตในกรณทไมพบชดขอมลทดสอบจะไปด าเนนการในขนตอนถดไปเรอยๆจนกวาจะพบชดขอมลทดสอบหรอครบจ านวนรอบการท างานทก าหนดไว

ต าแหนงทท าการกลายพนธ

Page 54: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

38

บทท 4

ผลกำรด ำเนนงำนวจย 4.1 กำรออกแบบและพฒนำเครองมอตนแบบส ำหรบสรำงกรณทดสอบ

การพฒนาเครองมอเพอใชในการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม พฒนาโดยใช Microsoft Visual Studio 2010 และใชภาษา Visual Basic ในการพฒนา โดยเครองมอทพฒนาขนอยในรปแบบของวนโดวแอพลเคชน (Windows Application) ผวจยไดออกแบบและพฒนาใหรองรบหลกการท างานของขนตอนทไดน าเสนอ รายละเอยดของเครองมอทพฒนาขนมดงน

4.1.1 กรอบกำรท ำงำนของเครองมอทพฒนำ เครองมอทพฒนาขนมสวนการท างานหลกๆ 2 สวน แสดงดงภาพท 4-1 ม

รายละเอยด ดงน

Program Generating Control Flow Graph

and Specifying Target Paths

Test Cases

Input

GA Parameters

Test cases Generation

Target Path &

Predicate Type

Instrumented

Program (.txt)

System

Genetic Algorithm

ภำพท 4-1 แสดงกรอบการท างานของเครองมอทพฒนา

1

2

Page 55: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

39

สวนท 1 Input เปนสวนของขอมล Input เขาสระบบ ซงเปนขอมลทมาจากการสรางกราฟควบคมการไหลและระบเสนทางเปาหมายจากรหสโปรแกรมตนฉบบ โดยจะแบงขอมล Input ออกเปน 3 สวนคอ

1) การก าหนดคาตงตนของขนตอนวธเชงพนธกรรม (GA Parameters) 2) การระบเสนทางเปาหมายและ Predicate Type ส าหรบเสนทางทก าลงทดสอบ

(Target Path & Predicate Type) โดยในการหากรณทดสอบส าหรบแตละเสนทางเปาหมายใดจะตองมการระบ Predicate Type ส าหรบเสนทางเปาหมายนนกอนทกครง

3) โปรแกรมตนฉบบทถกสอดแทรกเพมเตมค าสง (Instrumented Program) เพอระบเสนทางทไดจากกราฟควบคมการไหลทงหมด ซงโปรแกรมนถกจดเกบในรปแบบ Text File (.txt) ตวอยางโปรแกรมตนฉบบและค าสงทถกเพม แสดงดงภาพท 4-2

ภำพท 4-2 ตวอยางรหสโปรแกรมตนฉบบในรปแบบ Text File สวนท 2 System เปนสวนการท างานภายในระบบ ซงเปนสวนทพฒนาขนเพอ

ท าการสรางกรณทดสอบใหกบโปรแกรมท Input เขาสระบบ โดยใชขนตอนวธเชงพนธกรรมในการด าเนนการสรางกรณทดสอบ

Page 56: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

40

4.1.2 กำรออกแบบสวนตดตอกบผใช เครองมอทพฒนาขนมสวนตดตอผใชงานและสวนการแสดงผลตางๆ ดงภาพท 4-3

ภำพท 4-3 หนาจอการท างานในสวนการตดตอกบผใช

จากภาพท 4-3 หนาจอการท างานในสวนการตดตอกบผใชจะแบงออกเปน 5 สวน ซงสมพนธกบขนตอนการสรางกรณทดสอบ ดงน

Page 57: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

41

ขนตอนท 1 กำรอพโหลดไฟล (Upload File) ขนตอนการอพโหลดไฟลรหสตนฉบบเพอใหเครองมอท าการสรางกรณทดสอบ โดย

ใชหนาจอสวนของเครองมอทพฒนาหมายเลข ซงประเภทของไฟลทใชในการอพโหลดเพอทดสอบจะตองเปน Text File (.txt) ซงเปนไฟลทถกจดเตรยมไวโดยน าไฟลโปรแกรมตนฉบบภาษา Visual Basic มาสอดแทรกเพมเตมค าสงเพอระบเสนทางตามกราฟควบคมการไหลในลกษณะขอความ (String) ตวอยางการสอดแทรกเพมเตมค าสงเพอระบเสนทางทตองการทดสอบแสดงกงภาพท 4-4

ภำพท 4-4 ตวอยางไฟลโปรแกรมหาคาสงสดและต าสด (Max - Min) ทมการระบเสนทางตามกราฟควบคมการไหล

1 Dim a , b , c , max , min As Integer Dim path As String

path = “S 1” 2 If a > b Then

path &= " 2T 3" 3 max = a : min = b

4 Else

path &= " 2F 5" 5 max = b : min = a

6 End If

7 If max < c Then

path &= " 7T 8" 8 max = c

Else path &= " 7F"

9 End If

10 If max > c Then

path &= " 10T 11"

Else path &= " 10F"

11 min = c

12 End If

path &= " E"

S

1

2

3 5

7

10

11

E

8

T F

T

F

T

F

Page 58: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

42

ขนตอนท 2 กำรก ำหนดคำตงตนในกระบวนกำรขนตอนวธเชงพนธกรรม สามารถก าหนดคาตงตนใหกบการด าเนนการในกระบวนการขนตอนวธเชง

พนธกรรมโดยใชหนาจอสวนของเครองมอทพฒนาหมายเลข ซงคาตงตนทสามารถก าหนดได มดงน

1) Number of Parameters คอ จ านวนของพารามเตอรหรอตวแปรทตองการหากรณทดสอบ

2) Number of Generations คอ จ านวนสงสดของรนประชากรทก าหนด เปนคาทแสดงถงจ านวนรอบทจะใชในการประมวลผลเพอการคนหาค าตอบ

3) Crossover Probability คอ อตราความนาจะเปนทจะเกดการไขวเปลยนของกลมประชากร ซงจะมคาอยระหวาง 0 ถง 1 หากก าหนดอตราการไขวเปลยนเปน 1 แสดงวาจะเกดกระบวนการไขวเปลยนในทกรอบ สวนกรณทก าหนดอตราการไขวเปลยนเปน 0 แสดงวาไมมโอกาสเกดกระบวนการไขวเปลยน

4) Mutation Probability คอ อตราความนาจะเปนทจะเกดการกลายพนธ จะมคาอยระหวาง 0 ถง 1 หากก าหนดอตราการกลายพนธเปน 1 แสดงวาจะเกดกระบวนการกลายพนธหลงจากการไขวเปลยนทกครง สวนกรณทก าหนดอตราการกลายพนธเปน 0 แสดงวาไมมโอกาสเกดกระบวนการไขวเปลยน

5) Chromosome Type คอ ประเภทของขอมล Input ทใชส าหรบสรางกรณทดสอบซงเปนประเภทหรอชนดของขอมล เชน จ านวนเตม (Integer), จ านวนทศนยม (Double), รหสอกขระ (Character), ขอความ (String) เปนตน

ขนตอนท 3 กำรก ำหนดเสนทำงเปำหมำยทตองกำรสรำงกรณทดสอบ เสนทางเปาหมายทงหมดส าหรบใชในการสรางกรณทดสอบระบลงในเครองมอท

พฒนาขนโดยใชหนาจอสวนของเครองมอทพฒนาหมายเลข ขนตอนท 4 กำรระบ Predicate Type ใหกบค ำสงทเปนเงอนไข

ระบ Predicate type ส าหรบค าสงทเปนเงอนไขโดยใชหนาจอสวนของเครองมอทพฒนาหมายเลข

Page 59: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

43

ขนตอนท 5 กำรสรำงกรณทดสอบ เมอระบขอมลทจ าเปนลงในเครองมอทพฒนาครบถวนแลว กจะเขาสกระบวนการ

สรางกรณทดสอบ โดยเครองมอทพฒนาขนจะท าการสรางกรณทดสอบใหกบโปรแกรมทไดระบไวในขนตอนท 1 และจะท าการสรางกรณทดสอบส าหรบเสนทางเปาหมายทก าลงพจารณาซงก าหนดไวในขนตอนท 3 โดยระบบจะท าการคนหากรณทดสอบทมความเหมาะสมใหกบเสนทางทก าลงพจารณาจนกวาจะพบค าตอบหรอจนกวาจะครบเงอนไขการก าหนดคาตงตนทไดก าหนดไวในขนตอนท 2 โดยหนาจอสวนทแสดงผลการสรางกรณทดสอบใชหนาจอสวนของเครองมอทพฒนาหมายเลข

ปมการท างานทจ าเปนส าหรบการสรางกรณทดสอบ แสดงดงภาพท 4-5 ซงแตละ

ปมมรายละเอยดการท างาน ดงน 1. Setting : ซอน / แสดง สวนของการตงคาการใชงาน 2. Start : เรมการประมวลผล 3. Clear : ลางหนาจอแสดงผลการท างานของโปรแกรม 4. Export : สงออกผลการท างานของโปรแกรมในรปแบบไฟล MS Excel

ภำพท 4-5 ปมการท างาน

เมอระบเสนทางเปาหมายทตองการทดสอบ แลวกดปม Start เครองมอจะท าการคนหากรณทดสอบทเหมาะสมกบเสนทางเปาหมายทระบ โดยภาพท 4-6 แสดงหนาจอรายละเอยดการท างานของขนตอนวธเชงพนธกรรม โดยจะแสดงรายละเอยดตางๆ ดงน

1) Operation คอ กระบวนการในขนตอนวธเชงพนธกรรม ไดแก Initial, Crossover และ Mutation

2) Data คอ ชดของขอมลทเกดขนระหวางการคนหากรณทดสอบ 3) Traversal Path คอ เสนทางทเกดขนระหวางการคนหากรณทดสอบ 4) Fitness คอ คาความเหมาะสมทเกดขนระหวางการคนหากรณทดสอบ

ภาพท 4-7 แสดงหนาจอแสดงผลการหากรณทดสอบ

Page 60: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

44

ภำพท 4-6 หนาจอแสดงรายละเอยดการการปฏบตการด าเนนการทางพนธกรรมในการหากรณทดสอบส าหรบเสนทางเปาหมายทระบ (Execution Detail)

ภำพท 4-7 หนาจอแสดงผลการหากรณทดสอบ

4.2 ผลกำรสรำงกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมจำกเครองมอทพฒนำ ทดสอบการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมดวยเครองมอทพฒนา

โดยใชโปรแกรมเพอเปนกรณศกษา 4 โปรแกรม ซงมขอมลน าเขาทแตกตางกน ดงน 1) โปรแกรมค านวณคาสงสดและคาต าสด ขอมลเขาประเภทจ านวนทศนยม

(Double) 2) โปรแกรมค านวณหาประเภทของรปสามเหลยม ขอมลเขาประเภทจ านวนเตม

(Integer) 3) โปรแกรมค านวณหาคากลางของขอมล ขอมลเขาประเภทรหสอกขระ

(Character) 4) โปรแกรมตรวจสอบขอความ Palindrome ซงเปนขอความทสะกดเหมอนเดม

จากหนาไปหลงหรอจากหลงไปหนา ขอมลเขาประเภทขอความ (String)

Page 61: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

45

จากผลการทดลอง พบวาขนตอนวธเชงพนธกรรมสามารถน ามาประยกตใชในการสรางกรณทดสอบในกระบวนการพฒนาซอฟตแวรได ซงในการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม ก าหนดรอบในการท างานเพอคนหากรณทดสอบทครอบคลมเสนทางทตองการทดสอบจ านวน 100 รอบ, ก าหนดอตราความนาจะเปนในการไขวเปลยนเปน 1 และก าหนดอตราความนาจะเปนในการกลายพนธเปน 1 สามารถแสดงผลไดดงตารางท 4-1 – ตารางท 4-5

ตารางท 4-1 แสดงเสนทางส าหรบการทดสอบโปรแกรมค านวณคาสงสดและคา

ต าสดมเสนทางเปาหมายทงหมด 8 เสนทาง มเสนทางทสามารถหากรณทดสอบทไดจ านวน 6 เสนทาง ไมสามารถหากรณทดสอบไดจ านวน 2 เสนทาง คดเปน 75 %

ตำรำงท 4-1 กรณทดสอบทไดจากโปรแกรมค านวณคาสงสดและคาต าสด

Test Case

Target Path Result Input Result

a b c 1 S 1 2T 3 7T 8 10T 11 E Not Found - - - 2 S 1 2T 3 7T 8 10F E Found 3.05 1.64 3.63 3 S 1 2T 3 7F 10T 11 E Found 8.76 3.74 2.85 4 S 1 2T 3 7F 10F E Found 9.77 0.13 9.77 5 S 1 2F 5 7T 8 10T 11 E Not Found - - - 6 S 1 2F 5 7T 8 10F E Found 2.48 5.96 7.35 7 S 1 2F 5 7F 10T 11 E Found 2.20 8.75 1.39 8 S 1 2F 5 7F 10F E Found 0.0 0.0 0.0

เสนทางทไมสามารถหากรณทดสอบไดส าหรบโปรแกรมค านวณคาสงสดและคา

ต าสด มทงสน 2 เสนทาง เมอพจารณาจะพบวาเสนทางเปาหมายเสนทางท 1 และเสนทางเปาหมายท 5 เปนเสนทางทไมสามารถเขาถงได (infeasible path) เนองจากทงสองเสนทางนก าหนดใหทงเงอนไข max < c และ max > c เปนจรงทงคซงเปนไปไมได

ตารางท 4-2 แสดงเสนทางส าหรบการทดสอบโปรแกรมค านวณหาประเภทของรป

สามเหลยมมเสนทางเปาหมายทงหมด 8 เสนทาง มเสนทางทสามารถหากรณทดสอบทไดจ านวน 4 เสนทาง ไมสามารถหากรณทดสอบไดจ านวน 4 เสนทาง คดเปน 50 %

Page 62: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

46

ตำรำงท 4-2 กรณทดสอบทไดจากโปรแกรมค านวณหาประเภทของรปสามเหลยม Test Case

Target Path Result Input Result

a b c 1 S 1 2 3 4T 5 9F 18 E Not Found - - - 2 S 1 2 3 4T 5 9T 10T 11 E Found 9 9 9 3 S 1 2 3 4T 5 9T 10F 12T 13 E Found 4 2 3 4 S 1 2 3 4T 5 9T 10F 12F 15 E Found 3 3 2 5 S 1 2 3 4F 7 9F 18 E Found -5 -4 -8 6 S 1 2 3 4F 7 9T 10T 11 E Not Found - - - 7 S 1 2 3 4F 7 9T 10F 12T 13 E Not Found - - - 8 S 1 2 3 4F 7 9T 10F 12F 15 E Not Found - - -

เสนทางทไมสามารถหากรณทดสอบไดส าหรบโปรแกรมค านวณหาประเภทของรป

สามเหลยม มทงสน 4 เสนทาง เมอพจารณาจะพบวาเสนทางเปาหมายเสนทางท 1 เปนเสนทางทไมสามารถเขาถงได (infeasible path) เนองจากทงเสนทางนก าหนดใหคาตวแปร Is_Triangle ในเสนทาง 4T เปนจรง ดงนนจงเปนไปไมไดทจะมเสนทาง 9F เกดขน เชนเดยวกนส าหรบเสนทางเปาหมายเสนทางท 6, 7 และเสนทางเปาหมายท 8 เปนเสนทางทไมสามารถเขาถงได (infeasible path) เนองจากทงสามเสนทางนก าหนดใหคาตวแปร Is_Triangle ในเสนทาง 4F เปนเทจ ดงนนจงเปนไปไมไดทจะมเสนทาง 9T เกดขน

ตารางท 4-3 แสดงเสนทางส าหรบการทดสอบโปรแกรมค านวณหาคากลางของ

ขอมล มเสนทางเปาหมายทงหมด 6 เสนทาง มเสนทางทสามารถหากรณทดสอบทไดจ านวน 6 เสนทาง คดเปน 100 %

ตำรำงท 4-3 กรณทดสอบทไดจากโปรแกรมค านวณหาคากลางของขอมล Test Case

Target Path Result Input Result

a b c 1 S 1 2T 3 4 5 6T 7 E Found U c l 2 S 1 2T 3 4 5 6F 8T 9 11 E Found Y y l 3 S 1 2T 3 4 5 6F 8F 10 11 E Found P n ‘ ‘ 4 S 1 2F 6T 7 E Found N I V 5 S 1 2F 6F 8T 9 11 E Found q J i 6 S 1 2F 6F 8F 10 11 E Found ‘ ‘ ‘ ‘ ‘ ‘

Page 63: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

47

ตารางท 4-4 แสดงเสนทางส าหรบการทดสอบโปรแกรมตรวจสอบขอความ Palindrome มเสนทางเปาหมายทงหมด 10 เสนทาง มเสนทางทสามารถหากรณทดสอบทไดจ านวน 10 เสนทาง คดเปน 100 %

ตำรำงท 4-4 กรณทดสอบทไดจากโปรแกรมตรวจสอบขอความ Palindrome

Test Case

Target Path Result Input Result

1 S 1 2 3 4 5T 6 15 2 3 15 E Found XLJc8WcV1y 2 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2

3 15 E Found tYpVpkK5xQ

3 S 1 2 3 4 5F 8 10 11T 12 14 15 2 3 15 E Found SjSLmRnVrS 4 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2

3 4 5T 6 15 2 3 15 E Found 7fXgbiZuZt

5 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 15 2 3 15 E Found 0dlMCNFQXQ 6 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5F 8 10

11T 12 14 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 4 5T 6 15 2 3 15 E

Found rnYnrBE6El

7 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 15 E

Found eeNnvnMnkJ

8 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 15 E

Found iSOSOEq9EH

9 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 15 2 3 15 E

Found wNKQ8Q8PcP

10 S 1 2 3 4 5F 8 10 11T 12 14 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 15 E

Found ororOadjeJ

Page 64: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

48

จ านวนกรณทดสอบทสรางไดส าหรบโปรแกรมตวอยางทง 4 โปรแกรมแสดงดงตารางท 4-5

ตำรำงท 4-5 จ านวนกรณทดสอบของโปรแกรมตางๆ

Program Path

Coverages Infeasible

Paths Total

Test Cases Calculate Maximum – Minimum 8 2 6 Triangle Problem 8 4 4 Find Middle Character 6 - 6 Palindrome 10 - 10

จากการทดสอบการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมดวยเครองมอท

พฒนาโดยใชโปรแกรมกรณศกษา 4 โปรแกรม แสดงผลการทดสอบดงตารางท 4-5 เมอพจารณาผลการทดลองทไดจะพบวา เครองมอทพฒนาขนสามารถหากรณทดสอบส าหรบโปรแกรมตวอยางทง 4 ได

Page 65: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

49

บทท 5

กำรประเมนประสทธภำพของกรณทดสอบ งานวจยนเลอกใชวธการทดสอบแบบกลายพนธ (Mutation Testing) ในการ

ประเมนประสทธภาพของกรณทดสอบทสรางขนจากขนตอนวธเชงพนธกรรมทไดน าเสนอ โดยโปรแกรมทใชเปนกรณศกษาในงานวจยนคอโปรแกรมค านวณคาสงสดและคาต าสด , โปรแกรมค านวณหาประเภทของรปสามเหลยม , โปรแกรมค านวณหาคากลางของขอมล และโปรแกรมตรวจสอบขอความ Palindrome ซงขนตอนในการประเมนประสทธภาพของกรณทดสอบมดงตอไปน

1) ขนตอนการสรางกรณทดสอบ ถกด าเนนการโดยใชกระบวนการขนตอนวธเชงพนธกรรมตามวธการทน าเสนอ จ านวนกรณทดสอบของแตละโปรแกรมแสดงดงตารางท 5-1

2) ขนตอนการสรางโปรแกรมกลายพนธ (Mutant Program) ด าเนนการเปลยนแปลงโปรแกรมตนฉบบ (Original Program) โดยใชตวด าเนนการการกลายพนธ (Mutation Operator) ส าหรบภาษา Visual Basic ซงน าเสนอโดย P. Stylianos Yiasemis และ A. S. Andreou [16] จ านวนโปรแกรมกลายพนธทถกสรางส าหรบโปรแกรมค านวณคาสงสดและคาต าสด มจ านวนเทากบ 21, จ านวนโปรแกรมกลายพนธทถกสรางส าหรบโปรแกรมค านวณหาประเภทของรปสามเหลยม มจ านวนเทากบ 38, จ านวนโปรแกรมกลายพนธทถกสรางส าหรบโปรแกรมค านวณหาคากลางของขอมล มจ านวนเทากบ 21 และจ านวนโปรแกรมกลายพนธทถกสรางส าหรบโปรแกรมตรวจสอบขอความ Palindrome มจ านวนเทากบ 21 แสดงดงตารางท 5-1

3) น ากรณทดสอบทไดมาด าเนนการกบโปรแกรมตนฉบบ (Original Program) และโปรแกรมกลายพนธตางๆ เพอเปรยบเทยบผลลพธ และท าการค านวณหาคะแนนการกลายพนธ (Mutation Score) เพอประเมนประสทธภาพของกรณทดสอบทได หากคะแนนการกลายพนธมคาเขาใกล 1 หมายถงกรณทดสอบนนมประสทธภาพมาก และหากคะแนนการกลายพนธมคาเขาใกลศนยหมายถงกรณทดสอบนนมประสทธภาพคอนขางต า

สรปผลการประเมนประสทธภาพของกรณทดสอบส าหรบโปรแกรมค านวณคาสงสดและคาต าสด, โปรแกรมค านวณหาประเภทของรปสามเหลยม, โปรแกรมค านวณหาคากลางของขอมล และโปรแกรมตรวจสอบขอความ Palindrome ซงประเมนจากทกกรณโดยใชวธการทดสอบแบบกลายพนธ ไดดงตารางท 5-1

Page 66: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

50

ตำรำงท 5-1 สรปผลการประเมนประสทธภาพกรณทดสอบ

Program Total

Test Cases Total

Mutants Killed

Mutants Equivalent Mutants

Mutation Score

Calculate Maximum – Minimum

6 21 19 - 0.9

Triangle Problem 4 38 25 9 0.86 Find Middle Character 6 21 21 - 1 Palindrome 10 21 16 4 0.94

ผลการประเมนประสทธภาพของกรณทดสอบของโปรแกรมค านวณคาสงสดและคาต าสด (Calculate Maximum – Minimum) ซงมโปรแกรมกลายพนธทงหมด 21 Mutants พบวามโปรแกรมกลายพนธทใหผลลพธแตกตางกบผลลพธจากโปรแกรมตนฉบบหรอโปรแกรมกลายพนธทถกฆา (Killed Mutant) จ านวน 19 Mutants ซงสามารถหาคะแนนการกลายพนธ (Mutation Score) ไดเทากบ 0.9 จากผลการทดลองทได แสดงใหเหนวากรณทดสอบทสรางจากขนตอนทน าเสนอเปนกรณทดสอบทมประสทธภาพคอนขางสง

ผลการประเมนประสทธภาพของกรณทดสอบของโปรแกรมค านวณหาประเภทของรปสามเหลยม ซงมโปรแกรมกลายพนธทงหมด 38 Mutants พบวามโปรแกรมกลายพนธทใหผลลพธแตกตางกบผลลพธจากโปรแกรมตนฉบบหรอโปรแกรมกลายพนธทถกฆา (Killed Mutant) จ านวน 25 Mutants มโปรแกรมกลายพนธทสมมล (Equivalent Mutant) จ านวน 9 Mutants ซงสามารถหาคะแนนการกลายพนธ (Mutation Score) ไดเทากบ 0.86 จากผลการทดลองทได แสดงใหเหนวากรณทดสอบทสรางจากขนตอนทน าเสนอเปนกรณทดสอบทมประสทธภาพคอนขางสง

ผลการประเมนประสทธภาพของกรณทดสอบของโปรแกรมค านวณหาคากลางของขอมล ซงมโปรแกรมกลายพนธทงหมด 21 Mutants พบวามโปรแกรมกลายพนธทใหผลลพธแตกตางกบผลลพธจากโปรแกรมตนฉบบหรอโปรแกรมกลายพนธทถกฆา (Killed Mutant) จ านวน 21 Mutants ซงสามารถหาคะแนนการกลายพนธ (Mutation Score) ไดเทากบ 1 จากผลการทดลองทได แสดงให เหนวากรณทดสอบทสรางจากขนตอนทน าเสนอเปนกรณทดสอบท มประสทธภาพคอนขางสง

ผลการประเมนประสทธภาพของกรณทดสอบของโปรแกรมตรวจสอบขอความ Palindrome ซงมโปรแกรมกลายพนธทงหมด 21 Mutants พบวามโปรแกรมกลายพนธทใหผลลพธแตกตางกบผลลพธจากโปรแกรมตนฉบบหรอโปรแกรมกลายพนธทถกฆา (Killed Mutant) จ านวน 16 Mutants มโปรแกรมกลายพนธทสมมล (Equivalent Mutant) จ านวน 4 Mutants ซง

Page 67: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

51

สามารถหาคะแนนการกลายพนธ (Mutation Score) ไดเทากบ 0.94 จากผลการทดลองทได แสดงใหเหนวากรณทดสอบทสรางจากขนตอนทน าเสนอเปนกรณทดสอบทมประสทธภาพคอนขางสง

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

Page 68: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

52

บทท 6

บทสรปและขอเสนอแนะ 6.1 สรปผลกำรวจย

การทดสอบซอฟตแวรเปนขนตอนทมความส าคญในกระบวนการผลตซอฟตแวร โดยขนตอนหนงทส าคญในกระบวนการทดสอบซอฟตแวร คอการคดเลอกขอมลทน ามาใชในการทดสอบ ดงนนการน าเสนอขนตอนการสรางกรณทดสอบทดจะมสวนท าใหการทดสอบมประสทธภาพ โดยกรณทดสอบทมประสทธภาพจะตองครอบคลมคณลกษณะตางๆ ของระบบและมจ านวนกรณทดสอบทไมมากจนเกนไป

วทยานพนธนไดน าเสนอวธการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม โดยการสรางกราฟควบคมการไหลจากโปรแกรมรหสตนฉบบและท าการระบเสนทางทเปนไปได ส าหรบวธการคนหากรณทดสอบทมความเหมาะสมกบแตละเสนทางใชหลกการของขนตอนวธเชงพนธกรรม โดยเรมจากการสรางกลมประชากรตนก าเนดซงจะถกสรางขนโดยใชวธการแบงสวนทสมดล (Equivalence Partitioning) การประเมนคาความเหมาะสมจะพจารณาจากการประเมนคาความครอบคลมของชดขอมลทใชในการทดสอบ ส าหรบวทยานพนธนการประเมนคาความครอบคลมใชวธการค านวณหาคา Distance ของค าสงทเปนเงอนไขในการท างานของโปรแกรม ตามทฤษฏ Korel’s distance function ขนตอนวธเชงพนธกรรมจะประกอบไปดวยการด าเนนการ 2 รปแบบ ไดแก การไขวเปลยน (Crossover) และการกลายพนธ (Mutation) ในกรณทกลมประชากรตนก าเนดทไดจากการสมในการท างานรอบแรกยงไมใชกรณทดสอบทเหมาะสมกบเสนทางเปาหมายทก าลงหากรณทดสอบ กลมประชากรตนก าเนดจะถกน าเขาสกระบวนการไขวเปลยนและการกลายพนธเพอเกดเปนกลมประชากรใหมตอไป ซงอตราความนาจะเปนในการเกดการไขวเปลยนและการกลายพนธจะถกก าหนดไวในสวนของการก าหนดคาตงตนใหกบขนตอนวธเชงพนธกรรม ซงกระบวนการทางพนธกรรมจะถกด าเนนไปเรอยๆ โดยเสนทางเปาหมายแตละเสนทางจะถกน ามาพจารณาเพอหาชดขอมลทเหมาะสมส าหรบการทดสอบเสนทางนนๆ ในกรณทยงไมมชดขอมลทเหมาะสมส าหรบเสนทางใด เสนทางนนจะถกด าเนนการพจารณาตอไปจนครบจ านวนรอบการท างานทตงไว สวนกรณทพบชดขอมลทเหมาะสมกบเสนทางเปาหมายทก าลงทดสอบ กระบวนการทางพนธกรรมกจะจบลง

Page 69: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

53

ในงานวจยนไดท าการประเมนประสทธภาพของกรณทดสอบทไดจากวธการทน าเสนอโดยใชวธการทดสอบแบบกลายพนธ (Mutation Testing) ซงจากผลการประเมนประสทธภาพของกรณทดสอบพบวา กรณทดสอบทสรางจากขนตอนวธทน าเสนอมประสทธภาพ นอกจากนวทยานพนธนยงไดพฒนาเครองมอเพอชวยในการสรางกรณทดสอบตามวธการทไดน าเสนอ ซงชวยใหขนตอนในการสรางกรณทดสอบมความสะดวกและรวดเรวขน 6.2 ขอเสนอแนะส ำหรบกำรวจยในอนำคต

การน าเสนองานวจยนเพอเปนแนวทางในการสรางเครองมอส าหรบการสรางกรณทดสอบเพอใชในกระบวนการทดสอบซอฟตแวร แนวทางในการพฒนาตอในอนาคตนนสามารถพฒนาตอไดในหลากหลายแนวทาง ดงน

1. วทยานพนธนด าเนนการสรางกรณทดสอบจากการแปลงรหสตนฉบบ (Source Code) ใหอยในรปของกราฟควบคมการไหล (Control Flow Graph) เพอใชในการระบเสนทางทใชในการหากรณทดสอบ ซงการสรางกราฟควบคมการไหลและระบเสนทางททดสอบ ผทดสอบจะตองระบดวยตนเอง (Manual) ในอนาคตอาจมการพฒนาเครองมอใหรองรบการแปลงรหสตนฉบบใหอยในรปของกราฟควบคมการไหลแบบอตโนมต เพอใหเกดความสะดวกรวดเรวขน

2. เครองมอทพฒนาขนในวทยานพนธน สามารถด าเนนการสรางกรณทดสอบส าหรบชนดขอมลบางประเภท ไดแก จ านวนเตม (Integer), จ านวนทศนยม (Double), รหสอกขระ (Character) และขอความ (String) ซงในอนาคตอาจมการพฒนาวธการสรางกรณทดสอบส าหรบชนดขอมลอนเพมเตม

3. เนองจากในสวนของการสรางกรณทดสอบ จะพบวาบางเสนทางไมสามารถหากรณทดสอบได ทงนเนองจากเปนเสนทางทไมสามารถเขาถง (Infeasible Path) งานวจยในอนาคตจงอาจตองศกษาหาวธการจดการกบเสนทางทไมสามารถเขาถงน

Page 70: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

54

บรรณำนกรม

[1] C. Ghezzi, M. Jazayeri, and D. Mandrioli. “Fundamentals of Software

Engineering 2nd,” Prentice Hall PTR Upper Saddle River, NJ, USA, 2002.

[2] B. Korel. “Automated test data generation for programs with procedures,” Proceedings of International Symposium on Software Testing and Analysis, pages 209-215, 1996.

[3] C. Michael, G. McGraw, and A. Schatz. “Generating software test data by evolution,” IEEE Transactions on Software Engineering, pp. 1085-1110, 2001.

[4] M. Sarma and R. Mall. “AutomaticTest Case Generation from UML Models,” 10th International Conference on Information Technology, pp. 196-201, 2007.

[5] T. Lerthumpanya and T. Senivongse. “Basis Path Test Suite and Testing Process for WS-BPEL,” WSEAS TRANSACTIONS on COMPUTERS, Issue 5, Vol.7, pp. 483-496, 2008.

[6] Mark Kevitt. “Best Software Test & Quality Assurance Practices in the project Life-cycle,” School Computer Applications Dublin City University, 2008.

[7] Pezze and Young. “Software Testing and Analysis : Process, Principles and Techniques,” Wiley, USA, 2008.

[8] P. Ammann and J. Offutt. “Introduction to Software Testing,” Cambridge University Press, 2008.

[9] Xin-SheYang. “Engineering Optimization An Introduction with Metaheuristic Applications,” Wiley Publisher, 2010.

[10] G. Winter, J. Periaux, M.Galan and P.Cuesta. “Genetic Algorithms in Engineering and Computer Science,” Wiley Publisher, 1996.

Page 71: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

55

บรรณำนกรม (ตอ)

[11] P. C. Jorgensen. “Software Testing A Craftsman’s Approach 3rd,” AuerbachPiblictions, USA, 2007.

[12] A.J. Offutt, A.Lee, G. Rothermel, R. Untch, and C. Zapf, “An Experimental Determination of Sufficient Mutant Operators,” ACM Transaction on Software Engineering Methodology , pp. 99-118, 1996.

[13] L. Guti´errez-Madro˜nal, J. Jos´e Dom´ınguez-Jim´enez and I. Medina-Bulo. “Mutation Testing: Guideline and Mutation Operator Classification,” The Ninth International Multi-Conference on Computing in the Global Information Technology, pp. 171-179, 2014.

[14] P. Ranjan Srivastava and Tai-hoon Kim. “Application of Genetic Algorithm in Software Testing,” International Journal of Software Engineering and Its Applications, Vol.3, No.4, 2009.

[15] M. Alzabidi, A. Kumar and A.D. Shaligram. “Automatic Software Structural Testing by Using Evolutionary Algorithms for Test Data Generations,” International Journal of Computer Science and Network Security, Vol.9, No.4, 2009.

[16] P. Stylianos Yiasemis และ A. S. Andreou. “Testing Object-Oriented Code Through a Specifications-Based Mutation Engine,” International Journal on Advances in Software, vol 5 no 3 & 4, 2012.

Page 72: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

56

ภำคผนวก

Page 73: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

57

ภำคผนวก ก

กรณศกษำกำรสรำงกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม 1. กรณศกษำ กำรสรำงกรณทดสอบโปรแกรมค ำนวณคำสงสดและคำต ำสด Program Description

ตำรำงท ก-1 รายละเอยดโปรแกรมค านวณคาสงสดและคาต าสด ชอโปรแกรม Calculate Maximum – Minimum รำยละเอยดโปรแกรม ค านวณคาสงสดและคาต าสดจากขอมลน าเขา 3 ตวทเปนจ านวน

ทศนยม (Double) จ ำนวน input 3 ประเภท input จ านวนทศนยม (Double) ประเภท output จ านวนทศนยม (Double)

- คาสงสด (Maximum) - คาต าสด (Minimum)

Source Code 1 Dim a , b , c , max , min As Integer

2 If a > b Then

3 max = a : min = b

4 Else

5 max = b : min = a

6 End If

7 If max < c Then

8 max = c

9 End If

10 If max > c Then

11 min = c

12 End If

ภำพท ก-1 รหสตนฉบบโปรแกรมค านวณคาสงสดและคาต าสด

Page 74: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

58

Control Flow Graph

S

1

2

3 5

7

10

11

E

8

T F

T

F

T

F

ภำพท ก-2 กราฟควบคมการไหลโปรแกรมค านวณคาสงสดและคาต าสด

Target Path

ตำรำงท ก-2 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมค านวณคาสงสดและคาต าสด Path 1 S 1 2T 3 7T 8 10T 11 E Path 2 S 1 2T 3 7T 8 10F E Path 3 S 1 2T 3 7F 10T 11 E Path 4 S 1 2T 3 7F 10F E Path 5 S 1 2F 5 7T 8 10T 11 E Path 6 S 1 2F 5 7T 8 10F E Path 7 S 1 2F 5 7F 10T 11 E Path 8 S 1 2F 5 7F 10F E

Page 75: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

59

Genetic Algorithm Parameters ตำรำงท ก-3 การก าหนดคาตงตนโปรแกรมค านวณคาสงสดและคาต าสด

Number of Parameters 3 Number of Generations 100 Crossover Probability 1.0 Mutation Probability 1.0 Chromosome Type Integer

Test Case Generation

ตำรำงท ก-4 ผลการสรางกรณทดสอบโปรแกรมค านวณคาสงสดและคาต าสด Test Case

Target Path Result Input Result

a b c 1 S 1 2T 3 7T 8 10T 11 E Not Found - - - 2 S 1 2T 3 7T 8 10F E Found 3.05 1.64 3.63 3 S 1 2T 3 7F 10T 11 E Found 8.76 3.74 2.85 4 S 1 2T 3 7F 10F E Found 9.77 0.13 9.77 5 S 1 2F 5 7T 8 10T 11 E Not Found - - - 6 S 1 2F 5 7T 8 10F E Found 2.48 5.96 7.35 7 S 1 2F 5 7F 10T 11 E Found 2.20 8.75 1.39 8 S 1 2F 5 7F 10F E Found 0.0 0.0 0.0

Mutation Testing ตำรำงท ก-5 สรปผลการประเมนประสทธภาพกรณทดสอบโปรแกรมค านวณคาสงสดและคาต าสด

Program Total Test Cases

Total Mutants

Killed Mutants

Mutation Score

Calculate Maximum – Minimum

6 21 19 0.9

Page 76: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

60

2. กรณศกษำ กำรสรำงกรณทดสอบโปรแกรมค ำนวณหำประเภทของรปสำมเหลยม Program Description

ตำรำงท ก-6 รายละเอยดโปรแกรมค านวณหาประเภทของรปสามเหลยม ชอโปรแกรม Triangle Problem รำยละเอยดโปรแกรม ค านวณหาประเภทของรปสามเหลยมจากขอมลน าเขา 3 ตวทเปนจ านวน

เตม (Integer) จ ำนวน input 3 ประเภท input จ านวนเตม (Integer) ประเภท output ประเภทรปสามเหลยม (String)

- Not a Triangle - Equilateral - Scalene - Isosceles

Source Code

ภำพท ก-3 รหสตนฉบบโปรแกรมค านวณหาประเภทของรปสามเหลยม

1 Dim a, b, c As Integer

2 Dim Is_Triangle As Boolean

3 Dim output As String

4 If (a < b + c) And (b < a + c) And (c < b + a) Then

5 Is_Triangle = True

6 Else

7 Is_Triangle = False

8 End If

9 If Is_Triangle Then

10 If (a = b) And (b = c) Then

11 output = "Equilateral"

12 ElseIf (a <> b) And (b <> c) And (a <> c) Then

13 output = "Scalene"

14 Else 15 output = "Isosceles"

16 End If

17 Else 18 output = "Not a Triangle"

19 End If

Page 77: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

61

Control Flow Graph S

1

4

5 7

9

1811

E

10

T F

T

F

3

2

T F

12

13 15

T F

ภำพท ก-4 กราฟควบคมการไหลโปรแกรมค านวณหาประเภทของรปสามเหลยม

Target Path ตำรำงท ก-7 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมค านวณหาประเภทของรปสามเหลยม

Path 1 S 1 2 3 4T 5 9F 18 E Path 2 S 1 2 3 4T 5 9T 10T 11 E Path 3 S 1 2 3 4T 5 9T 10F 12T 13 E Path 4 S 1 2 3 4T 5 9T 10F 12F 15 E Path 5 S 1 2 3 4F 7 9F 18 E Path 6 S 1 2 3 4F 7 9T 10T 11 E Path 7 S 1 2 3 4F 7 9T 10F 12T 13 E Path 8 S 1 2 3 4F 7 9T 10F 12F 15 E

Page 78: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

62

Genetic Algorithm Parameters ตำรำงท ก-8 การก าหนดคาตงตนโปรแกรมค านวณหาประเภทของรปสามเหลยม

Number of Parameters 3 Number of Generations 100 Crossover Probability 1.0 Mutation Probability 1.0 Chromosome Type Integer

Test Case Generation

ตำรำงท ก-9 ผลการสรางกรณทดสอบโปรแกรมค านวณหาประเภทของรปสามเหลยม Test Case

Target Path Result Input Result a b c

1 S 1 2 3 4T 5 9F 18 E Not Found - - - 2 S 1 2 3 4T 5 9T 10T 11 E Found 9 9 9 3 S 1 2 3 4T 5 9T 10F 12T 13 E Found 4 2 3 4 S 1 2 3 4T 5 9T 10F 12F 15 E Found 3 3 2 5 S 1 2 3 4F 7 9F 18 E Found -5 -4 -8 6 S 1 2 3 4F 7 9T 10T 11 E Not Found - - - 7 S 1 2 3 4F 7 9T 10F 12T 13 E Not Found - - - 8 S 1 2 3 4F 7 9T 10F 12F 15 E Not Found - - -

Mutation Testing ตำรำงท ก-10 สรปผลการประเมนประสทธภาพกรณทดสอบโปรแกรมค านวณหาประเภทของรป

สามเหลยม Program Total

Test Cases Total

Mutants Killed

Mutants Mutation

Score Triangle Problem 4 38 25 0.66

Page 79: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

63

3. กรณศกษำ กำรสรำงกรณทดสอบโปรแกรมค ำนวณหำคำกลำงของขอมล Program Description

ตำรำงท ก-11 รายละเอยดโปรแกรมค านวณหาคากลางของขอมล ชอโปรแกรม Find Middle Character รำยละเอยดโปรแกรม ค านวณหาคากลางของขอมลจากขอมลน าเขา 3 ตวทเปนรหสอกขระ

(Character) จ ำนวน input 3 ประเภท input รหสอกขระ (Character) ประเภท output รหสอกขระ (Character) Source Code

1 Dim a , b , c , temp , mid As Char

2 If b > a Then

3 temp = a

4 a = b

5 b = temp

End If

6 If c > a Then

7 mid = a

else

8 If c > b Then

9 mid = c

Else 10 mid = b 11 End If End If

ภำพท ก-5 รหสตนฉบบโปรแกรมค านวณหาคากลางของขอมล

Page 80: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

64

Control Flow Graph S

1

4

6

3

2

8

9

T F

10

11

5

F

7

E

T

ภำพท ก-6 กราฟควบคมการไหลโปรแกรมค านวณหาคากลางของขอมล

Target Path

ตำรำงท ก-12 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมค านวณหาคากลางของขอมล Path 1 S 1 2T 3 4 5 6T 7 E Path 2 S 1 2T 3 4 5 6F 8T 9 11 E Path 3 S 1 2T 3 4 5 6F 8F 10 11 E Path 4 S 1 2F 6T 7 E Path 5 S 1 2F 6F 8T 9 11 E Path 6 S 1 2F 6F 8F 10 11 E

Page 81: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

65

Genetic Algorithm Parameters ตำรำงท ก-13 การก าหนดคาตงตนโปรแกรมค านวณหาคากลางของขอมล

Number of Parameters 3 Number of Generations 100 Crossover Probability 1.0 Mutation Probability 1.0 Chromosome Type Character

Test case Generation

ตำรำงท ก-14 ผลการสรางกรณทดสอบโปรแกรมค านวณหาคากลางของขอมล Test Case

Target Path Result Input Result

a b c 1 S 1 2T 3 4 5 6T 7 E Found U c l 2 S 1 2T 3 4 5 6F 8T 9 11 E Found Y y l 3 S 1 2T 3 4 5 6F 8F 10 11 E Found P n ‘ ‘ 4 S 1 2F 6T 7 E Found N I V 5 S 1 2F 6F 8T 9 11 E Found q J i 6 S 1 2F 6F 8F 10 11 E Found ‘ ‘ ‘ ‘ ‘ ‘

ตำรำงท ก-15 สรปผลการประเมนประสทธภาพกรณทดสอบโปรแกรมค านวณหาคากลางของขอมล

Program Total Test Cases

Total Mutants

Killed Mutants

Mutation Score

Find Middle Character 6 21 21 1

Page 82: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

66

4. กรณศกษำ กำรสรำงกรณทดสอบโปรแกรมตรวจสอบขอควำม Palindrome Program Description

ตำรำงท ก-16 รายละเอยดโปรแกรมตรวจสอบขอความ Palindrome ชอโปรแกรม Palindrome รำยละเอยดโปรแกรม ค านวณหาค าจากขอความทสะกดเหมอนเดมทงจากหนาไปหลงหรอหลง

ไปหนา จ ำนวน input 1 ประเภท input ขอความ (String) ประเภท output ขอความ (String) Source Code

1 Dim theInputString As String

2 For i As Integer = 1 To theInputString.Length - 1

3 k = i + 1 j = i - 1

4 While j >= 0 AndAlso k < theInputString.Length

5 If theInputString(j) <> theInputString(k) Then

6 Exit While

7 Else

8 j -= 1 k += 1

9 End If

10 aPalindrome = theInputString.Substring(j + 1, k - j - 1)

11 If aPalindrome.Length > aLongestPalindrome.Length Then

12 aLongestPalindrome = aPalindrome

13 End If

14 End While

15 Next

ภำพท ก-7 รหสตนฉบบโปรแกรมตรวจสอบขอความ Palindrome

Page 83: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

67

Control Flow Graph

S

1

4

5

86

12

10

F

T

3

2

T

F

11

13

14

15

E

ภำพท ก-8 กราฟควบคมการไหลโปรแกรมตรวจสอบขอความ Palindrome

Page 84: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

68

Target Path ตำรำงท ก-17 เสนทางส าหรบการสรางกรณทดสอบโปรแกรมตรวจสอบขอความ Palindrome

Genetic Algorithm Parameters

ตำรำงท ก-18 การก าหนดคาตงตนโปรแกรมตรวจสอบขอความ Palindrome Number of Parameters 1 Number of Generations 100 Crossover Probability 1.0 Mutation Probability 1.0 Chromosome Type String

Path 1 S 1 2 3 4 5T 6 15 2 3 15 E Path 2 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 15 E Path 3 S 1 2 3 4 5F 8 10 11T 12 14 15 2 3 15 E Path 4 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5T 6 15 2 3 15 E Path 5 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 15 2 3 15 E Path 6 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5F 8 10 11T 12 14 15 2 3 4 5F 8 10 11F

13 14 4 5T 6 15 2 3 4 5T 6 15 2 3 15 E Path 7 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5T 6 15 2 3 4 5F 8 10 11F

13 14 4 5T 6 15 2 3 15 E Path 8 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6

15 2 3 15 E Path 9 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6

15 2 3 4 5F 8 10 11F 13 14 15 2 3 15 E Path 10 S 1 2 3 4 5F 8 10 11T 12 14 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 15 E

Page 85: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

69

Test case Generation ตำรำงท ก-19 ผลการสรางกรณทดสอบโปรแกรมตรวจสอบขอความ Palindrome

Test Case

Target Path Result Input Result

1 S 1 2 3 4 5T 6 15 2 3 15 E Found XLJc8WcV1y

2 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 15 E

Found tYpVpkK5xQ

3 S 1 2 3 4 5F 8 10 11T 12 14 15 2 3 15 E Found SjSLmRnVrS

4 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5T 6 15 2 3 15 E

Found 7fXgbiZuZt

5 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 15 2 3 15 E Found 0dlMCNFQXQ

6 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5F 8 10 11T 12 14 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 4 5T 6 15 2 3 15 E

Found rnYnrBE6El

7 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 15 E

Found eeNnvnMnkJ

8 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 15 E

Found iSOSOEq9EH

9 S 1 2 3 4 5T 6 15 2 3 4 5F 8 10 11T 12 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 4 5F 8 10 11F 13 14 15 2 3 15 E

Found wNKQ8Q8PcP

10 S 1 2 3 4 5F 8 10 11T 12 14 15 2 3 4 5F 8 10 11F 13 14 4 5T 6 15 2 3 15 E

Found ororOadjeJ

Mutation Testing

ตำรำงท ก-20 สรปผลการประเมนประสทธภาพกรณทดสอบโปรแกรมตรวจสอบขอความ Palindrome

Program Total Test Cases

Total Mutants

Killed Mutants

Mutation Score

Palindrome 10 21 16 0.76

Page 86: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

70

ภำคผนวก ข

คมอกำรใชงำนเครองมอกำรสรำงกรณทดสอบ

เครองมอส าหรบการสรางกรณทดสอบทพฒนาขน แสดงดงภาพท ข-1 และมรายละเอยดหนาจอการท างานในสวนตางๆ ดงน

ภำพท ข-1 เครองมอการสรางกรณทดสอบ

Page 87: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

71

2. หนำจอกำรตงคำ Genetic Algorithm Parameters เปนสวนทใชส าหรบการก าหนดคาพารามเตอรในกระบวนการขนตอนวธเชงพนธกรรม

แสดงดงภาพท ข-2 ประกอบไปดวย 1) No. of Parameter คอ จ านวนขอมลน าเขาทตองการหา 2) No. of GA คอ จ านวน Generation ของกระบวนการขนตอนวธเชงพนธกรรม ซงกคอ

จ านวนรอบของการท างานของกระบวนการขนตอนวธเชงพนธกรรม 3) Crossover Rate คอ อตราความนาจะเปนในการไขวเปลยน สามารถก าหนดคา

ระหวาง 0 ถง 1 4) Mutation Rate คอ อตราความนาจะเปนในการกลายพนธ สามารถก าหนดคา

ระหวาง 0 ถง 1 5) Chromosome Type คอ ชนดของขอมลน าเขา

ภำพท ข-2 หนาจอการตงคา Genetic Algorithm Parameters

Page 88: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

72

3. หนำจอกำรอพโหลดไฟล (Upload File) เปนสวนทใชในการเลอกไฟลซงอยในรปแบบของไฟลขอความ (Text File) เพอใชอพโหลด

เขาสระบบ โดยสามารถ Browse เพอเลอกทตงของไฟลได หนาจอการอพโหลดไฟลแสดงดงภาพท ข-3

ภำพท ข-3 หนาจอการอพโหลดไฟล (Upload File)

เมอท าการเลอกไฟลทตองการอพโหลดเสรจ ระบบจะปรากฏหนาจอใหมซงแสดงรายละเอยดขอมลเพอยนยนไฟลทตองการเลอกโดยกดปม OK ดงภาพท ข-3

ภำพท ข-4 หนาจอแสดงรายละเอยดขอมล

Page 89: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

73

4. หนำจอแสดงรหสโปรแกรมตนฉบบ (Source Code) เมอยนยนการเลอกไฟล หนาจอแสดงไฟลโปรแกรมดงภาพท ข-5

ภำพท ข-5 หนาจอแสดงรหสโปรแกรมตนฉบบ (Source Code)

5. หนำจอกำรก ำหนดเสนทำงเปำหมำยทตองกำรใชในกำรหำกรณทดสอบ

เปนสวนทใชก าหนดเสนทางเปาหมายทตองการหากรณทดสอบ โดยเมอระบเสนทางเปาหมาย ระบบจะแสดงเสนทางทเปนค าสงเงอนไขการตดสนใจ เพอใหผใชท าการระบประเภทของเงอนไข (Predicate Type) ดงภาพท ข-6

ภำพท ข-6 หนาจอการก าหนดเสนทางเปาหมายทตองการใชในการหากรณทดสอบ

Page 90: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

74

สามารถเพมเสนทางเปาหมายใหมหรอแกไขเสนทางเปาหมายทเลอกได โดยกดทปม Add หรอ Edit โดยจะแสดงหนาจอดงภาพท ข-7 และ ข-8 ตามล าดบ

ภำพท ข-7 หนาจอการเพมเสนทางเปาหมาย

ภำพท ข-8 หนาจอการแกไขเสนทางเปาหมาย

6. ปมกำรท ำงำน

ภำพท ข-9 ปมการท างาน

1. Setting : ซอน / แสดง สวนของการตงคาการใชงาน 2. Start : เรมการประมวลผล 3. Clear : ลางหนาจอแสดงผลการท างานของโปรแกรม 4. Export : สงออกผลการท างานของโปรแกรมในรปแบบไฟล MS Excel

Page 91: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

75

7. หนำจอแสดงผลกำรท ำงำนของโปรแกรม หนาจอสวนนจะแสดงรายละเอยดการท างานของขนตอนวธเชงพนธกรรม โดยจะแสดง

รายละเอยดตางๆ ดงน 5) Operation คอ กระบวนการในขนตอนวธเชงพนธกรรม ไดแก Initial , Crossover

และ Mutation 6) Data คอ ชดของขอมลทเกดขนระหวางการคนหากรณทดสอบ 7) Traversal Path คอ เสนทางทเกดขนระหวางการคนหากรณทดสอบ 8) Fitness คอ คาความเหมาะสมทเกดขนระหวางการคนหากรณทดสอบ

ภำพท ข-10 หนาจอแสดงรายละเอยดการการปฏบตการด าเนนการทางพนธกรรมในการหากรณ

ทดสอบส าหรบเสนทางเปาหมายทระบ (Execution Detail)

ภำพท ข-11 หนาแสดงผลการหากรณทดสอบ (Result)

Page 92: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

76

ภำคผนวก ค

รำยงำนผลงำนตพมพ 1.1 รำยกำรผลงำนทตพมพ นนทน ชวยช และ สภาภรณ กานตสมเกยรต . “การสรางกรณทดสอบโดยใชขนตอนวธเชง

พนธกรรม.” การประชมวชาการระดบชาตดานคอมพวเตอรและเทคโนโลยสารสนเทศ ครงท 10 (NCCIT 2014), 2557.

Nuntanee Chuaychoo and Supaporn Kansomkeat. “Path Coverage Test Case

Generation Using Genetic Algorithms.” 2nd Advancement on Information Technology International Conference, 2015.

1.2 รำยกำรกำรประชมวชำกำร ชอเรองผลงานทน าเสนอ การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม ชอการประชม การประชมทางวชาการระดบชาตดานคอมพวเตอรและเทคโนโลย

สารสนเทศ ครงท 10 (NCCIT 2014) วนเดอนปและสถานทจดประชม วนท 8 – 9 พฤษภาคม 2557 ณ โรงแรมองสนา ลากนา

จงหวดภเกต หนวยงานทจดประชม คณะเทคโนโลยสารสนเทศ มหาวทยาลยเทคโนโลยพระจอมเกลา

พระนครเหนอ ชอเรองผลงานทน าเสนอ Path Coverage Test Case Generation Using Genetic

Algorithms ชอการประชม 2nd Advancement on Information Technology

International Conference (ADVCIT 2015) วนเดอนปและสถานทจดประชม วนท 3 – 5 ธนวาคม 2558 ณ โรงแรมดวานา พลาซา จงหวด

กระบ หนวยงานทจดประชม Malaysia Technical Scientist Association (MALTESAS) ,

Universiti Malaysia Perlis (UNIMAP)

Page 93: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

77

1.3 ส ำเนำตนฉบบทไดรบกำรยนยอมจำกผพมพผลงำน 1.3.1 นนทน ชวยช และ สภาภรณ กานตสมเกยรต. “การสรางกรณทดสอบโดยใช

ขนตอนวธเชงพนธกรรม.” การประชมวชาการระดบชาตดานคอมพวเตอรและเทคโนโลยสารสนเทศ ครงท 10 (NCCIT 2014), 2557.

Page 94: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

78

Page 95: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

79

Page 96: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

80

Page 97: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

81

Page 98: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

82

Page 99: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

83

Page 100: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

84

1.3.2 Nuntanee Chuaychoo and Supaporn Kansomkeat. “Path Coverage Test Case Generation Using Genetic Algorithms.” 2nd Advancement on Information Technology International Conference, 2015.

Page 101: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

85

Page 102: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

86

Page 103: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

87

Page 104: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

88

Page 105: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

89

Page 106: A Thesis Submitted in Partial Fulfillment of the ... · 2.1.2 ระดับของการทดสอบซอฟแวร์ 7 2.1.3 การทดสอบแบบความครอบคลุมรหัสโปรแกรม

90

ประวตผเขยน ชอ - สกล นางสาวนนทน ชวยช รหสประจ ำตวนกศกษำ 5510121039 วฒกำรศกษำ

วฒ ชอสถำบน ปทส ำเรจกำรศกษำ วศวกรรมศาสตรบณฑต (วศวกรรมคอมพวเตอร) เกยรตนยมอนดบสอง

มหาวทยาลยวลยลกษณ

2553

ประสบกำรณท ำงำน หนวยวจยนวตกรรมดานสารสนเทศ มหาวทยาลยวลยลกษณ

ต าแหนง โปรแกรมเมอร กำรตพมพเผยแพรผลงำน นนทน ชวยช และ สภาภรณ กานตสมเกยรต . “การสรางกรณทดสอบโดยใชขนตอนวธเชง

พนธกรรม.” การประชมวชาการระดบชาตดานคอมพวเตอรและเทคโนโลยสารสนเทศ ครงท 10 (NCCIT 2014), 2557.

Nuntanee Chuaychoo and Supaporn Kansomkeat. “Path Coverage Test Case

Generation Using Genetic Algorithms.” 2nd Advancement on Information Technology International Conference, 2015.