กรอบการทำงานอัตโนมัติทดสอบ: คืออะไร Archiเทคเจอร์และประเภท
Framework ในการทดสอบระบบอัตโนมัติคืออะไร?
A ทดสอบกรอบการทำงานอัตโนมัติ เป็นชุดแนวทางปฏิบัติ เช่น มาตรฐานการเขียนโค้ด การจัดการข้อมูลการทดสอบ การจัดการกับที่เก็บอ็อบเจ็กต์ เป็นต้น ซึ่งเมื่อปฏิบัติตามระหว่างการเขียนสคริปต์อัตโนมัติ จะก่อให้เกิดผลลัพธ์ที่เป็นประโยชน์ เช่น การนำโค้ดกลับมาใช้ซ้ำได้มากขึ้น ความสามารถในการพกพาที่สูงขึ้น ต้นทุนการบำรุงรักษาสคริปต์ที่ลดลง เป็นต้น แนวทางปฏิบัติเหล่านี้เป็นเพียงแนวทางปฏิบัติเท่านั้น ไม่ใช่กฎเกณฑ์ และไม่บังคับ และคุณยังสามารถเขียนสคริปต์ได้โดยไม่ต้องปฏิบัติตามแนวทางปฏิบัติ แต่คุณจะพลาดข้อดีของการมี Framework
ทำไมคุณถึงต้องมีกรอบงาน?
ลองพิจารณาตัวอย่างเพื่อทำความเข้าใจว่าทำไมคุณถึงต้องมี Framework
ฉันแน่ใจว่าคุณเคยเข้าร่วมสัมมนา/การบรรยาย/การประชุมที่ผู้เข้าร่วมได้รับการขอให้ปฏิบัติตามหลักเกณฑ์ต่อไปนี้
- ผู้เข้าร่วมควรนั่งที่นั่งก่อนเริ่มการบรรยาย 5 นาที
- นำสมุดบันทึกและปากกามาด้วยเพื่อจดบันทึก
- อ่านบทคัดย่อเพื่อให้คุณมีความคิดว่าการนำเสนอจะเกี่ยวกับอะไร
- โทรศัพท์มือถือควรตั้งค่าเป็นเงียบ
- ใช้ประตูทางออกที่อยู่ฝั่งตรงข้ามกับผู้บรรยายหากต้องการออกระหว่างการบรรยาย
- คำถามจะถูกนำมาในตอนท้ายของเซสชั่น
คุณคิดว่าคุณสามารถจัดสัมมนาได้หรือไม่ โดยไม่ต้อง ปฏิบัติตามแนวทางเหล่านี้👍
คำตอบคือใหญ่ ใช่! แน่นอนว่าคุณสามารถจัดสัมมนา/บรรยาย/ประชุม/สาธิตได้ โดยไม่ต้องปฏิบัติตามแนวทางข้างต้น.. จริงๆ แล้วพวกเราบางคนจะไม่ปฏิบัติตามแม้ว่าจะมีการจัดวางก็ตาม!
แต่หากปฏิบัติตามแนวทางดังกล่าว จะส่งผลให้เกิดผลลัพธ์ที่เป็นประโยชน์ เช่น ลดความว้าวุ่นใจของผู้ฟังในระหว่างการบรรยาย เพิ่มการรักษาผู้เข้าร่วม และความเข้าใจในเนื้อหาสาระ
จากที่กล่าวมาข้างต้น ก กรอบการทำงานสามารถกำหนดเป็นชุดแนวทางที่เมื่อปฏิบัติตามจะก่อให้เกิดผลลัพธ์ที่เป็นประโยชน์
ประเภทของกรอบงานการทดสอบอัตโนมัติ
ด้านล่างนี้คือกรอบการทดสอบอัตโนมัติประเภทต่างๆ:
- 1) การเขียนสคริปต์เชิงเส้น
- 2) ห้องสมุดทดสอบ Archiกรอบงานเทคเจอร์
- 3) การขับเคลื่อนด้วยข้อมูล การทดสอบ กรอบ.
- 4) กรอบการทดสอบที่ขับเคลื่อนด้วยคำหลักหรือที่ขับเคลื่อนด้วยตาราง
- 5) กรอบงานการทดสอบอัตโนมัติแบบไฮบริด
มาดูรายละเอียดกันดีกว่า –
1) การเขียนสคริปต์เชิงเส้น - บันทึกและเล่น
มันง่ายที่สุดในบรรดา Testing Automation Frameworks ทั้งหมดและรู้จักกันในชื่อว่า “บันทึกและเล่น”. ในการนี้ การทดสอบระบบอัตโนมัติ กรอบงาน ผู้ทดสอบบันทึกแต่ละขั้นตอนด้วยตนเอง (การนำทางและการป้อนข้อมูลของผู้ใช้) แทรกจุดตรวจสอบ (ขั้นตอนการตรวจสอบ) ในรอบแรก จากนั้นเขาจะเล่นบทที่บันทึกไว้ในรอบต่อๆ ไป
ตัวอย่าง: พิจารณาเข้าสู่ระบบ ใบสมัครจองเที่ยวบิน และตรวจสอบว่าแอปพลิเคชันโหลดเมื่อเข้าสู่ระบบสำเร็จหรือไม่ ที่นี่ ผู้ทดสอบจะบันทึกขั้นตอนและเพิ่มขั้นตอนการตรวจสอบความถูกต้อง
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded after successful log-on Window("Flight Reservation").Check CheckPoint("Flight Reservation")
ข้อดี
- วิธีที่เร็วที่สุดในการสร้างสคริปต์
- ไม่จำเป็นต้องมีความเชี่ยวชาญด้านระบบอัตโนมัติ
- วิธีที่ง่ายที่สุดในการเรียนรู้คุณลักษณะของเครื่องมือทดสอบ
ข้อเสีย
- การใช้สคริปต์ซ้ำเล็กน้อย
- ข้อมูลการทดสอบจะถูกฮาร์ดโค้ดลงในสคริปต์
- การบำรุงรักษาฝันร้าย
2) ห้องสมุดทดสอบ Archiกรอบงานเทคเจอร์
มันยังรู้อีกด้วยว่า “การเขียนสคริปต์ที่มีโครงสร้าง” or “การสลายตัวตามหน้าที่”.
ในกรอบการทดสอบการทำงานอัตโนมัตินี้ สคริปต์ทดสอบจะถูกบันทึกในขั้นต้นโดย “บันทึกและเล่น" วิธี. Laterงานทั่วไปภายในสคริปต์จะถูกระบุและจัดกลุ่มเป็นฟังก์ชัน ฟังก์ชั่นเหล่านี้ถูกเรียกโดยสคริปต์ทดสอบหลักที่เรียกว่า คนขับรถ ในรูปแบบต่างๆ เพื่อสร้างกรณีทดสอบ
ตัวอย่าง: จากตัวอย่างข้างต้น ฟังก์ชั่นเข้าสู่ระบบการสำรองเที่ยวบินจะมีลักษณะดังนี้
Function Login() SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click End Function
ตอนนี้คุณจะเรียกใช้ฟังก์ชันนี้ในสคริปต์หลักดังนี้
Call Login() --------------------------- Other Function calls / Test Steps. ---------------------------
ข้อดี
- การใช้โค้ดซ้ำในระดับที่สูงขึ้นสามารถทำได้ในการเขียนสคริปต์เชิงโครงสร้าง เมื่อเปรียบเทียบกับ "บันทึกและการเล่น"
- สคริปต์อัตโนมัติมีค่าใช้จ่ายน้อยกว่าในการพัฒนาเนื่องจากมีการใช้โค้ดซ้ำมากขึ้น
- การบำรุงรักษาสคริปต์ที่ง่ายขึ้น
ข้อเสีย
- ความเชี่ยวชาญด้านเทคนิคเป็นสิ่งจำเป็นในการเขียนสคริปต์โดยใช้ Test Library Framework
- ต้องใช้เวลามากขึ้นในการวางแผนและเตรียมสคริปต์ทดสอบ
- ข้อมูลการทดสอบได้รับการฮาร์ดโค้ดภายในสคริปต์
3) กรอบการทดสอบที่ขับเคลื่อนด้วยข้อมูล
ในกรอบนี้ในขณะที่ กรณีทดสอบ ตรรกะอยู่ในสคริปต์ทดสอบ ข้อมูลการทดสอบจะถูกแยกและเก็บไว้นอกสคริปต์ทดสอบ ข้อมูลทดสอบจะอ่านจากไฟล์ภายนอก (ไฟล์ Excel, ไฟล์ข้อความ, ไฟล์ CSV, แหล่งที่มา ODBC, ออบเจ็กต์ DAO, ออบเจ็กต์ ADO) และถูกโหลดลงในตัวแปรภายในสคริปต์ทดสอบ ตัวแปรจะใช้ทั้งสำหรับค่าอินพุตและค่าการยืนยัน สคริปต์ทดสอบนั้นจัดทำขึ้นโดยใช้ Linear Scripting หรือ Test Library Framework
ตัวอย่าง: การพัฒนาสคริปต์เข้าสู่ระบบการจองเที่ยวบินโดยใช้วิธีนี้จะเกี่ยวข้องกับสองขั้นตอน
ขั้นตอน 1) สร้างการทดสอบ – ไฟล์ข้อมูลซึ่งอาจเป็น Excel , CSV หรือแหล่งฐานข้อมูลอื่น ๆ
ชื่อตัวแทน | รหัสผ่าน |
---|---|
ชะแลงขนาดสั้น | Mercury |
ทีน่า | ปรอท |
Bill | ปรอท |
ขั้นตอน 2) พัฒนาสคริปต์ทดสอบและอ้างอิงถึงแหล่งข้อมูลการทดสอบของคุณ
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet) Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet) Dialog("Login").WinButton("OK").Click 'Check Flight Reservation Window has loaded Window("Flight Reservation").Check CheckPoint("Flight Reservation") **Note "dtGlobalSheet" is the default excel sheet provided by QTP.
ข้อดี
- การเปลี่ยนแปลงสคริปต์ทดสอบจะไม่ส่งผลต่อข้อมูลการทดสอบ
- กรณีทดสอบสามารถดำเนินการได้ด้วยชุดข้อมูลหลายชุด
- สถานการณ์การทดสอบที่หลากหลายสามารถดำเนินการได้โดยเพียงแค่เปลี่ยนแปลงข้อมูลการทดสอบในไฟล์ข้อมูลภายนอก
ข้อเสีย
- ต้องใช้เวลามากขึ้นในการวางแผนและเตรียมทั้งสคริปต์ทดสอบและข้อมูลการทดสอบ
4) กรอบการทดสอบที่ขับเคลื่อนด้วยคำหลักหรือที่ขับเคลื่อนด้วยตาราง
การพัฒนากรอบการทำงานอัตโนมัติแบบขับเคลื่อนด้วยคำหลักหรือแบบขับเคลื่อนด้วยตารางจำเป็นต้องมีตารางข้อมูลและคำหลัก เป็นอิสระจาก เครื่องมือทดสอบระบบอัตโนมัติ ใช้ในการดำเนินการพวกเขา การทดสอบสามารถออกแบบโดยมีหรือไม่มีแอปพลิเคชันก็ได้ ในการทดสอบที่ขับเคลื่อนด้วยคำหลัก ฟังก์ชันการทำงานของแอปพลิเคชันภายใต้การทดสอบจะได้รับการบันทึกไว้ในตารางตลอดจนคำแนะนำทีละขั้นตอนสำหรับการทดสอบแต่ละครั้ง
มีส่วนประกอบพื้นฐาน 3 ส่วนของ Keyword Driven Framework ได้แก่ คำหลัก แผนผังแอปพลิเคชัน และฟังก์ชันส่วนประกอบ
คำหลักคืออะไร?
คำสำคัญคือการดำเนินการที่สามารถดำเนินการกับส่วนประกอบ GUI เช่น สำหรับ Textbox ส่วนประกอบ GUI คำสำคัญบางคำ (การดำเนินการ) ได้แก่ InputText, VerifyValue, VerifyProperty และอื่นๆ
แผนที่แอปพลิเคชันคืออะไร?
แผนผังแอปพลิเคชันให้การอ้างอิงที่มีชื่อสำหรับส่วนประกอบ GUI Application Maps ไม่มีอะไรนอกจาก “ที่เก็บอ็อบเจ็กต์"
ฟังก์ชั่นส่วนประกอบคืออะไร?
ฟังก์ชั่นส่วนประกอบคือฟังก์ชั่นเหล่านั้นที่จัดการหรือซักถามส่วนประกอบ GUI อย่างแข็งขัน ตัวอย่างของฟังก์ชันคือการคลิกปุ่มบนเว็บพร้อมการจัดการข้อผิดพลาดทั้งหมด ป้อนข้อมูลในการแก้ไขเว็บพร้อมการจัดการข้อผิดพลาดทั้งหมด ฟังก์ชันส่วนประกอบอาจขึ้นอยู่กับแอปพลิเคชันหรือเป็นอิสระ
ตัวอย่าง: เพื่อทำความเข้าใจมุมมองคำหลัก ให้ใช้ตัวอย่างเดียวกันนี้ ประกอบด้วย 2 ขั้นตอน
ขั้นตอนที่ 1: การสร้างตารางข้อมูล (แตกต่างจากตารางข้อมูลทดสอบที่สร้างใน Data Driven Framework) ตารางข้อมูลนี้มีการดำเนินการที่จะดำเนินการกับออบเจ็กต์ GUI และอาร์กิวเมนต์ที่เกี่ยวข้อง หากมี แต่ละแถวแสดงถึงหนึ่งขั้นตอนการทดสอบ
วัตถุ | การกระทำ | |
---|---|---|
(แผนที่การสมัคร) | (คำสำคัญ) | ข้อโต้แย้ง |
WinEdit(ชื่อตัวแทน) | ชุด | Guru99 |
WinEdit (รหัสผ่าน) | ชุด | Mercury |
WinButton(ตกลง) | คลิก | |
หน้าต่าง(จองเที่ยวบิน) | ตรวจสอบ | ที่มีอยู่ |
ขั้นตอนที่ 2: การเขียนโค้ดในรูปแบบ Component Functions
เมื่อคุณสร้างตารางข้อมูลแล้ว คุณเพียงแค่เขียนโปรแกรมหรือชุดสคริปต์ที่อ่านในแต่ละขั้นตอน ดำเนินการขั้นตอนตามคีย์เวิร์ดที่มีอยู่ในฟิลด์ Action ทำการตรวจสอบข้อผิดพลาด และบันทึกข้อมูลที่เกี่ยวข้อง โปรแกรมหรือชุดสคริปต์นี้จะมีลักษณะคล้ายกับโค้ดเทียมด้านล่าง:
Function main() { Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table. while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table. { Pass values to appropriate COMPONENT functions.Like Set(Object Name, Argument) ex.Set(Agent Name, Guru99). } } Call CloseConnection() //Function for Closing connection after all the operation has been performed. } //End of main
ทั้งหมดนี้เป็นของ Keyword Driven Framework
ข้อดีของ Keyword Driven Framework คือสามารถนำคีย์เวิร์ดกลับมาใช้ใหม่ได้ หากต้องการทำความเข้าใจเรื่องนี้ ให้ลองพิจารณาตรวจสอบการทำงานของการเข้าสู่ระบบสำหรับเว็บไซต์ เช่น YAHOO MAIL ตารางจะมีลักษณะดังนี้
วัตถุ | การกระทำ | |
---|---|---|
(แผนที่การสมัคร) | (คำสำคัญ) | ข้อโต้แย้ง |
แก้ไขเว็บ(ชื่อผู้ใช้) | ชุด | abc@yahoo.com |
แก้ไขเว็บ(รหัสผ่าน) | ชุด | xxxxx |
เว็บปุ่ม(ตกลง) | คลิก | |
หน้าต่าง(Yahoo Mail) | ตรวจสอบ | โหลด |
หากคุณสังเกตเห็นในกรณีนี้ ชุดคำหลัก , คลิก , ตรวจสอบ จะยังคงเหมือนเดิมซึ่งมีการพัฒนาฟังก์ชันส่วนประกอบที่เกี่ยวข้องไว้แล้ว สิ่งที่คุณต้องทำคือเปลี่ยน Application Mapping (Object Repository) จากการจองเที่ยวบินก่อนหน้าเป็น Yahoo Mail ด้วยการเปลี่ยนแปลงค่าอาร์กิวเมนต์และสคริปต์เดียวกันจะทำงานได้!
ข้อดี
- ให้การนำโค้ดกลับมาใช้ใหม่ได้ในระดับสูง
- เครื่องมือทดสอบอิสระ
- สคริปต์เดียวกันใช้งานได้กับ AUT โดยไม่ขึ้นกับแอปพลิเคชันภายใต้การทดสอบ (มีข้อจำกัดบางประการ)
- การทดสอบสามารถออกแบบโดยมีหรือไม่มี AUT
ข้อเสีย
- การลงทุนเริ่มแรกค่อนข้างสูง ประโยชน์ของสิ่งนี้จะเกิดขึ้นได้ก็ต่อเมื่อแอปพลิเคชันมีขนาดใหญ่มากและต้องคงสคริปต์ทดสอบไว้สองสามปี
- จำเป็นต้องมีความเชี่ยวชาญด้านระบบอัตโนมัติระดับสูงเพื่อสร้างกรอบการทำงานที่ขับเคลื่อนด้วยคำหลัก
หมายเหตุ: แม้ว่า Micro Focus UFT จะโฆษณาตัวเองว่าเป็น KeyWord Driven Framework แต่คุณไม่สามารถใช้เครื่องมือทดสอบและความเป็นอิสระของแอปพลิเคชันได้อย่างสมบูรณ์โดยใช้ HP UFT
5) กรอบงานการทดสอบอัตโนมัติแบบไฮบริด
ตามชื่อที่บ่งบอกว่าเฟรมเวิร์กนี้คือการรวมกันของหนึ่งหรือหลายเฟรมเวิร์กการทำงานอัตโนมัติที่กล่าวถึงข้างต้นโดยดึงจุดแข็งและพยายามบรรเทาจุดอ่อนของพวกเขา เฟรมเวิร์กการทำงานอัตโนมัติของ QA การทดสอบแบบไฮบริดคือสิ่งที่เฟรมเวิร์กการทดสอบอัตโนมัติส่วนใหญ่พัฒนาไปตามเวลาและหลายโปรเจ็กต์ อุตสาหกรรมสูงสุดใช้กรอบคำสำคัญในการรวมกันของวิธีการสลายตัวของฟังก์ชัน
PS: กรอบการทำงานอัตโนมัติอื่น ๆ ที่ควรค่าแก่การกล่าวถึงคือ
ทดสอบกรอบการทำงานแบบโมดูลาร์
ในกรอบงานนี้ งานทั่วไปในสคริปต์ทดสอบจะถูกจัดกลุ่มไว้ด้วยกันเป็นโมดูล
ตัวอย่าง: การใช้ Actions ในการใช้งาน QTP สามารถสร้าง Modular Scripts ได้
สคริปต์ตัวอย่างสำหรับการเข้าสู่ระบบ
SystemUtil.Run "flight4a.exe","","","open" Dialog("Login").WinEdit("Agent Name:").Set "Guru99" Dialog("Login").WinEdit("Password:").Set "Mercury" Dialog("Login").WinButton("OK").Click 'End of Script
ตอนนี้คุณสามารถเรียกการกระทำนี้ในสคริปต์หลักได้ดังนี้ -
RunAction ("Login[Argument]", oneIteration)
การทดสอบกระบวนการทางธุรกิจ (BPT)
กรอบการทำงานอัตโนมัติเหล่านี้จะแบ่งกระบวนการทางธุรกิจขนาดใหญ่ออกเป็นส่วนประกอบต่างๆ ซึ่งสามารถนำมาใช้ซ้ำได้หลายครั้งในสคริปต์ทดสอบเดียวกันหรือต่างกัน ตัวอย่างเช่น กระบวนการทางธุรกิจของการจองเที่ยวบินจะแบ่งออกเป็นองค์ประกอบต่างๆ เช่น การเข้าสู่ระบบ การค้นหาเที่ยวบิน การจอง การชำระเงินและการออกจากระบบ ซึ่งสามารถนำมาใช้ซ้ำในกระบวนการทางธุรกิจเดียวกันหรือกระบวนการที่แตกต่างกันได้ นอกจากนี้ BPT ยังอำนวยความสะดวกในการประสานงานที่ใกล้ชิดยิ่งขึ้นระหว่าง SME และวิศวกรระบบอัตโนมัติ
ประโยชน์ของกรอบการทดสอบอัตโนมัติ Archiเทคเจอร์
ต่อไปนี้คือประโยชน์ของสถาปัตยกรรมกรอบการทำงานการทดสอบอัตโนมัติ:
- กรอบงานการทดสอบอัตโนมัติช่วยลดความเสี่ยงและค่าใช้จ่ายต้นทุน
- ช่วยเพิ่มประสิทธิภาพในการทดสอบ
- ช่วยลดค่าใช้จ่ายในการบำรุงรักษา
- อนุญาตให้ใช้รหัสซ้ำ
- ช่วยให้ได้รับความครอบคลุมการทดสอบสูงสุด
- มันเพิ่มฟังก์ชันการทำงานของแอพพลิเคชั่นให้สูงสุด
- ช่วยลดความซ้ำซ้อนของกรณีทดสอบ
- ช่วยปรับปรุงประสิทธิภาพและประสิทธิภาพของการทดสอบด้วยระบบทดสอบอัตโนมัติ
สรุป
- Framework คือชุดแนวทาง เช่น มาตรฐานการเขียนโค้ด การจัดการข้อมูลทดสอบ การจัดการพื้นที่เก็บข้อมูลอ็อบเจ็กต์ ฯลฯ... ซึ่งเมื่อปฏิบัติตามในระหว่างการเขียนสคริปต์อัตโนมัติจะให้ผลลัพธ์ที่เป็นประโยชน์ เช่น การใช้โค้ดซ้ำเพิ่มขึ้น ความสะดวกในการพกพาที่สูงขึ้น ต้นทุนการบำรุงรักษาสคริปต์ลดลง เป็นต้น
- Linear Scripting เป็นวิธีที่ง่ายที่สุดในบรรดา Automation Frameworks ทั้งหมด และยังรู้จักกันในชื่อ “Record & Playback”
- ห้องสมุดทดสอบ ArchiTecture Framework เรียกอีกอย่างว่า "Structured Scripting" หรือ "Functional Decomposition"
- ใน Data-Driven Testing Framework ตรรกะของกรณีทดสอบจะอยู่ในสคริปต์ทดสอบ และข้อมูลการทดสอบจะถูกแยกและเก็บไว้นอกสคริปต์ทดสอบ
- กรอบงานที่ขับเคลื่อนด้วยคำหลักหรือที่ขับเคลื่อนด้วยตารางจำเป็นต้องมีการพัฒนาตารางข้อมูลและคำหลัก โดยไม่ขึ้นอยู่กับเครื่องมือทดสอบอัตโนมัติที่ใช้ในการดำเนินการ
- Hybrid Automation Framework คือสิ่งที่เฟรมเวิร์กการทดสอบอัตโนมัติส่วนใหญ่พัฒนาขึ้นเมื่อเวลาผ่านไปและหลายโครงการ