งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป"— ใบสำเนางานนำเสนอ:

1 เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป
Unit Testing (Lab 6) เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป โดย อ.วรารัตน์ รุ่งวรวุฒิ รายวิชา Software Testing ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยขอนแก่น

2 เกี่ยวกับ Junit เครื่องมือที่ใช้ช่วยในการทำ unit test สำหรับภาษา Java
เขียนโดย Erich Gamma และ Kent Beck   เป็น framework เป็น open source

3 ประโยชน์ของ Junit เป็น framework ที่เป็นมาตรฐานที่จะช่วยให้การทำงานของ code มีประสิทธิภาพมากขึ้น สามารถทำงานแบบอัตโนมัติ สามารถทดสอบได้บ่อยเท่าที่ต้องการ ไม่มีผลกระทบต่อภายในโปรแกรมเพราะว่าทดสอบเฉพาะส่วน Input และ Output ของโปรแกรมเท่านั้น หมายเหตุ ความเข้าใจผิดสำหรับ Junit คือ ไม่ได้ช่วยแก้ bug แต่ช่วยหา ข้อบกพร่องของ code ที่ programmer เขียนเอาไว้

4 เริ่มทำปฏิบัติการทดสอบ
สมมติว่าเราต้องการทดสอบ โปรแกรมการตัดเกรด Grade.java public class Grade { public static char getLetterGrade(int mark) { if (mark >= 75) { return 'A'; } else if (mark >= 60) { return 'B'; } else if (mark > 50) { return 'C'; } else { return 'F'; }

5 เริ่มทำปฏิบัติการทดสอบ
ให้เข้าไปติดตั้ง Eclipse เวอร์ชั่น 3.5 ขึ้นไป จากนั้นติดตั้งเครื่องมือช่วยในการตรวจสอบโค้ด

6 เริ่มทำปฏิบัติการทดสอบ
สร้างโปรแกรมที่ใช้ในการทดสอบ สมมติตั้งชื่อเป็น GradeUnitTest.java import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; public class GradeUnitTest extends TestCase { public GradeUnitTest(String name) { super(name); } protected void setUp() throws Exception { super.setUp(); protected void tearDown() throws Exception { super.tearDown();

7 เริ่มทำปฏิบัติการทดสอบ
สามารถสร้างเมท็อดเพื่อทำการทดสอบแบบ EC หรือ BVA public void testTypical() { // test a typical value in partitions EC assertEquals('A', Grade.getLetterGrade(95)); assertEquals('B', Grade.getLetterGrade(72)); assertEquals('C', Grade.getLetterGrade(55)); assertEquals('F', Grade.getLetterGrade(30)); } public void testBoundaries() { // test the boundaries of the partitions BVA assertEquals('A', Grade.getLetterGrade(75)); assertEquals('A', Grade.getLetterGrade(100)); assertEquals('B', Grade.getLetterGrade(60)); assertEquals('B', Grade.getLetterGrade(74)); assertEquals('C', Grade.getLetterGrade(50)); assertEquals('F', Grade.getLetterGrade(0)); assertEquals('F', Grade.getLetterGrade(49));

8 เริ่มทำปฏิบัติการทดสอบ
public static Test suite() { // For putting into a TestSuite. return new TestSuite(GradeUnitTest.class); } public static void main(String[] args) { junit.textui.TestRunner.run(GradeUnitTest.class);

9 บริเวณที่บอกชุดการทดสอบว่าผ่านหรือไม่

10 ให้ทำการตรวจสอบโปรแกรมว่าทำไมเกิด Failure เกิดขึ้น 1 ตัวที่บริเวณ

11 บริเวณที่บอกชุดการทดสอบผ่านทุกชุดทดสอบ

12 เมท็อดที่ใช้ในการทดสอบ
setUp() และ tearDown() การสร้าง unit test นั้นเรามักจะมีการกำหนดค่าหรือเปลี่ยนแปลงค่าของตัวแปร เพื่อทดสอบ method นั้นๆ ในบางครั้งอาจจะมี method ที่ใช้ตัวแปรร่วมกัน ซึ่ง อาจจะทำให้การทดสอบผิดพลาดได้ ดังนั้นเราจะใช้ method ที่ชื่อ setUp() และ tearDown() มาช่วยแก้ไขปัญหานี้ setUp() ใช้ในการกำหนดค่าเริ่มต้นให้กับตัวแปร

13 เมท็อด SetUp(); และ tearDown();
JUnit แต่ละหน่วย เวลาจะทดสอบจะต้องถูกแยกทดสอบจากกันอย่างอิสระ ผลการทดสอบ unit หนึ่ง จะต้องไม่ส่งผลกระทบ หรือสร้างการขึ้นต่อกันต่ออีก unit หนึ่ง เพราะฉะนั้นหากเราใช้ตัวแปรร่วมกันระหว่าง unit ต่างๆ ตัวแปรเหล่านั้น ควรจะถูก reset ค่ากลับไปยังค่าตั้งต้นเสมอ ส่วนการ teardown จะเอาไว้ใช้ในกรณีหากใน setup มีการไปเรียกใช้ resource ภายนอก เช่นการติดต่อ IO ส่วน teardown ก็จะเป็นที่ไว้เก็บงาน เช่น close IO connection ที่เปิดค้างเอาไว้ จากตัวอย่างที่ยกมา  เวลาสั่ง run ทั้ง class setUp(); testTypical(); tearDown(); testBoundaries();

14 เมท็อดที่ใช้ในการทดสอบ
Assert Method เป็น method หนึ่งใน JUnit ที่มีประโยชน์มากในการช่วยตรวจสอบ Test case ของเราซึ่งจะแจ้งเตือนทันทีเมื่อเรา run test แล้วผลที่ออกมาไม่ตรงกับที่ เราคาดหวัง ชื่อ assert ผลลัพธ์ที่คาดหวัง assertTrue() เมื่อเราคาดหวังให้ผลลัพธ์เป็น true assertFalse() เมื่อเราคาดหวังให้ผลลัพธ์เป็น false assertNull() เมื่อเราคาดหวังให้ผลลัพธ์เป็น null assertNotNull() เมื่อเราคาดหวังให้ผลลัพธ์ไม่เป็น null assertEquals() เมื่อเราคาดหวังให้ผลลัพธ์ออกมาเท่ากัน assertSame() เมื่อเราคาดหวังให้ผลลัพธ์ออกมาเป็นobject เดียวกัน assertNotSame() เมื่อเราคาดหวังให้ผลลัพธ์ออกมาเป็นคนละobjectกัน Fail() เมื่อเราคาดหวังให้ผลลัพธ์ออกมาเป็นFail เสมอ


ดาวน์โหลด ppt เครื่องมือที่ใช้ JUnit4.8.1 on Eclipse SDK3.5.2 ขึ้นไป

งานนำเสนอที่คล้ายกัน


Ads by Google