Automation Testing คืออะไร? - กระบวนการทดสอบและประเภท

ลองใช้เครื่องมือของเราเพื่อกำจัดปัญหา





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

Automation Testing คืออะไร?

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




กรณีทดสอบใดที่ควรดำเนินการโดยอัตโนมัติก่อน

ต่อไปนี้เป็นกรณีทดสอบที่ต้องดำเนินการโดยอัตโนมัติประการแรก

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

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

ขั้นตอนทีละขั้นตอนที่ใช้สำหรับการทดสอบระบบอัตโนมัติคือ



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

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

1). การเลือกเครื่องมือทดสอบ

การเลือกเครื่องมือที่เหมาะสมตามลักษณะของการทดสอบนั้นเป็นสิ่งสำคัญมากที่ระบบอัตโนมัติจะประสบความสำเร็จ สำหรับการทดสอบแบบใช้โค้ดให้ดำเนินการหรือ ส่วนต่อประสานผู้ใช้แบบกราฟิก ต้องเลือกเครื่องมือที่เหมาะสมในการทดสอบตามมาตรฐาน


2). กำหนดขอบเขตของระบบอัตโนมัติ

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

3). การออกแบบและพัฒนาการวางแผน

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

4). ทดสอบการดำเนินการ

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

5). ซ่อมบำรุง

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

แนวทางการทำงานอัตโนมัติ

ระบบอัตโนมัติมีสามวิธี ได้แก่

1). แนวทางขับเคลื่อนด้วยรหัส

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

2). อินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI)

แอปพลิเคชันที่มี GUI สามารถทดสอบได้โดยใช้วิธีนี้เพื่อบันทึกการกระทำของผู้ใช้และการตอบสนองกี่ครั้งก็ได้ ตัวอย่าง: เครื่องมือซีลีเนียมที่ใช้ทดสอบเว็บไซต์ กรณีทดสอบสามารถเขียนด้วยภาษาสคริปต์เช่น java, phyton, C .. เป็นต้น

3). แนวทางกรอบ

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

ประเภทของกรอบ

มีหลายประเภทของกรอบแนวทางที่เป็น

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

ประเภทของการทดสอบระบบอัตโนมัติ

การทดสอบระบบอัตโนมัติประเภทต่างๆ ได้แก่

  1. การทดสอบหน่วย
  2. การทดสอบควัน
  3. การทดสอบการทำงาน
  4. การทดสอบการผสานรวม
  5. การทดสอบการถดถอย

1). การทดสอบหน่วย

ในเว็บแอปพลิเคชันอาจมีส่วนประกอบ / โมเดลหลายแบบซึ่งจะต้องทดสอบ ขั้นตอนการทดสอบแต่ละรุ่นคือการทดสอบหน่วย จะทำในระหว่างขั้นตอนการพัฒนา ที่เขียนโค้ดโดยนักพัฒนาและผู้ทดสอบ

2). การทดสอบควัน

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

3). การทดสอบการทำงาน

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

4). การทดสอบการผสานรวม

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

5). การทดสอบการถดถอย

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

จะเลือกเครื่องมืออัตโนมัติได้อย่างไร?

ในการเลือกเครื่องมืออัตโนมัติที่เหมาะสมให้ตรวจสอบคุณสมบัติต่อไปนี้ตามรายการด้านล่าง

  • การสนับสนุนด้านสิ่งแวดล้อม
  • การทดสอบฐานข้อมูล
  • การระบุวัตถุ
  • การทดสอบภาพ
  • การทดสอบการกู้คืนข้อผิดพลาด
  • รองรับการทำงานหลายเฟรม
  • ลดต้นทุน
  • รายงานการทดสอบและค่าใช้จ่ายที่กว้างขวาง

ประเภทของเครื่องมือทดสอบระบบอัตโนมัติ

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

1). ซีลีเนียม

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

2). น้ำ

เป็นเครื่องมือทดสอบโอเพ่นซอร์สซึ่งประกอบด้วยไลบรารีทับทิมที่ทำการทดสอบเว็บแอปพลิเคชันโดยอัตโนมัติ เวอร์ชันล่าสุดของ watir คือ watir 6.16 รหัสสามารถเขียนในภาษาใดก็ได้ Firefox, chrome, safari เป็นเบราว์เซอร์บางประเภทที่ watir รองรับ คุณสมบัติบางอย่างของ watir คือใช้เวลาสั้น ๆ หน้าจอประสิทธิภาพของหน้าและสามารถดาวน์โหลดไฟล์ใด ๆ ได้อย่างง่ายดาย

3). Ranorex

เป็นเครื่องมือทดสอบ GUI ทั้งหมดที่มีความยืดหยุ่น เหมาะสำหรับเบราว์เซอร์และอุปกรณ์ทุกสภาพแวดล้อม รองรับ C # และ V.NET มีอยู่ใน Microsoft windows และ windows server ส่วนประกอบหลักของ ranorex ได้แก่ เครื่องบันทึก ranorex, ที่เก็บ ranorex, สายลับ ranorex, โปรแกรมแก้ไขรหัส ranorex และดีบักเกอร์ ranorex

4). API (การทดสอบส่วนต่อประสานการเขียนโปรแกรมแอปพลิเคชัน)

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

เครื่องมือทดสอบระบบอัตโนมัติสำหรับแอปพลิเคชันมือถือ

เครื่องมือทดสอบระบบอัตโนมัติประเภทต่างๆสำหรับแอปพลิเคชันมือถือ ได้แก่ Appium, Robotium, MonkeyRunner, UI Automator, Selendroid, MonkeyTalk, Testdroid, Calabash, Frank, SeeTest

1). แอปเปิล

  • มันเป็นโอเพ่นซอร์ส
  • รองรับ Java, Ruby และอื่น ๆ
  • ซอร์สโค้ดสามารถใช้ซ้ำได้
  • เข้ากันได้กับ Android และ Ios

2). หุ่นยนต์

  • มันเป็นโอเพ่นซอร์ส
  • เข้ากันได้กับเวอร์ชัน Android และการโค่นล้มทั้งหมด
  • รหัสถูกเขียนด้วย Java

3). Monkeyrunner

  • การทดสอบ Framework หรือระดับการทำงานทำได้โดยใช้ Monkeyrunner
  • รหัสถูกเขียนด้วย python
  • คุณสมบัติ: ควบคุมอุปกรณ์จำนวนมากในแต่ละครั้งระบบอัตโนมัติสามารถขยายได้แอป Android และฮาร์ดแวร์สามารถทดสอบได้ระบบอัตโนมัติสามารถขยายได้

4). UI Automator

  • ใช้เพื่อทดสอบอินเทอร์เฟซผู้ใช้โดยใช้กรณีทดสอบ UI
  • รองรับแอนดรอยด์เวอร์ชันต่างๆ
  • สามารถล็อคและปลดล็อกสมาร์ทโฟน

5). เซเลนดรอยด์

  • ใช้เพื่อทดสอบส่วนต่อประสานผู้ใช้ของไฮบริดที่ใช้ Android
  • กรณีทดสอบเขียนโดยใช้ selendroid
  • ถึง มาตรการ เช่น JSON wire เข้ากันได้ดีมาก

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

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

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

ข้อดีของการทดสอบระบบอัตโนมัติ

ข้อดีของ ระบบอัตโนมัติ การทดสอบคือ

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

ที่นี่เราได้อธิบายเกี่ยวกับซอฟต์แวร์ การทดสอบอัตโนมัติ กระบวนการทดสอบประเภทของการทดสอบอัตโนมัติและเครื่องมือทดสอบอัตโนมัติ นี่คือคำถาม 'การทดสอบอัตโนมัติดีกว่าการทดสอบด้วยตนเองอย่างไร'