จุดตรวจใน QTP/UFT พร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
จุดตรวจใน UFT/QTP ตรวจสอบว่าแอปพลิเคชันส่งคืนคุณสมบัติ ข้อความ รูปภาพ หรือค่าฐานข้อมูลที่ผู้ทดสอบคาดหวังในแต่ละขั้นตอนหรือไม่ โดยเปลี่ยนการเล่นที่บันทึกไว้ให้เป็นคำตัดสินว่าผ่านหรือไม่ผ่าน ซึ่งทีมงานอัตโนมัติสามารถไว้วางใจได้
จุดตรวจคืออะไรใน UFT/QTP?
A ด่าน in UFT/QTP เป็นจุดตรวจสอบที่เปรียบเทียบค่าปัจจุบันของคุณสมบัติของวัตถุ คุณลักษณะของหน้า หรือแหล่งข้อมูลที่กำหนด กับค่าที่คาดหวังซึ่งได้บันทึกไว้ก่อนหน้านี้ในการทดสอบ หากค่าปัจจุบันและค่าที่คาดหวังตรงกัน UFT หากไม่ผ่าน จะบันทึกสถานะเป็น PASS หากไม่ผ่าน จะบันทึกสถานะเป็น FAIL
จุดตรวจสอบ (Checkpoints) เปลี่ยนสคริปต์ที่เพียงแค่เล่นซ้ำการกระทำให้กลายเป็นสคริปต์ที่ตรวจสอบผลลัพธ์ สคริปต์ที่บันทึกไว้สามารถดำเนินการทุกขั้นตอนได้อย่างสำเร็จแม้ว่าแอปพลิเคชันที่กำลังทดสอบจะแสดงข้อความที่ไม่ถูกต้อง รูปภาพที่ไม่ถูกต้อง หรือระเบียนฐานข้อมูลที่เสียหายก็ตาม จุดตรวจสอบจะตรวจจับความแตกต่างนั้นและรายงานออกมา
เหตุใดจึงต้องใช้จุดตรวจสอบ (Checkpoints) ในการทดสอบอัตโนมัติ?
การบันทึกสคริปต์เป็นการเล่นซ้ำลำดับการคลิกและการกดแป้นพิมพ์เท่านั้น ไม่ได้ยืนยันว่าแอปพลิเคชันนั้นให้ผลลัพธ์ที่ถูกต้องหรือไม่ การตรวจสอบจุดบันทึก (Checkpoints) ช่วยเติมเต็มช่องว่างนั้นโดยการเปลี่ยนการกระทำที่บันทึกไว้แต่ละครั้งให้เป็นการยืนยันที่สามารถทดสอบได้พร้อมผลลัพธ์ที่วัดได้
- แปลงการเล่นซ้ำให้เป็นการตรวจสอบ เพื่อให้ทุกครั้งที่รันจะได้ผลลัพธ์ที่ชัดเจนว่า ผ่าน หรือ ไม่ผ่าน แทนที่จะเป็นเพียงแค่สคริปต์ที่เสร็จสมบูรณ์
- ตรวจจับข้อผิดพลาดตั้งแต่เนิ่นๆ ก่อนที่ข้อบกพร่องจะไปถึงเวอร์ชันที่ผู้ทดสอบเข้าใจว่าเสถียรแล้ว
- ตรวจสอบความถูกต้องของข้อมูลที่มองไม่เห็นในระหว่างการสังเกตด้วยตนเอง เช่น ข้อมูล XML, แถวในฐานข้อมูล หรือคุณสมบัติของวัตถุที่ซ่อนอยู่
- อธิบายพฤติกรรมที่คาดหวัง เพื่อให้ทุกคนที่อ่านสคริปต์เข้าใจว่า "ถูกต้อง" ในขั้นตอนนั้นหมายถึงอะไร
เนื่องจากการตรวจสอบจุดหยุดทำงานโดยอัตโนมัติทุกครั้งที่มีการทดสอบ จึงทำให้ผู้ทดสอบไม่จำเป็นต้องตรวจสอบแต่ละหน้าจอด้วยตนเองหลังจากการทดสอบแต่ละรอบ ซึ่งเป็นสิ่งที่ทำให้... UFT/QTP ใช้งานได้จริงสำหรับการใช้ซ้ำ การทดสอบการถดถอย ในทุกเวอร์ชันของการสร้าง
ประเภทของจุดตรวจใน UFT/QTP
UFT/QTP มีประเภทจุดตรวจสอบหลายประเภทเพื่อให้ผู้ทดสอบสามารถตรวจสอบส่วนที่สำคัญของแอปพลิเคชันในแต่ละขั้นตอนได้อย่างแม่นยำ ไม่ว่าจะเป็นคุณสมบัติคงที่ บล็อกข้อความ รูปภาพบิตแมป บันทึกในฐานข้อมูล หรือเอกสาร XML ทั้งหมด การเลือกประเภทที่ตรงกับวัตถุที่กำลังทดสอบจะช่วยให้ขั้นตอนนั้นมีความชัดเจนและง่ายต่อการบำรุงรักษา
- จุดตรวจสอบมาตรฐาน: เปรียบเทียบค่าที่คาดหวังของคุณสมบัติของวัตถุที่บันทึกไว้ระหว่างการบันทึก กับค่าปัจจุบันของวัตถุในระหว่างเซสชันการทำงาน ฟังก์ชันนี้รองรับโดยสภาพแวดล้อมของส่วนเสริมทุกตัว
- จุดตรวจสอบหน้าเว็บ: จุดตรวจสอบมาตรฐานที่สร้างขึ้นสำหรับหน้าเว็บ จะตรวจสอบจำนวนลิงก์และรูปภาพทั้งหมดในหน้าเว็บ และสามารถวัดเวลาในการโหลดหน้าเว็บได้
- จุดตรวจสอบข้อความ: ตรวจสอบว่าข้อความที่ระบุปรากฏอยู่ในพื้นที่ที่กำหนดของหน้าเว็บหรือ... Windowsแอปพลิเคชันที่ใช้พื้นฐาน
- จุดตรวจสอบพื้นที่ข้อความ: ตรวจสอบว่าข้อความแสดงผลภายในพื้นที่หน้าจอที่กำหนดไว้หรือไม่ Windowsแอปพลิเคชันที่ใช้เกณฑ์ต่างๆ เช่น การจับคู่ตัวพิมพ์ใหญ่-เล็ก หรือการจับคู่แบบไวด์การ์ด
- จุดตรวจสอบบิตแมป: ตรวจสอบบิตแมปของรูปภาพหรือหน้าเว็บทั้งหมด โดยเปรียบเทียบพิกเซลต่อพิกเซลระหว่างรูปภาพจริงกับรูปภาพที่คาดหวัง
- จุดตรวจสอบรูปภาพ: ตรวจสอบคุณสมบัติของภาพบนเว็บ เช่น ตำแหน่งไฟล์ต้นฉบับ ซึ่งแตกต่างจาก Bitmap Checkpoint ตรงที่ไม่เปรียบเทียบพิกเซล
- จุดตรวจสอบการเข้าถึง: ตรวจสอบให้แน่ใจว่าแอปพลิเคชันเป็นไปตามแนวทางของ World Wide Web Consortium (W3C) สำหรับเทคโนโลยีบนเว็บ ทำให้ผู้พิการสามารถใช้งานแอปพลิเคชันได้ง่ายขึ้น
- จุดตรวจสอบฐานข้อมูล: เรียกใช้คำสั่งค้นหาข้อมูลในขณะที่บันทึกข้อมูล และจัดเก็บค่าที่ได้จากฐานข้อมูลเป็นค่าที่คาดหวัง จากนั้นเรียกใช้คำสั่งค้นหาข้อมูลเดียวกันอีกครั้งในขณะที่โปรแกรมทำงาน เพื่อเปรียบเทียบค่าจริงและค่าที่คาดหวัง
- จุดตรวจสอบตาราง: ตรวจสอบเนื้อหาของเซลล์ในตารางหรือตารางกริดแบบไดนามิก พร้อมทั้งคุณสมบัติของตาราง เช่น ความสูงของแถวและความกว้างของเซลล์ คล้ายกับการตรวจสอบจุดเปลี่ยนสถานะของฐานข้อมูล (Database Checkpoint)
- จุดตรวจสอบ XML: ตรวจสอบข้อมูล XML, โครงสร้าง XML และทรัพยากร XML ที่ฝังอยู่ในหน้าเว็บหรือในเอกสาร .xml แบบแยกต่างหาก
ตารางด้านล่างนี้เปรียบเทียบประเภทจุดตรวจสอบทั้งสิบแบบ เพื่อให้คุณสามารถเลือกจุดตรวจสอบที่เหมาะสมก่อนเริ่มบันทึกได้
| ประเภทจุดตรวจ | ตรวจสอบ | ใช้ดีที่สุดสำหรับ |
|---|---|---|
| Standard | ค่าคุณสมบัติของวัตถุ | การตรวจสอบความถูกต้องทั่วไปสำหรับวัตถุส่วนเสริมใดๆ |
| หน้า | ลิงก์ รูปภาพ เวลาในการโหลด | ยืนยันว่าหน้าเว็บโหลดเสร็จสมบูรณ์แล้ว |
| ข้อความ | การมีอยู่ของข้อความเฉพาะ | ยืนยันว่าข้อความหรือป้ายกำกับปรากฏขึ้น |
| พื้นที่ข้อความ | ข้อความภายในพื้นที่หน้าจอ | Windows แอปพลิเคชันที่มีการควบคุมข้อความที่ไม่เป็นไปตามมาตรฐาน |
| บิตแมป | การจับคู่ภาพระดับพิกเซล | การถดถอยเชิงภาพของแผนภูมิ โลโก้ และเค้าโครง |
| ภาพ | คุณสมบัติของแหล่งที่มาของภาพ | ยืนยันว่าไฟล์ภาพที่แสดงถูกต้องแล้ว |
| การเข้าถึง | การปฏิบัติตามมาตรฐาน W3C | การตรวจสอบเว็บเพจเพื่อหาช่องโหว่ด้านการเข้าถึง |
| ฐานข้อมูล | ค่าผลลัพธ์การค้นหา | ตรวจสอบว่าข้อมูลแบ็กเอนด์ตรงกับข้อมูล UI หรือไม่ |
| ตาราง | เนื้อหาและเค้าโครงของเซลล์ตาราง | รายงาน ผลการค้นหา และตารางข้อมูล |
| XML | ข้อมูล XML และสคีมา | บริการเว็บและหน้าเว็บที่ขับเคลื่อนด้วย XML |
ค่าตรวจสอบ (Checkpoint) กับค่าผลลัพธ์ (Output Value): แตกต่างกันอย่างไร?
ผู้ทดสอบมือใหม่ UFT/QTP หลายคนมักสับสนระหว่างจุดตรวจสอบ (checkpoints) กับค่าเอาต์พุต (output values) เพราะทั้งสองอย่างถูกเพิ่มเข้ามาจากเมนูเดียวกัน และทั้งคู่ต่างอ่านค่าคุณสมบัติแบบเรียลไทม์จากอ็อบเจ็กต์ แต่จริงๆ แล้วทั้งสองอย่างมีจุดประสงค์ที่ตรงกันข้ามกัน
| แง่มุม | ด่าน | มูลค่าผลลัพธ์ |
|---|---|---|
| จุดมุ่งหมาย | ยืนยันว่าคุณสมบัติที่ตรวจจับได้ตรงกับค่าที่คาดหวัง | บันทึกคุณสมบัติขณะรันไทม์ เพื่อให้ขั้นตอนต่อไปสามารถนำกลับมาใช้ใหม่ได้ |
| ผลกระทบจากการสอบผ่าน/สอบตก | ขั้นตอนดังกล่าวล้มเหลวและรายงานความไม่ตรงกันของผลลัพธ์ | ไม่เคยสอบตกด้วยตัวเอง |
| มูลค่าไปอยู่ที่ไหน | เมื่อเปรียบเทียบภายใน จะแสดงผลเป็น ผ่าน/ไม่ผ่าน ในผลการทดสอบ | เก็บไว้ในตารางข้อมูลขณะทำงานหรือตัวแปร |
| การใช้งานทั่วไป | ยืนยันชื่อหน้าหรือผลรวมของฐานข้อมูล | ส่งหมายเลขคำสั่งซื้อที่สร้างขึ้นไปยังขั้นตอนถัดไป |
ใช้จุดตรวจสอบ (checkpoint) ทุกครั้งที่สคริปต์ต้องการหลักฐานว่าผ่านหรือไม่ผ่าน และใช้ค่าเอาต์พุต (output value) ทุกครั้งที่ขั้นตอนถัดไปต้องการข้อมูลที่บันทึกไว้เป็นอินพุต
วิธีการแทรกจุดตรวจสอบใน UFT/QTP
จุดตรวจสอบส่วนใหญ่สามารถแทรกได้เฉพาะในขณะที่ UFT กำลังบันทึกอยู่ เมื่อการบันทึกหยุดลง เมนูจุดตรวจสอบจะไม่สามารถใช้งานได้สำหรับการแทรกใหม่ ขั้นตอนด้านล่างนี้เป็นการแทรกจุดตรวจสอบมาตรฐาน ซึ่งเป็นประเภทที่ใช้บ่อยที่สุด
คลิก Good Farm Animal Welfare Awards หากไม่สามารถเข้าถึงวิดีโอได้
- เปิดแอปพลิเคชันที่กำลังทดสอบและ เริ่มบันทึก in UFT.
- ไปยังหน้าจอหรือวัตถุที่ต้องการตรวจสอบ จากนั้นคลิกขวาที่ขั้นตอนถัดจากขั้นตอนที่มีจุดตรวจสอบอยู่
- จากเมนูบริบท ให้เลือก แทรกจุดตรวจสอบมาตรฐาน หรือเลือกประเภทเฉพาะ เช่น บิตแมป ฐานข้อมูล ตาราง เป็นต้น จากเมนูย่อยจุดตรวจสอบ
- ในกล่องโต้ตอบคุณสมบัติจุดตรวจสอบ ให้คงชื่อจุดตรวจสอบเริ่มต้นไว้ หรือเปลี่ยนเป็นชื่อที่สื่อความหมายได้
- เลือกคุณสมบัติของวัตถุที่ต้องการตรวจสอบ คุณสมบัติที่เลือกแต่ละรายการจะมีเครื่องหมายถูกกำกับไว้ ไอคอน ABC แสดงถึงค่าคงที่ และไอคอนจะเปลี่ยนไปหากคุณสมบัตินั้นเป็นค่าพารามิเตอร์
- คลิก OK UFT แทรกคำสั่งตรวจสอบทันทีหลังจากขั้นตอนปัจจุบัน
- หยุดการบันทึกและเล่นการทดสอบซ้ำเพื่อยืนยันว่ารายงานจุดตรวจสอบแสดงว่าผ่าน
⚠ ข้อผิดพลาดที่พบบ่อย: หากขั้นตอนก่อนจุดตรวจสอบปิดหรือแทนที่หน้าต่างเป้าหมาย UFT เกิดข้อผิดพลาดขณะรันไทม์ เนื่องจากวัตถุนั้นไม่มีอยู่แล้วเมื่อระบบตรวจสอบพยายามอ่านค่าจากวัตถุนั้น HP QTPโดยปกติแล้ว การจัดลำดับขั้นตอนที่ได้รับผลกระทบใหม่เพื่อให้วัตถุเป้าหมายยังคงเปิดอยู่เมื่อทำการตรวจสอบจุดหยุดการทำงาน ก็เพียงพอที่จะแก้ไขปัญหานี้ได้
ตัวอย่างโค้ด VBScript ด้านล่างนี้แสดงให้เห็นถึงแนวคิดเดียวกันที่แสดงออกมาผ่านทาง UFT โมเดลวัตถุอัตโนมัติ: คำสั่งตรวจสอบ (Check statement) ที่ส่งค่าบูลีนกลับมา ซึ่งสคริปต์จะนำค่าดังกล่าวไปรายงานผ่านวัตถุผู้รายงาน (Reporter object)
Dim Result ' Holds the PASS/FAIL outcome of the checkpoint Browser("Flight Reservation").Page("Flight Reservation").WinEdit("Agent Name:").Set "Diana" Browser("Flight Reservation").Page("Flight Reservation").WinButton("OK").Click ' Run the Standard Checkpoint that was inserted after the OK click Result = Browser("Flight Reservation").Page("Flight Reservation").Check(CheckPoint("Flight Reservation Window")) If Result Then Reporter.ReportEvent micPass, "Checkpoint Passed", "Flight Reservation window matches expected values" Else Reporter.ReportEvent micFail, "Checkpoint Failed", "Flight Reservation window does not match expected values" End If
วิดีโอนี้สาธิตประเภทจุดตรวจสอบต่างๆ ที่มีให้ใช้งาน UFT/QTPรวมถึงการตรวจสอบจุดบันทึกมาตรฐาน จุดบันทึกบิตแมป และจุดบันทึกฐานข้อมูลที่ใช้งานได้จริง
แนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้จุดตรวจสอบอย่างมีประสิทธิภาพ
จุดตรวจสอบจะมีความน่าเชื่อถือได้มากน้อยเพียงใดนั้นขึ้นอยู่กับวัตถุและคุณสมบัติที่กำหนดเป้าหมายไว้ แนวทางปฏิบัติด้านล่างนี้จะช่วยให้จุดตรวจสอบมีความถูกต้องแม่นยำแม้ว่าแอปพลิเคชันที่กำลังทดสอบจะมีการเปลี่ยนแปลงก็ตาม
- ตรวจสอบเฉพาะวัตถุที่ต้องการ ไม่ใช่ทั้งหน้าเว็บ เพื่อหลีกเลี่ยงการทดสอบที่ไม่เสถียรซึ่งล้มเหลวเมื่อมีการเปลี่ยนแปลง UI ที่ไม่เกี่ยวข้อง
- เปิดไฟล์ที่ตรวจสอบไว้ค้างไว้ขณะที่ทำการตรวจสอบจุดหยุด การจัดลำดับขั้นตอนใหม่มักเป็นวิธีแก้ไขข้อผิดพลาดขณะรันไทม์ "ไม่พบวัตถุ" ที่กล่าวถึงข้างต้น
- ชอบ ฐานข้อมูล หรือใช้จุดตรวจสอบ XML แทนจุดตรวจสอบ Bitmap สำหรับการตรวจสอบความถูกต้องของข้อมูล — การเปรียบเทียบ Bitmap จะล้มเหลวเมื่อมีการเปลี่ยนแปลงแบบอักษร ความละเอียด หรือธีม ซึ่งไม่เกี่ยวข้องกับข้อมูลเลย
- กำหนดค่าพารามิเตอร์ของจุดตรวจสอบจากตารางข้อมูลเมื่อจำเป็นต้องเรียกใช้การตรวจสอบเดียวกันซ้ำหลายครั้งในการทดสอบ
- ตั้งชื่อจุดตรวจสอบแต่ละจุดให้มีความหมายชัดเจน เพื่อให้สามารถระบุตำแหน่งความล้มเหลวได้ง่ายในหน้าต่างผลการทดสอบ
- จับคู่จุดตรวจสอบกับการซิงโครไนซ์ เช่น คำสั่งรอ หรือ Sync วิธีการนี้จะทำให้ไม่มีการตรวจสอบใดๆ เกิดขึ้นจนกว่าหน้าเว็บจะโหลดเสร็จสมบูรณ์

