กลับไปหน้าบทความ

อ่าน 3 นาที

ทีโคฟ

ตัวชี้วัดซอฟต์แวร์/เครื่องมือทดสอบซอฟต์แวร์

Tcovเป็น เครื่องมือวิเคราะห์ ความครอบคลุมของซอร์สโค้ดและการสร้างโปรไฟล์แบบคำสั่งต่อคำสั่งสำหรับซอฟต์แวร์ที่เขียนด้วยภาษาFortran , CและC++ Tcov...

ทีโคฟ

ทีโคฟ
นักพัฒนาบริษัท ออราเคิล คอร์ปอเรชั่น
ระบบปฏิบัติการโซลาริส
แพลตฟอร์มสปาร์ค
พิมพ์ความครอบคลุมของรหัส
ใบอนุญาตดาวน์โหลดและใช้งานได้ฟรีตามที่ระบุไว้ในข้อตกลงใบอนุญาตผลิตภัณฑ์ Sun Studio
เว็บไซต์นักพัฒนา.ซัน.คอม

Tcovเป็น เครื่องมือวิเคราะห์ ความครอบคลุมของซอร์สโค้ดและการสร้างโปรไฟล์แบบคำสั่งต่อคำสั่งสำหรับซอฟต์แวร์ที่เขียนด้วยภาษาFortran , CและC++ Tcov จะสร้างจำนวนครั้งที่แต่ละคำสั่งในโปรแกรมถูกเรียกใช้งานอย่างแม่นยำ และเพิ่มคำอธิบายประกอบในซอร์สโค้ดเพื่อเพิ่มการตรวจสอบ เป็นยูทิลิตี้มาตรฐานที่ให้มาฟรีพร้อมกับซอฟต์แวร์Sun Studio

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

คำอธิบาย

tcov ใช้สำหรับวิเคราะห์ความครอบคลุมของการทดสอบของโปรแกรมที่คอมไพล์แล้ว tcov รับไฟล์ต้นฉบับเป็นอาร์กิวเมนต์และสร้างรายการโค้ดต้นฉบับพร้อมคำอธิบายประกอบ แต่ละบล็อกโค้ดพื้นฐาน (หรือแต่ละบรรทัดหากระบุตัวเลือกเฉพาะสำหรับ tcov) จะมีคำนำหน้าเป็นจำนวนครั้งที่ถูกเรียกใช้งาน บรรทัดที่ไม่ถูกเรียกใช้งานจะมีคำนำหน้าเป็น "#####"

ยูทิลิตี้ tcov ยังแสดงสรุปไว้ที่ท้ายรายการโปรแกรมที่มีคำอธิบายประกอบด้วย สถิติสำหรับบล็อกพื้นฐานที่ถูกเรียกใช้งานบ่อยที่สุดจะแสดงตามลำดับความถี่ในการเรียกใช้งาน หมายเลขบรรทัดคือหมายเลขบรรทัดแรกในบล็อกนั้น

tcov มีการใช้งานอยู่สองแบบ:

  • การวิเคราะห์ความครอบคลุมแบบเก่า: [ 1 ]ในการใช้งานนี้ หรือที่รู้จักกันในชื่อ tcov ดั้งเดิมคอมไพเลอร์จะสร้างไฟล์ข้อมูลความครอบคลุมที่มีคำต่อท้าย .d สำหรับไฟล์ออบเจ็กต์แต่ละไฟล์เมื่อโปรแกรมเสร็จสิ้น ไฟล์ข้อมูลความครอบคลุมจะได้รับการอัปเดต
  • การวิเคราะห์ความครอบคลุมรูปแบบใหม่: [ 2 ]ในการใช้งานนี้ หรือที่รู้จักกันในชื่อ tcov enhanced จะไม่มีการสร้างไฟล์เพิ่มเติมในระหว่างการคอมไพล์ แต่ จะมีการสร้าง ไดเร็กทอรีเพื่อจัดเก็บข้อมูลโปรไฟล์ และไฟล์ข้อมูลความครอบคลุมเพียงไฟล์เดียวชื่อ tcovd จะถูกสร้างขึ้นในไดเร็กทอรีนั้น

การวิเคราะห์การครอบคลุมที่ได้รับการปรับปรุงจะเอาชนะข้อบกพร่องบางประการของเครื่องมือวิเคราะห์ดั้งเดิม เช่น: [ 3 ]

  • ให้การสนับสนุนที่สมบูรณ์ยิ่งขึ้นสำหรับภาษา C++
  • รองรับโค้ดที่พบในไฟล์เฮดเดอร์ #include และแก้ไขข้อผิดพลาดที่บดบังตัวเลขความครอบคลุมสำหรับคลาสและฟังก์ชันเทมเพลต
  • รันไทม์มีประสิทธิภาพกว่ารันไทม์ tcov ดั้งเดิม
  • รองรับทุกแพลตฟอร์มที่คอมไพเลอร์รองรับ

การดำเนินการ

ในการสร้างซอร์สโค้ดที่มีคำอธิบายประกอบ จำเป็นต้องทำตามขั้นตอนต่อไปนี้ 3 ขั้นตอน: [ 4 ]

  • การคอมไพล์โค้ดด้วยตัวเลือกคอมไพเลอร์ที่เหมาะสม
  • ดำเนินการโปรแกรมเพื่อรวบรวมข้อมูลโปรไฟล์
  • การเรียกใช้คำสั่ง tcovเพื่อสร้างไฟล์ที่มีคำอธิบายประกอบ

การรันแต่ละครั้งจะสะสมข้อมูลการครอบคลุมเพิ่มเติมลงในไฟล์ข้อมูลโปรไฟล์ ข้อมูลสำหรับไฟล์ออบเจ็กต์แต่ละไฟล์จะถูกตั้งค่าเป็นศูนย์ในครั้งแรกที่โปรแกรมถูกเรียกใช้หลังจากการคอมไพล์ใหม่ ข้อมูลสำหรับโปรแกรมทั้งหมดจะถูกตั้งค่าเป็นศูนย์โดยการลบไฟล์ tcovd [ 5 ]

ขั้นตอนข้างต้นจะอธิบายไว้สำหรับทั้ง tcov แบบดั้งเดิมและแบบปรับปรุงแล้วด้านล่าง:

การวิเคราะห์ความครอบคลุมแบบเก่า

โค้ดต้นฉบับจะถูกคอมไพล์ด้วย ตัวเลือก -xaสำหรับโปรแกรมภาษา C และ ตัวเลือก -aสำหรับโปรแกรม Fortran และ C++ คอมไพเลอร์จะสร้างไฟล์ข้อมูลการครอบคลุมที่มีนามสกุล.dสำหรับไฟล์ออบเจ็กต์แต่ละไฟล์ ไฟล์ข้อมูลการครอบคลุมจะถูกสร้างขึ้นในไดเร็กทอรีที่ระบุโดยตัวแปรสภาพแวดล้อมTCOVDIRหาก ไม่ได้ตั้งค่า TCOVDIRไฟล์ข้อมูลการครอบคลุมจะถูกสร้างขึ้นในไดเร็กทอรีปัจจุบัน การสร้างที่ใส่เครื่องมือข้างต้นจะถูกเรียกใช้ และเมื่อโปรแกรมเสร็จ สิ้น ไฟล์ . dจะได้รับการอัปเดต สุดท้าย คำสั่ง tcov จะถูกเรียกใช้เพื่อสร้างไฟล์ต้นฉบับที่มีคำอธิบายประกอบ ไวยากรณ์ของคำสั่ง tcov มีดังนี้:

ตัวเลือก tcov รายการไฟล์ต้นฉบับ 

ในที่นี้source-file-listคือรายการชื่อไฟล์ของซอร์สโค้ด สำหรับรายการตัวเลือกต่างๆ เอาต์พุตเริ่มต้นของ tcov คือชุดไฟล์แต่ละไฟล์ที่มีนามสกุล.tcovซึ่งสามารถเปลี่ยนแปลงได้โดยใช้ ตัวเลือก -o filename

โปรแกรมที่คอมไพล์เพื่อวิเคราะห์ความครอบคลุมของโค้ดสามารถเรียกใช้งานได้หลายครั้ง (โดยอาจมีอินพุตที่แตกต่างกัน) และสามารถใช้ tcov กับโปรแกรมหลังจากเรียกใช้งานแต่ละครั้งเพื่อเปรียบเทียบพฤติกรรมได้

การวิเคราะห์ความครอบคลุมของรูปแบบใหม่

โค้ดต้นฉบับจะถูกคอมไพล์ด้วย ตัวเลือก -xprofile=tcovแตกต่างจากโหมดดั้งเดิม tcov ที่ได้รับการปรับปรุงจะไม่สร้างไฟล์ใดๆ ในระหว่างการคอมไพล์[ 6 ]การสร้างที่มีเครื่องมือข้างต้นจะถูกเรียกใช้ และเมื่อโปรแกรมเสร็จสิ้น จะมีการสร้างไดเร็กทอรีเพื่อจัดเก็บข้อมูลโปรไฟล์ และไฟล์ข้อมูลความครอบคลุมเพียงไฟล์เดียวชื่อtcovdจะถูกสร้างขึ้นในไดเร็กทอรีนั้นtcovdจะเก็บข้อมูลเกี่ยวกับหมายเลขบรรทัดและจำนวนการดำเนินการ เป็นไฟล์ข้อความธรรมดา โดยค่าเริ่มต้น ไดเร็กทอรีจะถูกสร้างขึ้นในตำแหน่งที่โปรแกรมทำงาน และตั้งชื่อตามไฟล์ปฏิบัติการและต่อท้ายด้วย . profileไดเร็กทอรีนี้ยังเป็นที่รู้จักในชื่อบัคเก็ตโปรไฟล์ตำแหน่งของบัคเก็ตโปรไฟล์สามารถถูกแทนที่ได้โดยการตั้งค่า ตัวแปรสภาพแวดล้อม SUN_PROFDATA_DIRหรือSUN_PROFDATAสุดท้าย คำสั่ง tcov จะถูกเรียกใช้เพื่อสร้างไฟล์ต้นฉบับที่มีคำอธิบายประกอบ ไวยากรณ์ของคำสั่ง tcov เหมือนกับคำสั่งดั้งเดิม ยกเว้นตัวเลือก-x ที่บังคับใช้

ตัวเลือก tcov -x profilebucket source-file-list 

ความแตกต่างเพียงอย่างเดียวของคำสั่งจาก tcov ดั้งเดิมคือ การเพิ่ม ตัวเลือก -x dir เข้าไป เพื่อระบุว่าเป็น tcov ที่ได้รับการปรับปรุงแล้ว

ตัวอย่าง

โปรแกรมต่อไปนี้เขียนด้วยภาษา Cโดยจะวนลูปตรวจสอบจำนวนเต็มตั้งแต่ 1 ถึง 9 และทดสอบการหารลงตัวด้วยตัวดำเนินการโมดูลัส (%)

#include <stdio.h>int main ( void ) { int i ;สำหรับ( i = 1 ; i < 10 ; i ++ ) { ถ้า( i % 3 == 0 ) printf ( "%d หารด้วย 3 ลงตัว\n " , i ); ถ้า( i % 11 == 0 ) printf ( "%d หารด้วย 11 ลงตัว\n " , i ); }ส่งคืนค่า0 ; }

เพื่อให้สามารถทดสอบความครอบคลุมของโค้ดได้ โปรแกรมจะต้องถูกคอมไพล์ด้วยตัวเลือกต่อไปนี้:

สำหรับความครอบคลุมของโค้ดแบบเก่า

cc -xa cov.c

และสำหรับการครอบคลุมรหัสรูปแบบใหม่

ซีซี -xprofile=tcov -o cov cov.c

โดยที่ cov.c คือชื่อไฟล์โปรแกรม คำสั่งนี้จะสร้างไฟล์ปฏิบัติการที่มีคำสั่งเพิ่มเติมเพื่อบันทึกจำนวนครั้งที่แต่ละบรรทัดของโปรแกรมถูกเรียกใช้งาน ตัวเลือก -oใช้สำหรับกำหนดชื่อของไฟล์ปฏิบัติการ จากนั้นต้องเรียกใช้ไฟล์ปฏิบัติการเพื่อสร้างข้อมูลความครอบคลุม การสร้างและตำแหน่งของไฟล์นี้จะแตกต่างกันสำหรับการวิเคราะห์โค้ดแบบเก่าและแบบใหม่ ใน การวิเคราะห์ แบบเก่าไฟล์นี้ที่มีนามสกุล.dซึ่งสร้างขึ้นหลังจากการคอมไพล์ ไม่ว่าจะอยู่ใน ไดเร็กทอรี TCOVDIR หรือไดเร็กทอรีปัจจุบัน จะได้รับการอัปเดตด้วยข้อมูลความครอบคลุม ใน การวิเคราะห์ แบบใหม่ไฟล์ข้อมูลความครอบคลุมชื่อtcovdจะถูกสร้างขึ้นใน ไดเร็กทอรี <ชื่อไฟล์ปฏิบัติการ>.profileข้อมูลนี้สามารถวิเคราะห์ได้โดยใช้คำสั่ง tcov และชื่อของไฟล์ต้นฉบับ:

สำหรับความครอบคลุมของโค้ดแบบเก่า

tcov cov.c

และสำหรับการครอบคลุมรหัสรูปแบบใหม่

tcov -x cov.profile cov.c

อาร์กิวเมนต์เพิ่มเติมใน การวิเคราะห์ รูปแบบใหม่คือprofile bucketคำ สั่ง tcov จะสร้าง ไฟล์ต้นฉบับที่มีคำอธิบายประกอบโดยมีนามสกุลไฟล์ '.tcov' ซึ่งประกอบด้วยจำนวนครั้งที่แต่ละบรรทัดถูกเรียกใช้งาน:

#include <stdio.h>int main ( void ) { 1 int i ;10 สำหรับ( i = 1 ; i < 10 ; i ++ ) { 9 ถ้า( i % 3 == 0 ) 3 พิมพ์( "%d หารด้วย 3 ลงตัว\n " , i ); 9 ถ้า( i % 11 == 0 ) ###### พิมพ์ ( "%d หารด้วย 11 ลงตัว\n", i); 9 }1 คืนค่า0 ; 1 }

ยู ทิลิตี้ tcovยังแสดงสรุปไว้ที่ท้ายรายการโปรแกรมที่มีคำอธิบายประกอบด้วย สถิติสำหรับบล็อกพื้นฐาน ที่ถูกเรียกใช้งานบ่อยที่สุด จะแสดงตามลำดับความถี่ในการเรียกใช้งาน หมายเลขบรรทัดคือหมายเลขบรรทัดแรกในบล็อกนั้น

ตัวเลือกบรรทัดคำสั่ง

ยูทิลิตี้บรรทัดคำสั่ง Tcov รองรับตัวเลือกต่อไปนี้ขณะสร้างไฟล์คำอธิบายประกอบจากข้อมูลโปรไฟล์: [ 7 ]

  • -a : แสดงจำนวนการเรียกใช้งานสำหรับแต่ละคำสั่ง หากไม่ได้ระบุตัวเลือกนี้ ระบบจะแสดงจำนวนการเรียกใช้งานเฉพาะคำสั่งแรกของบล็อกโค้ด เท่านั้น
  • -n : แสดงตารางหมายเลขบรรทัดของคำสั่งที่ถูกเรียกใช้บ่อยที่สุด n คำสั่ง พร้อมจำนวนครั้งที่เรียกใช้
  • -o filename : กำหนดเส้นทางการส่งออกไปยังไฟล์ชื่อ filenameแทนที่จะเป็นfile.tcovตัวเลือกนี้สามารถใช้เพื่อกำหนดเส้นทางการส่งออกไปยังเอาต์พุตมาตรฐานได้โดยการระบุ-
  • -x dir : ตัวเลือกนี้รองรับในการวิเคราะห์ความครอบคลุมแบบใหม่ หากไม่ได้ระบุตัวเลือกนี้ จะถือว่าเป็นการวิเคราะห์ความครอบคลุมแบบ tcov แบบเก่า

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Tcov&oldid=1346895026 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ทีโคฟ

Tcovเป็น เครื่องมือวิเคราะห์ ความครอบคลุมของซอร์สโค้ดและการสร้างโปรไฟล์แบบคำสั่งต่อคำสั่งสำหรับซอฟต์แวร์ที่เขียนด้วยภาษาFortran , CและC++ Tcov...

คำอธิบาย

tcov ใช้สำหรับวิเคราะห์ความครอบคลุมของการทดสอบของ โปรแกรมที่คอมไพล์แล้ว tcov รับไฟล์ต้นฉบับเป็นอาร์กิวเมนต์และสร้างรายการโค้ดต้นฉบับพร้อมคำอธิบายประกอบ แต่ละ บล็อกโค้ดพื้นฐาน (หรือแต่ละบรรทัดหากระบุตัวเลือกเฉพาะสำหรับ tcov)...

การดำเนินการ

ในการสร้างซอร์สโค้ดที่มีคำอธิบายประกอบ จำเป็นต้องทำตามขั้นตอนต่อไปนี้ 3 ขั้นตอน: [ 4 ]

การวิเคราะห์ความครอบคลุมแบบเก่า

โค้ดต้นฉบับจะถูกคอมไพล์ด้วย ตัวเลือก -xa สำหรับโปรแกรมภาษา C และ ตัวเลือก -a สำหรับโปรแกรม Fortran และ C++ คอมไพเลอร์จะสร้างไฟล์ข้อมูลการครอบคลุมที่มีนามสกุล .