ซอฟต์แวร์มีค่าและมีความสำคัญมากขึ้นเมื่อเราต้อนรับแอปพลิเคชันและอุปกรณ์ใหม่ ๆ เข้ามาในบ้านและธุรกิจของเราเพื่อรับหน้าที่สำคัญ ในวันที่ 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). ซีลีเนียม
เป็นโอเพ่นซอร์สซึ่งเป็นวิธีการทดสอบยอดนิยมในการใช้งานเว็บเบราว์เซอร์และแพลตฟอร์มต่างๆ ซีลีเนียมรุ่นล่าสุดคือซีลีเนียม 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 ที่ไม่ได้รับการแก้ไขโดยอัตโนมัติ
- การประเมินเวลาและความพยายามไม่ถูกต้อง
- ความเข้ากันไม่ได้ของเครื่องมืออัตโนมัติ
ข้อดีของการทดสอบระบบอัตโนมัติ
ข้อดีของ ระบบอัตโนมัติ การทดสอบคือ
- การดำเนินการกรณีทดสอบทำได้ง่ายขึ้น
- ปรับปรุงความน่าเชื่อถือของการทดสอบ
- ลดต้นทุนการบำรุงรักษา
- ผลการทดสอบเผยแพร่ในที่สาธารณะ
- ไม่มีข้อผิดพลาดจากมนุษย์
- ประหยัดเวลาและหน่วยความจำ
ที่นี่เราได้อธิบายเกี่ยวกับซอฟต์แวร์ การทดสอบอัตโนมัติ กระบวนการทดสอบประเภทของการทดสอบอัตโนมัติและเครื่องมือทดสอบอัตโนมัติ นี่คือคำถาม 'การทดสอบอัตโนมัติดีกว่าการทดสอบด้วยตนเองอย่างไร'