Chulalongkorn University Theses and Dissertations (Chula ETD)

Other Title (Parallel Title in Other Language of ETD)

Stubs and drivers generator for class integration testing from sequence and class diagrams

Year (A.D.)

2019

Document Type

Thesis

First Advisor

ธาราทิพย์ สุวรรณศาสตร์

Faculty/College

Faculty of Engineering (คณะวิศวกรรมศาสตร์)

Department (if any)

Department of Computer Engineering (ภาควิชาวิศวกรรมคอมพิวเตอร์)

Degree Name

วิทยาศาสตรมหาบัณฑิต

Degree Level

ปริญญาโท

Degree Discipline

วิศวกรรมซอฟต์แวร์

DOI

10.58837/CHULA.THE.2019.1269

Abstract

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

Other Abstract (Other language abstract of ETD)

During software development, each programmer may not finish coding simultaneously. Meanwhile, waiting until all programmers complete their work is a wasting of time, so the testing process should be started right after some of the source code is completed. Stubs and drivers are used for replacing unfinished modules. Since they are throwaway code—in other words, they are non-reusable code, it takes a significant effort to produce. In our previous research, the stub-and-driver generators using sequence and class diagrams was proposed; however, there are some limitations regarding generating stubs and drivers for abstract classes, inner classes, and interfaces. Testers are also allowed to select just a single class under test at a time, and the generator is only capable of generating stubs and drivers. Another point is that test input values are not generated. Therefore, this research aims to solve those limitations. To generate stubs-and-drivers source code, first, the sequence and class diagrams are imported in XML format to create a call graph. Next, testers select a group of classes under test. Then, all required stubs and drivers are identified and generated from those selected classes. Test input values and expected results for the drivers are randomly generated. Finally, these stubs and drivers are exported as source code files and sent to perform class integration testing with three case studies. The result shows that these stubs can replace those unfinished classes.

Share

COinS
 
 

To view the content in your browser, please download Adobe Reader or, alternately,
you may Download the file to your hard drive.

NOTE: The latest versions of Adobe Reader do not support viewing PDF files within Firefox on Mac OS and if you are using a modern (Intel) Mac, there is no official plugin for viewing PDF files within the browser window.