กรอบการทำงานอัตโนมัติทดสอบ: คืออะไร 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 คือสิ่งที่เฟรมเวิร์กการทดสอบอัตโนมัติส่วนใหญ่พัฒนาขึ้นเมื่อเวลาผ่านไปและหลายโครงการ