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

อ่าน 4 นาที

การทดสอบอัตโนมัติ

การทดสอบอัตโนมัติ คือการใช้ ซอฟต์แวร์ (แยกต่างหากจากซอฟต์แวร์ที่กำลังทดสอบ) เพื่อควบคุมการดำเนินการทดสอบและเปรียบเทียบผลลัพธ์จริงกับผลลัพธ์ที่คาดการณ์ไว้ [ 1 ]...

การทดสอบอัตโนมัติ

การทดสอบอัตโนมัติคือการใช้ซอฟต์แวร์ (แยกต่างหากจากซอฟต์แวร์ที่กำลังทดสอบ) เพื่อควบคุมการดำเนินการทดสอบและเปรียบเทียบผลลัพธ์จริงกับผลลัพธ์ที่คาดการณ์ไว้[ 1 ]การทดสอบอัตโนมัติสนับสนุนการทดสอบระบบที่กำลังทดสอบ (SUT) โดยไม่ต้องมีการโต้ตอบด้วยตนเองซึ่งอาจนำไปสู่การดำเนินการทดสอบที่เร็วขึ้นและการทดสอบที่บ่อยขึ้น การทดสอบอัตโนมัติเป็นแง่มุมสำคัญของการทดสอบอย่างต่อเนื่องและมักใช้สำหรับการบูรณาการอย่างต่อเนื่องและการส่งมอบอย่างต่อเนื่อง (CI/CD) [ 2 ]

เมื่อเปรียบเทียบกับการทดสอบด้วยตนเอง

การทดสอบด้วยระบบอัตโนมัติมีข้อดีหลายประการเหนือกว่าการทดสอบด้วยตนเอง

การทดสอบ API

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

การทดสอบ GUI

สำหรับการทดสอบ GUIนั้น การทดสอบจะควบคุมระบบที่กำลังทดสอบ (SUT) ผ่านทางส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) โดยการสร้างเหตุการณ์ต่างๆ เช่น การกดแป้นพิมพ์และการคลิกเมาส์ การทดสอบ GUI แบบอัตโนมัติอาจเป็นเรื่องท้าทายในการพัฒนา แต่สามารถทำงานได้เร็วกว่าการทดสอบโดยมนุษย์มาก สาขาเฉพาะทาง ได้แก่:

  • การทดสอบแบบบันทึกและเล่นซ้ำ – เครื่องมือทดสอบ GUI บางตัวมีฟีเจอร์ที่ช่วยให้สามารถบันทึกการกระทำของผู้ใช้แบบโต้ตอบและเล่นซ้ำในภายหลังเพื่อใช้ในการทดสอบ โดยเปรียบเทียบผลลัพธ์ที่ได้จริงกับผลลัพธ์ที่คาดหวัง ข้อดีของวิธีการนี้คือไม่จำเป็นต้องเขียนโค้ดมากนักหรืออาจไม่ต้องเขียนเลย อย่างไรก็ตาม บางคนอ้างว่าการทดสอบดังกล่าวมีปัญหาด้านความน่าเชื่อถือ การบำรุงรักษา และความแม่นยำ ตัวอย่างเช่น การเปลี่ยนป้ายกำกับของปุ่มหรือการย้ายปุ่มไปยังส่วนอื่นของหน้าจออาจต้องบันทึกการทดสอบใหม่ และการทดสอบดังกล่าวส่วนใหญ่มักไม่มีประสิทธิภาพและบันทึกกิจกรรมที่ไม่สำคัญอย่างไม่ถูกต้อง

การทดสอบการถดถอย

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

เทคนิคอัตโนมัติ

ต่อไปนี้คือเทคนิคการทดสอบที่สำคัญซึ่งจัดอยู่ในหมวดหมู่การทดสอบอัตโนมัติ

การทดสอบอย่างต่อเนื่อง

การทดสอบอย่างต่อเนื่องคือกระบวนการดำเนินการทดสอบอัตโนมัติซึ่งเป็นส่วนหนึ่งของกระบวนการส่งมอบซอฟต์แวร์เพื่อประเมินความเสี่ยงทางธุรกิจของการปล่อย SUT [ 4 ] [ 5 ]ขอบเขตของการทดสอบขยายจากการตรวจสอบความถูกต้องของข้อกำหนดจากล่างขึ้นบนหรือเรื่องราวของผู้ใช้ไปจนถึงการประเมินข้อกำหนดของระบบที่เกี่ยวข้องกับเป้าหมายทางธุรกิจโดยรวม[ 6 ]

การทดสอบตามแบบจำลอง

สำหรับการทดสอบตามแบบจำลอง SUT จะถูกสร้างแบบจำลองและสามารถสร้างกรณีทดสอบจากแบบจำลองนั้นเพื่อรองรับ การพัฒนาการทดสอบ แบบไม่ต้องเขียนโค้ด เครื่องมือบางอย่างรองรับการเข้ารหัสกรณีทดสอบเป็นภาษาอังกฤษธรรมดาที่สามารถใช้งานได้บน ระบบปฏิบัติการเบราว์เซอร์และอุปกรณ์อัจฉริยะหลายประเภท[ 7 ]

การพัฒนาแบบทดสอบนำ

การพัฒนาแบบทดสอบนำ (TDD) โดยเนื้อแท้แล้วรวมถึงการสร้างโค้ดทดสอบอัตโนมัติ โค้ด ทดสอบหน่วยจะถูกเขียนขึ้นในขณะที่เขียนโค้ด SUT เมื่อโค้ดเสร็จสมบูรณ์ การทดสอบก็จะเสร็จสมบูรณ์เช่นกัน[ 8 ]

อื่น

เทคนิคการทดสอบอัตโนมัติอื่นๆ ได้แก่:

ข้อควรพิจารณา

จากการตรวจสอบแหล่งข้อมูลจากผู้ปฏิบัติงาน 52 รายและแหล่งข้อมูลทางวิชาการ 26 ราย พบว่าปัจจัยหลัก 5 ประการที่ควรพิจารณาในการตัดสินใจเกี่ยวกับการทดสอบอัตโนมัติ ได้แก่ ระบบที่กำลังทดสอบ (SUT) ขอบเขตของการทดสอบ ชุดเครื่องมือทดสอบ ประเด็นเกี่ยวกับมนุษย์และองค์กร และปัจจัยข้ามสาขา ปัจจัยที่ถูกระบุบ่อยที่สุด ได้แก่ ความต้องการการทดสอบการถดถอย ปัจจัยทางเศรษฐกิจ และความสมบูรณ์ของ SUT [ 9 ] [ 10 ]

แม้ว่าการนำการทดสอบอัตโนมัติกลับมาใช้ซ้ำได้จะเป็นประโยชน์ต่อบริษัทพัฒนาซอฟต์แวร์ แต่คุณสมบัตินี้ก็อาจถูกมองว่าเป็นข้อเสียได้เช่นกัน เพราะมันนำไปสู่ภาวะชะงักงันกล่าวคือ การรันการทดสอบเดิมซ้ำๆ จะไม่สามารถตรวจจับข้อผิดพลาดได้อีกต่อไป

เครื่องมือทดสอบสามารถช่วยในการทำงานอัตโนมัติ เช่น การติดตั้งผลิตภัณฑ์ การสร้างข้อมูลทดสอบ การโต้ตอบกับ GUI การตรวจจับปัญหา (ลองพิจารณาการใช้เอเจนต์วิเคราะห์หรือสำรวจข้อมูลที่มีออราเคิลทดสอบ ) การบันทึกข้อบกพร่อง ฯลฯ โดยไม่จำเป็นต้องทำการทดสอบแบบอัตโนมัติครบวงจร

ข้อควรพิจารณาในการพัฒนาการทดสอบอัตโนมัติ ได้แก่:

บทบาท

เพื่อสนับสนุนการทดสอบอัตโนมัติด้วยโค้ดวิศวกรทดสอบหรือ ผู้รับผิดชอบ ด้านการประกันคุณภาพซอฟต์แวร์ต้องมีความสามารถในการเขียนโค้ดซอฟต์แวร์ เทคนิคการทดสอบบางอย่าง เช่น การทดสอบด้วยตารางและการทดสอบแบบไม่ต้องเขียนโค้ด สามารถลดหรือบรรเทาความจำเป็นในการใช้ทักษะการเขียนโปรแกรมได้

กรอบ

เฟรมเวิร์กสำหรับการทดสอบอัตโนมัติเป็นสภาพแวดล้อมการเขียนโปรแกรมที่ผสานรวมตรรกะการทดสอบ ข้อมูลการทดสอบ และทรัพยากรอื่นๆ เฟรมเวิร์กนี้เป็นพื้นฐานของการทดสอบอัตโนมัติและช่วยลดความซับซ้อนของกระบวนการอัตโนมัติ การใช้เฟรมเวิร์กสามารถลดต้นทุนในการพัฒนาและบำรุงรักษาการ ทดสอบ ได้ หากมีการเปลี่ยนแปลงใดๆ ในกรณีทดสอบก็เพียงแค่ต้องอัปเดตไฟล์กรณีทดสอบเท่านั้น ส่วนสคริปต์หลักและสคริปต์เริ่มต้นจะยังคงเหมือนเดิม

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

มีเฟรมเวิร์กหลายประเภทให้เลือกใช้:

  • เชิงเส้น – โค้ดเชิงกระบวนการ ซึ่งอาจสร้างขึ้นโดยเครื่องมือต่างๆ เช่น เครื่องมือที่ใช้ฟังก์ชันบันทึกและเล่นซ้ำ
  • มีโครงสร้าง – ใช้โครงสร้างควบคุม – โดยทั่วไปคือเงื่อนไข/คำสั่ง 'if-else', 'switch', 'for', 'while'
  • ขับเคลื่อนด้วยข้อมูล – ข้อมูลจะถูกจัดเก็บไว้ภายนอกการทดสอบในฐานข้อมูล สเปรดชีต หรือกลไกอื่นๆ
  • ขับเคลื่อนด้วยคีย์เวิร์ด
  • ไฮบริด – ใช้หลายประเภท
  • กรอบการทำงานอัตโนมัติแบบ Agile
  • การทดสอบหน่วย – เฟรมเวิร์กบางตัวถูกออกแบบมาเพื่อการทดสอบหน่วย โดยเฉพาะ เช่นxUnit , JUnitและNUnit

อินเทอร์เฟซการทดสอบอัตโนมัติ

อินเทอร์เฟซการทดสอบอัตโนมัติเป็นแพลตฟอร์มที่ให้พื้นที่ทำงานสำหรับการรวมเครื่องมือและเฟรมเวิร์กการทดสอบหลายรายการสำหรับการทดสอบระบบ/การบูรณาการ อินเทอร์เฟซการทดสอบอัตโนมัติอาจช่วยลดความซับซ้อนของกระบวนการแมปการทดสอบกับเกณฑ์ทางธุรกิจโดยไม่ต้องเขียนโค้ด อินเทอร์เฟซการทดสอบอัตโนมัติอาจปรับปรุงประสิทธิภาพและความยืดหยุ่นในการบำรุงรักษาการทดสอบ[ 12 ]

โมเดลอินเทอร์เฟซการทดสอบอัตโนมัติ

อินเทอร์เฟซการทดสอบอัตโนมัติประกอบด้วยองค์ประกอบดังต่อไปนี้:

เอ็นจิ้นอินเทอร์เฟซ
ประกอบด้วยตัวแยกวิเคราะห์และตัวรันการทดสอบ ตัวแยกวิเคราะห์มีหน้าที่แยกวิเคราะห์ไฟล์วัตถุที่มาจากที่เก็บวัตถุให้เป็นภาษาสคริปต์เฉพาะการทดสอบ ตัวรันการทดสอบจะดำเนินการสคริปต์การทดสอบโดยใช้ชุดทดสอบ[ 12 ]
ที่เก็บวัตถุ
การรวบรวมข้อมูลวัตถุ UI/แอปพลิเคชันที่บันทึกโดยเครื่องมือทดสอบขณะสำรวจ SUT [ 12 ]

ดูเพิ่มเติม

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

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ การทดสอบอัตโนมัติ

การทดสอบอัตโนมัติ คือการใช้ ซอฟต์แวร์ (แยกต่างหากจากซอฟต์แวร์ที่กำลังทดสอบ) เพื่อควบคุมการดำเนินการทดสอบและเปรียบเทียบผลลัพธ์จริงกับผลลัพธ์ที่คาดการณ์ไว้ [ 1 ]...

เมื่อเปรียบเทียบกับการทดสอบด้วยตนเอง

การทดสอบด้วยระบบอัตโนมัติมีข้อดีหลายประการเหนือกว่าการทดสอบด้วยตนเอง

การทดสอบ API

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

การทดสอบ GUI

สำหรับ การทดสอบ GUI นั้น การทดสอบจะควบคุมระบบที่กำลังทดสอบ (SUT) ผ่านทาง ส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) โดยการสร้างเหตุการณ์ต่างๆ เช่น การกดแป้นพิมพ์และการคลิกเมาส์ การทดสอบ GUI แบบอัตโนมัติอาจเป็นเรื่องท้าทายในการพัฒนา...