a thesis submitted in partial fulfillment of the ... · 2.1.2...
TRANSCRIPT
การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม
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
ลขสทธของมหาวทยาลยสงขลานครนทร
(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
ลขสทธของมหาวทยาลยสงขลานครนทร
(2)
ชอวทยานพนธ การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม
ผเขยน นางสาวนนทน ชวยช
สาขาวชา การจดการเทคโนโลยสารสนเทศ
บณฑตวทยาลย มหาวทยาลยสงขลานครนทร อนมตใหนบวทยานพนธฉบบน
เปนสวนหนงของการศกษา ตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาการจดการ
เทคโนโลยสารสนเทศ
.…….……………………………..…….………….
(รองศาสตราจารย ดร.ธระพล ศรชนะ)
คณบดบณฑตวทยาลย
อาจารยทปรกษาวทยานพนธหลก
………………………………………………...........................
(ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต)
คณะกรรมการสอบ
………………………………………...ประธานกรรมการ
(ผชวยศาสตราจารย ดร.วชรวล ตงคปตานนท)
…………………………................................กรรมการ
(ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต)
…………………………................................กรรมการ
(ดร.ฐมาพร เพชรแกว)
(3)
ขอรบรองวา ผลงานวจยนมาจากการศกษาวจยของนกศกษาเอง และไดแสดงความขอบคณบคคลทมสวนชวยเหลอแลว ลงชอ…………………………………………………………. (ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต) อาจารยทปรกษาวทยานพนธ ลงชอ………………………………………………………… (นางสาวนนทน ชวยช) นกศกษา
(4)
ขาพเจาขอรบรองวา ผลงานวจยนไมเคยเปนสวนหนงในการอนมตปรญญาในระดบใดมากอน และไมไดถกใชในการยนขออนมตปรญญาในขณะน ลงชอ………………………………………………………… (นางสาวนนทน ชวยช) นกศกษา
(5)
ชอวทยานพนธ การสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม ผเขยน นางสาวนนทน ชวยช สาขาวชา การจดการเทคโนโลยสารสนเทศ
ปการศกษา 2558
บทคดยอ
การทดสอบซอฟตแวร เปนขนตอนหนงทส าคญในกระบวนการผลตซอฟตแวร การ
ทดสอบชวยใหซอฟตแวรทพฒนามความนาเชอถอ และมความถกตองเพมมากขน การสรางกรณทดสอบเปนอกองคประกอบหนงทมความส าคญในกระบวนการทดสอบซอฟตแวร คณภาพของการทดสอบจะขนอยกบประสทธภาพของกรณทดสอบ วทยานพนธนน าเสนอวธการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม และมการสรางเครองมอส าหรบสรางกรณทดสอบตามวธการทไดน าเสนอโดยใชวชวลสตดโอดอทเนต โดยขนตอนการสรางกรณทดสอบทไดน าเสนอไปประยกตใชกบกรณศกษา และใชการประเมนประสทธภาพของกรณทดสอบโดยวธการทดสอบแบบกลายพนธ ผลลพธจากการทดสอบพบวา กรณทดสอบทสรางขนตามวธการทน าเสนอส าหรบกรณศกษา ใหคาคะแนนการกลายพนธคอนขางสง
(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.
.
(7)
กตตกรรมประกาศ
วทยานพนธฉบบนส าเรจลลวงได ดวยความกรณาและอนเคราะหชวยเหลอเปนอยางดของ ผชวยศาสตราจารย ดร.สภาภรณ กานตสมเกยรต อาจารยทปรกษาวทยานพนธ ซงทานไดใหค าแนะน าและขอคดเหนตาง ๆ อนเปนประโยชนอยางยงในการท าวจย อกทงยงชวยแกปญหาตาง ๆ ทเกดขนระหวางการด าเนนงานวจยอกดวย
ขอขอบพระคณคณะกรรมการสอบทกทาน ไดแก ผชวยศาสตราจารย ดร.วชรวล ตงคปตานนท ผชวยศาสตราจารย ดร.อ านาจ เปาะทอง และ ดร.ฐมาพร เพชรแกว ทกรณาใหค าปรกษาแนะน าและตรวจทานแกไขวทยานพนธใหสมบรณ
ขอขอบพระคณอาจารยในหลกสตรการจดการเทคโนโลยสารสนเทศทกทานส าหรบการใหความร ขอแนะน าและความชวยเหลอในทก ๆ ดานในการท าวจย
ขอขอบคณพๆ หนวยวจยนวตกรรมสารสนเทศ มหาวทยาลยวลยลกษณทกคนทคอยเปนก าลงใจ และใหความชวยเหลอในการท าวจย
สดทายน ผวจยขอขอบพระคณบดามารดา และครอบครว ซงเปดโอกาสใหไดรบการศกษาเลาเรยน ตลอดจนคอยชวยเหลอและใหก าลงใจผวจยเสมอมาจนการศกษาในครงนส าเรจลลวงไปไดดวยด
นนทน ชวยช
(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
(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
(10)
สารบญ (ตอ)
หนา 4. กรณศกษา การสรางกรณทดสอบโปรแกรมตรวจสอบขอความ
Palindrome 66
ภาคผนวก ข คมอการใชงานเครองมอการสรางกรณทดสอบ 70 ภาคผนวก ค รายงานผลงานตพมพ 76
ประวตผเขยน 90
(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
(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
(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
(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
(15)
รายการภาพประกอบ (ตอ)
หนา
ภาพท ข-10 หนาจอแสดงรายละเอยดการการปฏบตการด าเนนการทางพนธกรรมในการหากรณทดสอบส าหรบเสนทางเปาหมายทระบ (Execution Detail)
75
ภาพท ข-11 หนาแสดงผลการหากรณทดสอบ (Result) 75
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] ไดน าเสนอวธการสรางกรณทดสอบโดยอตโนมตส าหรบการทดสอบเวบเซอรวสจากการสรางกราฟควบคมการไหลและหาเสนทางทเหมาะสมส าหรบการสรางกรณทดสอบ
2
ขนตอนวธเชงพนธกรรม (Genetic Algorithms) เปนวธการคนหาค าตอบทเหมาะสมส าหรบปญหาทพจารณา โดยใชวธการคดเลอกแบบธรรมชาตเลยนแบบแนวคดววฒนาการของสงมชวตทวา สงมชวตทแขงแรงกวาจะมโอกาสอยรอดในธรรมชาตมากวาสงมชวตทออนแอกวา โดยกระบวนการท างานของขนตอนวธเชงพนธกรรมจะท าการหาค าตอบทเหมาะสมโดยเรมตนจากการพจารณาจากกลมของค าตอบของปญหาทถกสรางขนโดยการเขารหส ซงเปนการแปลงคาตวแปรหรอพารามเตอร (Parameters) ของปญหาใหอยในรปโครงสรางของโครโมโซม (Chromosomes) ทก าหนด แลวจงน ากลมของค าตอบนนไปคดเลอกโครโมโซมเพอหาค าตอบทเหมาะสมส าหรบสรางววฒนาการของค าตอบใหดขน โดยใชการปฏบตการทางพนธศาสตรเพอแลกเปลยนคาพารามเตอรตางๆ ระหวางโครโมโซมทถกคดเลอก ซงจะท าใหค าตอบของปญหาถกปรบปรงใหดขนจนกระทงพบค าตอบทเหมาะสมส าหรบปญหานนๆ
การน าขนตอนวธทางพนธกรรมมาประยกตใชในการสรางกรณทดสอบส าหรบกระบวนการทดสอบซอฟตแวรจงเปนเรองทนาสนใจ เนองจากหลกการท างานของขนตอนวธทางพนธกรรมมความสอดคลองกบขนตอนการคนหากรณทดสอบและมการปรบเปลยนกรณทดสอบจนกระทงไดกรณทดสอบทเหมาะสมทสด ดงนน งานวจยนจงน าเสนอขนตอนการสรางกรณทดสอบ โดยการประยกตใชขนตอนวธเชงพนธกรรมเปนเครองมอในการคดเลอกชดของกรณทดสอบทมความเหมาะสมส าหรบการทดสอบซอฟตแวร
1.2 วตถประสงคของงำนวจย
1.2.1 เพอน าเสนอกระบวนการสรางกรณทดสอบส าหรบกระบวนการทดสอบซอฟตแวรโดยประยกตใชขนตอนวธเชงพนธกรรม
1.2.2 เพอพฒนาเครองมอส าหรบสรางกรณทดสอบ ตามกระบวนการทไดน าเสนอ 1.3 ขอบเขตของงำนวจย
1.3.1 เสนอขนตอนในการสรางกรณทดสอบซอฟตแวรโดยอาศยวธการเชงพนธกรรม
1.3.2 พฒนาเครองมอเพอใชในการสรางกรณทดสอบซอฟตแวรโดยอาศยวธการเชงพนธกรรม ตามขนตอนทไดน าเสนอ
3
1.4 ระยะเวลำกำรด ำเนนงำนวจย ระยะเวลาการด าเนนงานวจยทงหมด 12 เดอน โดยเรมโครงการวนท 1 พฤษภาคม
2557 และสนสดโครงการวนท 30 เมษายน 2558
1.5 ประโยชนทคำดวำจะไดรบ 1.5.1 ไดวธการทใชในการสรางกรณทดสอบโดยประยกตใชขนตอนวธเชงพนธกรรม 1.5.2 ไดเครองมอทชวยในการสรางกรณทดสอบโดยอตโนมต เปนการชวยลดภาระการ
ด าเนนงานของผทดสอบ
4
บทท 2
ทฤษฎและหลกกำร 2.1 กำรทดสอบซอฟตแวร (Software Testing)
การทดสอบซอฟตแวร เปนการทดสอบความสมบรณของโปรแกรม รวมทงความนาเชอถอและความถกตองของผลลพธจากโปรแกรมทพฒนาขน การทดสอบเปนปจจยส าคญปจจยหนงของการประกนคณภาพซอฟตแวร วตถประสงคหลกของการทดสอบซอฟตแวร คอการทดสอบเพอคนหาขอผดพลาดทอาจเกดขนไดจากซอฟตแวรทพฒนาขน การทดสอบทดจะตองมความเปนไปไดสงทจะคนพบขอผดพลาดใหมๆ และการทดสอบทประสบความส าเรจจะตองพบขอผดพลาด ซงกระบวนการทดสอบทดจะตองประกอบไปดวยกรณทดสอบทมความเหมาะสมกบโปรแกรมหรอซอฟตแวรนนๆ
กรณทดสอบคอขอมลทผทดสอบใชในการทดสอบฟงกชนการท างานใด ๆ ของซอฟตแวร เพอใหทราบวาการท างานของฟงกชนการท างานนนมความถกตองหรอไม กรณทดสอบทดตองมคณสมบตคอ ตองมความครอบคลมคณลกษณะตางๆ ของงานททดสอบ และกรณทดสอบทมประสทธภาพ คอกรณทดสอบทสามารถคนพบขอผดพลาดทเกดขนในโปรแกรม
นอกจากนการทดสอบซอฟตแวรยงเปนกระบวนการทมความส าคญตอการสงมอบระบบ โดยเฉพาะในขนตอนของการท า UAT (User Acceptance Test) เปนขนตอนการทดสอบซอฟตแวรขนตอนสดทาย ซงเปนกระบวนการทดสอบทท าโดยผใชงานระบบ โดยการทดสอบในกระบวนการนจะนยมน าขอมลจรงมาใชในการทดสอบเพอจ าลองสถานการณจรงในการใชงานระบบ ซงหากสามารถตรวจพบจดบกพรองไดมากและละเอยดเทาไร กจะเปนการชวยลดตนทนใหแกผพฒนาซอฟตแวร และชวยลดความเสยงใหแกผใชระบบมากเทานน ดงนน การทดสอบซอฟตแวรจงเปนสงจ าเปนอยางหลกเลยงไมไดในอตสาหกรรมการพฒนาซอฟตแวรในปจจบน
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) ทมรายละเอยดครอบคลมทกคณสมบตหรอทกฟงกชนการท างานของซอฟตแวรทอยภายใตการทดสอบ โดยเมอท าการทดสอบแลวเสรจจะระบผลลพธทไดจากการทดสอบ (ผาน/ไมผาน) และรายละเอยดอนๆ ทจ าเปนลงไปในรายการตรวจสอบ
6
(4) Test Implementation เปนขนตอนการจดเตรยมกจกรรมหรอกระบวนการตางๆ ในการทดสอบ โดย
กจกรรมทอยภายใตกระบวนการทดสอบในขนตอนน เชน
- จดท าตารางปฏบตการทดสอบ (Test Execution Schedule)
- จดเตรยมสภาพแวดลอมและขอมล ส าหรบใชในการทดสอบ
- จดเตรยมกระบวนการทใชในการตดตามผลการทดสอบและขอบกพรองทเกดจากการทดสอบ
- จดเตรยมเครองมอตางๆ (5) Test Execution เปนขนตอนการด าเนนการทดสอบ
- ด าเนนการทดสอบตามตารางปฏบตการทดสอบ
- ด าเนนการบนทก, แกไข, ตดตามขอผดพลาดทเกดขน
- ตดตามความกาวหนาของการทดสอบ
- ควบคมการทดสอบใหเปนไปตามแผนทวางไว (6) Evaluating Exit Criteria and Test Reporting เปนการตรวจสอบวาผลการทดสอบเปนอยางไร เชน ไดท าการทดสอบครบถวนตาม
ตารางปฏบตการทดสอบแลวหรอไม หรอมการแกไขขอผดพลาดทเกดจากการทดสอบทงหมดแลวหรอไม เปนตน และทส าคญยงเปนการรายงานความคบหนาการทดสอบใหทราบ เชน
- จ านวนกรณทดสอบทผาน/ไมผานการทดสอบ หรออยระหวางการทดสอบ
- จ านวนขอบกพรองทพบจ าแนกตามระดบความรนแรง (Severity) และสถานะ (Status) (7) Test Closure Activities คอการสรปผลหรออภปรายผลการทดสอบ เปนขนตอนสดทายในกระบวนการ
ทดสอบซอฟตแวร กจกรรมทอยภายใตกระบวนการน เชน
- ตรวจสอบความครบถวนของการทดสอบวาเปนไปตามตารางปฏบตการทดสอบ หรอไม และท าการแกไขขอบกพรองทพบทงหมดแลวหรอไม
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
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
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 เอจ หากพจารณาการทดสอบทระดบการครอบคลมค าสง สามารถเทยบไดกบการครอบคลม
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
11
เกณฑการประเมนความครอบคลมในการทดสอบซอฟตแวรแบบโครงสรางทไดกลาวมาขางตน มขอดขอเสยแตกตางกน อยางไรกตามการทดสอบซอฟตแวรไมวาจะท าการทดสอบทระดบความครอบคลมใดๆ กยงคงมเปาหมายเดยวกนคอ เพอตองการทจะครอบคลมการท างานของชดค าสงใหครบถวน ตองการลดความซบซอนของการทดสอบทไมจ าเปน และเพอหาขอผดพลาดทอาจเกดขนกบซอฟตแวร
2.2 ขนตอนวธเชงพนธกรรม (Genetic Algorithm)
ขนตอนวธเชงพนธกรรม เปนกระบวนการหนงทอาศยทฤษฏการววฒนาการของสงมชวต น าเสนอโดย John Holland [10] และเขาไดน าทฤษฏดงกลาวมาประยกตใชกบเทคนคการคนหาในเรอง Local Search Algorithm และตอมาไดน าขนตอนวธเชงพนธกรรมมาใชเปนเทคนคการเรยนรดวย ขนตอนวธเชงพนธกรรมสามารถน ามาใชเพอคนหาค าตอบทดขนและเหมาะสมมากขนโดยผานการเรยนรดวยตวเอง เปรยบเสมอนการววฒนาการของสงมชวตทสามารถววฒนาการเพอการด ารงชวตอย โดยน ามาจากแนวคดทวาสงมชวตทงหลายมทงสวนดและสวนทไมด ซงลกษณะทดยอมมโอกาสอยรอดไดมากกวาและจะไดรบการสนบสนนใหมการถายทอดลกษณะทางพนธกรรมไปยงรนตอไป
กระบวนการท างานของขนตอนวธเชงพนธกรรมแสดงดงภาพท 2-5 โดยการท างานจะเรมจากการสมโครโมโซมขนมาจ านวนหนงเพอสรางเปนกลมประชากรตนก าเนด ( Initial Population) และท าการประเมนคาความเหมาะสม (Fitness Evaluation) จากฟงกชนความเหมาะสมทก าหนดไว จากนนจะคดเลอกประชากร (Selection) มาจ านวนหนงเพอใชเปนตนก าเนดทางสายพนธหรอเปนกลมประชากรรนพอแม จากนนจะน าประชากรเหลานเขาสกระบวนการปฏบตการทางสายพนธ (Genetic Operation) ไดแก การไขวเปลยน (Crossover) และการกลายพนธ (Mutation) ซงจะท าใหเกดกลมประชากรทเปนรนลก และเมอน าประชากรกลมนไปประเมนคาความเหมาะสมแลวพบค าตอบทเหมาะสมกบปญหา กระบวนการท างานกจะจบลง แตหากค าตอบท ได ย ง ไม เหมาะสมกจะด า เนนตอไปโดยการน าประชากรร นล กท ได ไปแทนท (Replacement) ประชากรรนพอแม เมอท าการแทนทเสรจแลวกจะน าประชากรกลมใหมทไดกลบเขาสกระบวนการคดเลอกใหมอกครง ซงกระบวนการเหลานจะด าเนนการซ าไปเรอยๆ จนกระทงไดประชากรกลมทเหมาะสม
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) รปแบบโครโมโซมในลกษณะน ทกต าแหนงของยนของโครโมโซมจะมคาบางคาซงสามารถเชอมโยงไปยงปญหาได เชน ตวอกษร จ านวนจรง ค าสงหรออนๆ รปแบบโครโมโซมแบบนสามารถใชไดกบปญหาทคอนขางซบซอน
13
ในการหาผลลพธดวยวธการทางพนธกรรมนน ผลลพธเรมตนจะไดมาจากการสมเลอกกลมของผลลพธทเปนไปไดภายในขอบเขตของขอมลใหมจ านวนโครโมโซมเทากบจ านวนประชากรทไดก าหนดไว ตวอยางการก าหนดโครโมโซมอยางงายในขนตอนวธเชงพนธกรรมเปนเซตของยนทเปนเลขฐานสอง เชน {100101} โดยต าแหนงของยนแตละยนในโครโมโซมจะแทนลกษณะขององคประกอบยอยของชดค าตอบของปญหา ซงการก าหนดยนและโครโมโซม สามารถก าหนดในรปแบบอนได ขนอยกบโครงสรางขององคประกอบยอยของค าตอบและลกษณะของปญหาทตองการแก ตวอยางเชน อาจก าหนดโครโมโซมเปนเซตของยนทเปนเลขฐานสบ หรออาจก าหนดโครงสรางของโครโมโซมเปน Matrix ของยนทเปนตวเลขหรอตวอกษร ตามความตองการและลกษณะของปญหา
2.1.2 กำรประเมนคำควำมเหมำะสม (Fitness Evaluation) โครโมโซมทกตวจะตองมคาซงบงบอกถงความเหมาะสมทจะพจารณาวาสมควร
น าไปสบสายพนธตอหรอไม การประเมนคาความเหมาะสม จงเปนกระบวนการหนงทใชในการพจารณาเงอนไขของการด าเนนการทางพนธกรรมวาตองด าเนนการตอหรอจบกระบวนการ หากประเมนคาความเหมาะสมแลวพบค าตอบทเหมาะสมกบปญหา กระบวนการท างานกจะจบลง แตหากค าตอบทไดยงไมเหมาะสมกจะด าเนนตอไป
2.1.3 กำรคดเลอก (Selection) ประชากรรนใหมจ าเปนตองเกดมาจากประชากรรนพอ -แมทมลกษณะพนธทด
ดงนนในการเลอกประชากรรนพอ-แมเพอสบพนธจะตองเลอกจากโครโมโซมทใหผลลพธทดเพอเปนค าตอบเรมตนใหกบประชากรรนตอไปโดยอาศยทฤษฎการอยรอดของสงมชวต จงท าใหเกดรปแบบมากมายในการเลอกโครโมโซมทนาพอใจทสดเพอน าไปสบสายพนธ ดงน
1) การคดเลอกแบบวงลอรเลต (Roulette Wheel) คอ โครโมโซมทมคาความเหมาะสมทดกวามโอกาสในการถกสมเลอกเปนพอ-แมพนธทสงกวา
2) การคดเลอกแบบชวง (Ranking) คอการเลอกประชากรทมคาความเหมาะสมทดทสดโดยไมสนใจประชากรตวอน
3) การคดเลอกแบบ Elitist เปนแนวคดทปองกนการหาของเสนทางทดทสด คอมการคดลอกโครโมโซมทดทสดไวกอน สวนประชากรทเหลอทจะตองคดเลอกจะใชวธการเลอกแบบอนๆ
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 การไขวเปลยนแบบสองจด
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
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;
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;
}
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;
}
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 กราฟควบคมการไหลโปรแกรมค านวณหาคาสงสดต าสด
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
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) และอตราสวนของโปรแกรมกลายพนธทถกฆา ตอจ านวนโปรแกรมกลายพนธทงหมด ลบกบโปรแกรม
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)
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
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) ซงเปนการค านวณคาระยะทางระหวางเสนทางทใชในการทดสอบ เพอน ามาประเมนคาความเหมาะสมใหกบประชากรรนตอไป และในสวนของการด าเนนการทางววฒนาการใชการไขวเปลยน
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 โดยงานวจยชนนพบวา จ านวนของการทดสอบแบบกลายพนธ ทไดจากการทดสอบของโปรแกรมทเขยนดวยภาษาทงสองภาษาไมมความแตกตางกน และเครองมอทน าเสนอสามารถทจะคนหาขอผดพลาดทเกดจากการเขยนโปรแกรมไดอยางมประสทธภาพ
26
จากการศกษางานวจยทเกยวของทง 3 ชนนท าใหผวจยไดแนวทางในการท าวทยานพนธฉบบนจากหลกการการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมจากงานวจยชนท 1 ไดน าแนวคดการทดสอบซอฟตแวรในระดบการทดสอบการครอบคลมเสนทางการท างานจากงานวจยชนท 2 และไดแนวคดส าหรบการประเมนประสทธภาพของกรณทดสอบโดยใชการทดสอบแบบกลายพนธจากงานวจยชนท 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 แผนภาพแสดงกรอบแนวคดขนตอนการสรางกรณทดสอบโดยใช
ขนตอนวธเชงพนธกรรม
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)
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)
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] โดยขอมลน าเขาของโปรแกรมทตองการทดสอบแตละตวจะถกแบงสวนออกเปนกลมๆ กรณทดสอบตนก าเนดหนงกรณ ไดจากการน าสวนใดสวนหนงของขอมลน าเขาทกตวมารวมกน ดงนนหนงกรณทดสอบตนก าเนด (กลมประชากรตนก าเนด) หมายถงหนงชด
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
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
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 กราฟควบคมการไหลแสดงเสนทางเปาหมาย
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 เปนจรง) จะมผลใหขนตอนปฏบตการขนตอนวธเชงพนธกรรมยต แตในกรณทไมสามารถหากรณทดสอบ ข นตอนปฏบตการขนตอนวธเชงพนธกรรมจะยตเมอครบจ านวนรอบทก าหนดไว
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
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 นอยทสดเพอเปนชดขอมลทใชในการกลายพนธ
ต าแหนงทท าการไขวเปลยน
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) อกครง ซงในการประเมนคาความครอบคลม ในกรณทพบชดขอมลทดสอบจะมผลใหขนตอนปฏบตการในขนตอนวธเชงพนธกรรมยต แตในกรณทไมพบชดขอมลทดสอบจะไปด าเนนการในขนตอนถดไปเรอยๆจนกวาจะพบชดขอมลทดสอบหรอครบจ านวนรอบการท างานทก าหนดไว
ต าแหนงทท าการกลายพนธ
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
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 เขาสระบบ โดยใชขนตอนวธเชงพนธกรรมในการด าเนนการสรางกรณทดสอบ
40
4.1.2 กำรออกแบบสวนตดตอกบผใช เครองมอทพฒนาขนมสวนตดตอผใชงานและสวนการแสดงผลตางๆ ดงภาพท 4-3
ภำพท 4-3 หนาจอการท างานในสวนการตดตอกบผใช
จากภาพท 4-3 หนาจอการท างานในสวนการตดตอกบผใชจะแบงออกเปน 5 สวน ซงสมพนธกบขนตอนการสรางกรณทดสอบ ดงน
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
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 ส าหรบค าสงทเปนเงอนไขโดยใชหนาจอสวนของเครองมอทพฒนาหมายเลข
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 แสดงหนาจอแสดงผลการหากรณทดสอบ
44
ภำพท 4-6 หนาจอแสดงรายละเอยดการการปฏบตการด าเนนการทางพนธกรรมในการหากรณทดสอบส าหรบเสนทางเปาหมายทระบ (Execution Detail)
ภำพท 4-7 หนาจอแสดงผลการหากรณทดสอบ
4.2 ผลกำรสรำงกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมจำกเครองมอทพฒนำ ทดสอบการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรมดวยเครองมอทพฒนา
โดยใชโปรแกรมเพอเปนกรณศกษา 4 โปรแกรม ซงมขอมลน าเขาทแตกตางกน ดงน 1) โปรแกรมค านวณคาสงสดและคาต าสด ขอมลเขาประเภทจ านวนทศนยม
(Double) 2) โปรแกรมค านวณหาประเภทของรปสามเหลยม ขอมลเขาประเภทจ านวนเตม
(Integer) 3) โปรแกรมค านวณหาคากลางของขอมล ขอมลเขาประเภทรหสอกขระ
(Character) 4) โปรแกรมตรวจสอบขอความ Palindrome ซงเปนขอความทสะกดเหมอนเดม
จากหนาไปหลงหรอจากหลงไปหนา ขอมลเขาประเภทขอความ (String)
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 %
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 ‘ ‘ ‘ ‘ ‘ ‘
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
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 ได
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
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 ซง
51
สามารถหาคะแนนการกลายพนธ (Mutation Score) ไดเทากบ 0.94 จากผลการทดลองทได แสดงใหเหนวากรณทดสอบทสรางจากขนตอนทน าเสนอเปนกรณทดสอบทมประสทธภาพคอนขางสง
ส าหรบรายละเอยดการประเมนระสทธภาพของกรณทดสอบของกรณศกษา โดยใชขนตอนวธเชงพนธกรรมทไดน าเสนอในการสรางกรณทดสอบ แสดงในภาคผนวก ก
52
บทท 6
บทสรปและขอเสนอแนะ 6.1 สรปผลกำรวจย
การทดสอบซอฟตแวรเปนขนตอนทมความส าคญในกระบวนการผลตซอฟตแวร โดยขนตอนหนงทส าคญในกระบวนการทดสอบซอฟตแวร คอการคดเลอกขอมลทน ามาใชในการทดสอบ ดงนนการน าเสนอขนตอนการสรางกรณทดสอบทดจะมสวนท าใหการทดสอบมประสทธภาพ โดยกรณทดสอบทมประสทธภาพจะตองครอบคลมคณลกษณะตางๆ ของระบบและมจ านวนกรณทดสอบทไมมากจนเกนไป
วทยานพนธนไดน าเสนอวธการสรางกรณทดสอบโดยใชขนตอนวธเชงพนธกรรม โดยการสรางกราฟควบคมการไหลจากโปรแกรมรหสตนฉบบและท าการระบเสนทางทเปนไปได ส าหรบวธการคนหากรณทดสอบทมความเหมาะสมกบแตละเสนทางใชหลกการของขนตอนวธเชงพนธกรรม โดยเรมจากการสรางกลมประชากรตนก าเนดซงจะถกสรางขนโดยใชวธการแบงสวนทสมดล (Equivalence Partitioning) การประเมนคาความเหมาะสมจะพจารณาจากการประเมนคาความครอบคลมของชดขอมลทใชในการทดสอบ ส าหรบวทยานพนธนการประเมนคาความครอบคลมใชวธการค านวณหาคา Distance ของค าสงทเปนเงอนไขในการท างานของโปรแกรม ตามทฤษฏ Korel’s distance function ขนตอนวธเชงพนธกรรมจะประกอบไปดวยการด าเนนการ 2 รปแบบ ไดแก การไขวเปลยน (Crossover) และการกลายพนธ (Mutation) ในกรณทกลมประชากรตนก าเนดทไดจากการสมในการท างานรอบแรกยงไมใชกรณทดสอบทเหมาะสมกบเสนทางเปาหมายทก าลงหากรณทดสอบ กลมประชากรตนก าเนดจะถกน าเขาสกระบวนการไขวเปลยนและการกลายพนธเพอเกดเปนกลมประชากรใหมตอไป ซงอตราความนาจะเปนในการเกดการไขวเปลยนและการกลายพนธจะถกก าหนดไวในสวนของการก าหนดคาตงตนใหกบขนตอนวธเชงพนธกรรม ซงกระบวนการทางพนธกรรมจะถกด าเนนไปเรอยๆ โดยเสนทางเปาหมายแตละเสนทางจะถกน ามาพจารณาเพอหาชดขอมลทเหมาะสมส าหรบการทดสอบเสนทางนนๆ ในกรณทยงไมมชดขอมลทเหมาะสมส าหรบเสนทางใด เสนทางนนจะถกด าเนนการพจารณาตอไปจนครบจ านวนรอบการท างานทตงไว สวนกรณทพบชดขอมลทเหมาะสมกบเสนทางเปาหมายทก าลงทดสอบ กระบวนการทางพนธกรรมกจะจบลง
53
ในงานวจยนไดท าการประเมนประสทธภาพของกรณทดสอบทไดจากวธการทน าเสนอโดยใชวธการทดสอบแบบกลายพนธ (Mutation Testing) ซงจากผลการประเมนประสทธภาพของกรณทดสอบพบวา กรณทดสอบทสรางจากขนตอนวธทน าเสนอมประสทธภาพ นอกจากนวทยานพนธนยงไดพฒนาเครองมอเพอชวยในการสรางกรณทดสอบตามวธการทไดน าเสนอ ซงชวยใหขนตอนในการสรางกรณทดสอบมความสะดวกและรวดเรวขน 6.2 ขอเสนอแนะส ำหรบกำรวจยในอนำคต
การน าเสนองานวจยนเพอเปนแนวทางในการสรางเครองมอส าหรบการสรางกรณทดสอบเพอใชในกระบวนการทดสอบซอฟตแวร แนวทางในการพฒนาตอในอนาคตนนสามารถพฒนาตอไดในหลากหลายแนวทาง ดงน
1. วทยานพนธนด าเนนการสรางกรณทดสอบจากการแปลงรหสตนฉบบ (Source Code) ใหอยในรปของกราฟควบคมการไหล (Control Flow Graph) เพอใชในการระบเสนทางทใชในการหากรณทดสอบ ซงการสรางกราฟควบคมการไหลและระบเสนทางททดสอบ ผทดสอบจะตองระบดวยตนเอง (Manual) ในอนาคตอาจมการพฒนาเครองมอใหรองรบการแปลงรหสตนฉบบใหอยในรปของกราฟควบคมการไหลแบบอตโนมต เพอใหเกดความสะดวกรวดเรวขน
2. เครองมอทพฒนาขนในวทยานพนธน สามารถด าเนนการสรางกรณทดสอบส าหรบชนดขอมลบางประเภท ไดแก จ านวนเตม (Integer), จ านวนทศนยม (Double), รหสอกขระ (Character) และขอความ (String) ซงในอนาคตอาจมการพฒนาวธการสรางกรณทดสอบส าหรบชนดขอมลอนเพมเตม
3. เนองจากในสวนของการสรางกรณทดสอบ จะพบวาบางเสนทางไมสามารถหากรณทดสอบได ทงนเนองจากเปนเสนทางทไมสามารถเขาถง (Infeasible Path) งานวจยในอนาคตจงอาจตองศกษาหาวธการจดการกบเสนทางทไมสามารถเขาถงน
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.
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.
56
ภำคผนวก
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 รหสตนฉบบโปรแกรมค านวณคาสงสดและคาต าสด
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
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
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
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
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
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 รหสตนฉบบโปรแกรมค านวณหาคากลางของขอมล
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
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
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
67
Control Flow Graph
S
1
4
5
86
12
10
F
T
3
2
T
F
11
13
14
15
E
ภำพท ก-8 กราฟควบคมการไหลโปรแกรมตรวจสอบขอความ Palindrome
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
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
70
ภำคผนวก ข
คมอกำรใชงำนเครองมอกำรสรำงกรณทดสอบ
เครองมอส าหรบการสรางกรณทดสอบทพฒนาขน แสดงดงภาพท ข-1 และมรายละเอยดหนาจอการท างานในสวนตางๆ ดงน
ภำพท ข-1 เครองมอการสรางกรณทดสอบ
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
72
3. หนำจอกำรอพโหลดไฟล (Upload File) เปนสวนทใชในการเลอกไฟลซงอยในรปแบบของไฟลขอความ (Text File) เพอใชอพโหลด
เขาสระบบ โดยสามารถ Browse เพอเลอกทตงของไฟลได หนาจอการอพโหลดไฟลแสดงดงภาพท ข-3
ภำพท ข-3 หนาจอการอพโหลดไฟล (Upload File)
เมอท าการเลอกไฟลทตองการอพโหลดเสรจ ระบบจะปรากฏหนาจอใหมซงแสดงรายละเอยดขอมลเพอยนยนไฟลทตองการเลอกโดยกดปม OK ดงภาพท ข-3
ภำพท ข-4 หนาจอแสดงรายละเอยดขอมล
73
4. หนำจอแสดงรหสโปรแกรมตนฉบบ (Source Code) เมอยนยนการเลอกไฟล หนาจอแสดงไฟลโปรแกรมดงภาพท ข-5
ภำพท ข-5 หนาจอแสดงรหสโปรแกรมตนฉบบ (Source Code)
5. หนำจอกำรก ำหนดเสนทำงเปำหมำยทตองกำรใชในกำรหำกรณทดสอบ
เปนสวนทใชก าหนดเสนทางเปาหมายทตองการหากรณทดสอบ โดยเมอระบเสนทางเปาหมาย ระบบจะแสดงเสนทางทเปนค าสงเงอนไขการตดสนใจ เพอใหผใชท าการระบประเภทของเงอนไข (Predicate Type) ดงภาพท ข-6
ภำพท ข-6 หนาจอการก าหนดเสนทางเปาหมายทตองการใชในการหากรณทดสอบ
74
สามารถเพมเสนทางเปาหมายใหมหรอแกไขเสนทางเปาหมายทเลอกได โดยกดทปม Add หรอ Edit โดยจะแสดงหนาจอดงภาพท ข-7 และ ข-8 ตามล าดบ
ภำพท ข-7 หนาจอการเพมเสนทางเปาหมาย
ภำพท ข-8 หนาจอการแกไขเสนทางเปาหมาย
6. ปมกำรท ำงำน
ภำพท ข-9 ปมการท างาน
1. Setting : ซอน / แสดง สวนของการตงคาการใชงาน 2. Start : เรมการประมวลผล 3. Clear : ลางหนาจอแสดงผลการท างานของโปรแกรม 4. Export : สงออกผลการท างานของโปรแกรมในรปแบบไฟล MS Excel
75
7. หนำจอแสดงผลกำรท ำงำนของโปรแกรม หนาจอสวนนจะแสดงรายละเอยดการท างานของขนตอนวธเชงพนธกรรม โดยจะแสดง
รายละเอยดตางๆ ดงน 5) Operation คอ กระบวนการในขนตอนวธเชงพนธกรรม ไดแก Initial , Crossover
และ Mutation 6) Data คอ ชดของขอมลทเกดขนระหวางการคนหากรณทดสอบ 7) Traversal Path คอ เสนทางทเกดขนระหวางการคนหากรณทดสอบ 8) Fitness คอ คาความเหมาะสมทเกดขนระหวางการคนหากรณทดสอบ
ภำพท ข-10 หนาจอแสดงรายละเอยดการการปฏบตการด าเนนการทางพนธกรรมในการหากรณ
ทดสอบส าหรบเสนทางเปาหมายทระบ (Execution Detail)
ภำพท ข-11 หนาแสดงผลการหากรณทดสอบ (Result)
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)
77
1.3 ส ำเนำตนฉบบทไดรบกำรยนยอมจำกผพมพผลงำน 1.3.1 นนทน ชวยช และ สภาภรณ กานตสมเกยรต. “การสรางกรณทดสอบโดยใช
ขนตอนวธเชงพนธกรรม.” การประชมวชาการระดบชาตดานคอมพวเตอรและเทคโนโลยสารสนเทศ ครงท 10 (NCCIT 2014), 2557.
78
79
80
81
82
83
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.
85
86
87
88
89
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.