Emma Tool
Overview
Emma Tools เป็น Code Coverage Tools แบบ Open Source แบบหนึ่งซึ่งมีประสิทธิภาพเด่นๆ ใน การ Test ในขณะที่โปรแกรมที่นำมา Test กำลังทำงาน หรือช่วง Runtime ซึ่งเหมาะสำหรับการ Test ในระดับ System Test ซึ่งมี การทำงานอยู่สองแบบคือ
- Offline Instrument คือ Emma จะทำการ instruments classes ทุกๆ classes ที่อยู่ในโปรเจกหรือโปรแกรมที่ต้องการนำมา Test แล้วจะเก็บข้อมูลได้เป็น meta data หรือ ข้อมูล classes (coverage.em) ที่จะนำไปเปรียบเทียบกับ coverage data (coverage.ec) เพื่อนำ ไป generate ออกเป็น Report อีกทีหนึ่ง
- On The Fly Instrument คือ Emma จะทำการ Instrument Class ก่อนที่ Class นั้น จะทำขึ้นไป Execute บน JVM ซึ่งคือ Emma จะ Instrument เฉพาะ Class ที่ถูกใช้งานจริงเท่านั้น
Feature
- สามารถ Instrument classes ใน mode offline(ก่อนที่ classesทั้งหมด จะถูก load ลง JVM ) และ mode on the fly ( instrument สำหรับ class ที่ถูกโหลดลง JVM ในขณะ Runtime)
- Coverage ในระดับ Package,Class,Method,Line,*Basic Block
- ออก Report ในรูปแบบ Plain Text,HTML,XML
- highlight code แต่ละ line ได้ ใน Report
- ใน Report สามารถบอกรายละเอียดจำนวน และรายชื่อ Method ได้ในแต่ละ Class
* Basic Block คือกลุ่มของคำสั่งที่มีทางเข้า 1 ทาง ไม่มีทางออกก่อนคำสั่งสุดท้ายใน block นั้น (เช่นมี if แทรก อยู่ระหว่างกลุ่มคำสั่ง Emma จะประมวลผลถึงคำสั่งสุดท้ายก่อนที่จะถึง if
Sample Report
- Overall Coverage Summary:
- Coverage Summary for Package:
- Coverage Summary for Source File:
- Hight Light in Source File:
* สีเหลืองที่ Highlight คือ ส่วนที่ไม่ใช่ if else statement แต่ได้ถูก execute ไปแล้ว
Installation Emma
1. ทำการ Download Library ของ Emma ที่
http://emma.sourceforge.net/downloads.html หลังไฟล์ emma.jar มา ให้นำไปวางไว้ที่ ที่อยู่ของ JRE ในที่นี้คือ C:\Program Files\Java\jre1.6.0_03\lib\ext
2. หลังจากที่ลง emma.jar แล้ว เราสามารถใช้คำสั่งเสริมของ emma ได้
จะมีคำสั่งหลัก 4 คำสั่งด้วยกันคือ
- run จะเป็นคำสั่ง วัด Code Coverage ใน mode On the Fly
- instr เป็นคำสั่ง ใน mode offline คือทำการดึง meta data file ออกมา
- report เป็นคำสั่ง สร้าง report ออกมา จาก ไฟล์ instrument (.em )และ ไฟล์ coverage (.ec )
- merge เป็นการรวมไฟล์ระหว่าง meta data กะ coverage ไฟล์ จะได้ session ไฟล์ มา (.es
Quick Start
On The Fly Mode
1. ในที่นี้เราจะ Test โปรแกรม
SwingSet2??.jar ที่อยู่ใน C:\Program Files\Java\jdk1.6.0_03\demo\jfc\SwingSet2 ให้ copy file มาไว้ที่ Desktop แล้วเปิด Start->run พิมพ์ cmd เพื่อใช้ command line ในการ Test
2. พิมพ์คำสั่ง java emma run -r html -jar
SwingSet2??.jar เป็นการสั่งให้ emma test ใน mode on the fly แล้ว ออก report เป็นไฟล์ html
3. หลังจากที่พิมพ์คำสั่ง ในข้อ2 แล้วกด enter จะเป็นการเรียก โปรแกรมขึ้นมา Test หลังจากที่ใช้ แล้วปิดโปรแกรมลง emma จะทำการ ออก Report ให้
4. เมื่อเข้าไปดูในที่ folder Coverage ใน path เดียวกันกับ
SwingSet2??.jar คลิกที่ index.html จะได้ Report ดังรูป
Reference
- EMMA: a free Java code coverage tool, http://emma.sourceforge.net/