ความแตกต่างระหว่างการทดสอบด้วยตนเองและการทดสอบอัตโนมัติ
การทดสอบอัตโนมัติกับการทดสอบด้วยตนเอง: ความแตกต่างที่สำคัญ
- การทดสอบด้วยตนเองจะดำเนินการด้วยตนเองโดยนักวิเคราะห์ QA (มนุษย์) ในขณะที่การทดสอบอัตโนมัติจะดำเนินการโดยใช้สคริปต์ โค้ด และเครื่องมืออัตโนมัติ (คอมพิวเตอร์) โดยผู้ทดสอบ
- กระบวนการทดสอบด้วยตนเองนั้นไม่ถูกต้องเนื่องจากความเป็นไปได้ของข้อผิดพลาดของมนุษย์ ในขณะที่กระบวนการอัตโนมัติมีความน่าเชื่อถือเนื่องจากเป็นโค้ดและสคริปต์
- การทดสอบด้วยตนเองเป็นกระบวนการที่ใช้เวลานานในขณะที่การทดสอบอัตโนมัตินั้นรวดเร็วมาก
- การทดสอบด้วยตนเองสามารถทำได้โดยไม่ต้องมีความรู้ด้านการเขียนโปรแกรม ในขณะที่การทดสอบอัตโนมัติเป็นไปไม่ได้หากไม่มีความรู้ด้านการเขียนโปรแกรม
- การทดสอบด้วยตนเอง อนุญาตการทดสอบแบบสุ่มในขณะที่การทดสอบอัตโนมัติไม่อนุญาตให้ทำการทดสอบแบบสุ่ม
การทดสอบด้วยตนเองคืออะไร?
การทดสอบด้วยตนเองคือการทดสอบซอฟต์แวร์ที่นักวิเคราะห์ QA ดำเนินการทดสอบด้วยตนเอง ดำเนินการเพื่อค้นหาจุดบกพร่องในซอฟต์แวร์ที่อยู่ระหว่างการพัฒนา
ในการทดสอบด้วยตนเอง ผู้ทดสอบจะตรวจสอบคุณสมบัติที่สำคัญทั้งหมดของแอปพลิเคชันหรือซอฟต์แวร์ที่กำหนด ในกระบวนการนี้ ผู้ทดสอบซอฟต์แวร์จะดำเนินการกรณีทดสอบและสร้างรายงานการทดสอบโดยไม่ต้องใช้เครื่องมือทดสอบซอฟต์แวร์อัตโนมัติใดๆ
เป็นวิธีคลาสสิกสำหรับการทดสอบทุกประเภทและช่วยค้นหาจุดบกพร่องในระบบซอฟต์แวร์ โดยทั่วไปจะดำเนินการโดยผู้ทดสอบที่มีประสบการณ์เพื่อให้บรรลุผลสำเร็จ กระบวนการทดสอบซอฟต์แวร์.
การทดสอบอัตโนมัติคืออะไร?
In การทดสอบซอฟต์แวร์อัตโนมัติผู้ทดสอบจะเขียนโค้ด/สคริปต์ทดสอบเพื่อทำให้การทดสอบเป็นแบบอัตโนมัติ ผู้ทดสอบใช้เครื่องมืออัตโนมัติที่เหมาะสมเพื่อพัฒนาสคริปต์ทดสอบและตรวจสอบซอฟต์แวร์ เป้าหมายคือการดำเนินการทดสอบให้เสร็จสิ้นภายในระยะเวลาที่น้อยลง
การทดสอบอัตโนมัติทั้งหมดอาศัยการทดสอบที่กำหนดไว้ล่วงหน้าซึ่งจะรันโดยอัตโนมัติเพื่อเปรียบเทียบผลลัพธ์จริงกับผลลัพธ์ที่คาดหวัง ซึ่งจะช่วยให้ผู้ทดสอบสามารถระบุได้ว่าแอปพลิเคชันทำงานตามที่คาดไว้หรือไม่
การทดสอบอัตโนมัติช่วยให้คุณสามารถดำเนินการงานซ้ำๆ และการทดสอบการถดถอยโดยไม่ต้องมีการแทรกแซงของผู้ทดสอบด้วยตนเอง แม้ว่ากระบวนการทั้งหมดจะดำเนินการโดยอัตโนมัติ แต่ระบบอัตโนมัติต้องใช้ความพยายามด้วยตนเองในการสร้างสคริปต์การทดสอบเบื้องต้น
การทดสอบด้วยตนเองเทียบกับ การทดสอบอัตโนมัติ
พารามิเตอร์ | การทดสอบระบบอัตโนมัติ | การทดสอบด้วยตนเอง |
---|---|---|
คำนิยาม | การทดสอบอัตโนมัติใช้เครื่องมืออัตโนมัติเพื่อดำเนินการกรณีทดสอบ | ในการทดสอบด้วยตนเอง กรณีทดสอบจะดำเนินการโดยผู้ทดสอบที่เป็นมนุษย์และซอฟต์แวร์ |
ระยะเวลาดำเนินการ | การทดสอบอัตโนมัติทำได้เร็วกว่าการดำเนินการด้วยตนเองอย่างมาก | การทดสอบด้วยตนเองใช้เวลานานและใช้ทรัพยากรบุคคล |
การทดสอบเชิงสำรวจ | ระบบอัตโนมัติไม่อนุญาตให้มีการทดสอบแบบสุ่ม | การทดสอบเชิงสำรวจสามารถทำได้ในการทดสอบด้วยตนเอง |
การลงทุนระยะแรก | การลงทุนเริ่มแรกในการทดสอบอัตโนมัตินั้นสูงกว่า แม้ว่า ROI จะดีกว่าในระยะยาว | การลงทุนเริ่มแรกในการทดสอบด้วยตนเองนั้นค่อนข้างต่ำกว่า ROI ต่ำกว่าเมื่อเทียบกับการทดสอบระบบอัตโนมัติในระยะยาว |
ความเชื่อถือได้ | การทดสอบอัตโนมัติเป็นวิธีการที่เชื่อถือได้ เนื่องจากดำเนินการโดยเครื่องมือและสคริปต์ ไม่มีการทดสอบความเหนื่อยล้า | การทดสอบด้วยตนเองนั้นไม่แม่นยำเท่าที่ควรเนื่องจากอาจมีข้อผิดพลาดจากมนุษย์ |
UI เปลี่ยน | สำหรับการเปลี่ยนแปลงเล็กน้อยใน UI ของ AUT สคริปต์ทดสอบอัตโนมัติจำเป็นต้องได้รับการแก้ไขเพื่อให้ทำงานตามที่คาดไว้ | การเปลี่ยนแปลงเล็กๆ น้อยๆ เช่น การเปลี่ยนแปลงรหัส คลาส ฯลฯ ของปุ่มจะไม่ขัดขวางการทำงานของผู้ทดสอบด้วยตนเอง |
การลงทุน | จำเป็นต้องมีการลงทุนสำหรับเครื่องมือทดสอบและวิศวกรระบบอัตโนมัติ | จำเป็นต้องมีการลงทุนด้านทรัพยากรมนุษย์ |
ต้นทุนที่มีประสิทธิภาพ | ไม่คุ้มค่าสำหรับการถดถอยในปริมาณต่ำ | ไม่คุ้มค่าสำหรับการถดถอยปริมาณมาก |
การมองเห็นรายงานการทดสอบ | ด้วยการทดสอบอัตโนมัติ ผู้มีส่วนได้ส่วนเสียทั้งหมดสามารถเข้าสู่ระบบอัตโนมัติและตรวจสอบผลการดำเนินการทดสอบได้ | การทดสอบด้วยตนเองมักจะบันทึกไว้ใน Excel หรือ Word และผลการทดสอบไม่พร้อม/พร้อมใช้ |
การสังเกตของมนุษย์ | การทดสอบอัตโนมัติไม่เกี่ยวข้องกับการพิจารณาของมนุษย์ ดังนั้นจึงไม่สามารถรับประกันถึงความเป็นมิตรต่อผู้ใช้และประสบการณ์เชิงบวกของลูกค้าได้ | วิธีการทดสอบด้วยตนเองช่วยให้มนุษย์สังเกตได้ ซึ่งอาจเป็นประโยชน์ในการเสนอระบบที่เป็นมิตรต่อผู้ใช้ |
การทดสอบประสิทธิภาพ | การทดสอบประสิทธิภาพ เช่น การทดสอบโหลด การทดสอบความเครียด การทดสอบ Spike ฯลฯ จะต้องได้รับการทดสอบโดยเครื่องมืออัตโนมัติโดยบังคับ | การทดสอบประสิทธิภาพไม่สามารถทำได้ด้วยตนเอง |
การดำเนินการแบบขนาน | การทดสอบนี้สามารถดำเนินการได้บนแพลตฟอร์มปฏิบัติการที่แตกต่างกันแบบคู่ขนานและลดระยะเวลาในการดำเนินการทดสอบ | การทดสอบด้วยตนเองสามารถดำเนินการแบบคู่ขนานได้ แต่จะต้องเพิ่มทรัพยากรบุคคลซึ่งมีราคาแพง |
การทดสอบแบบแบตช์ | คุณสามารถรวมสคริปต์ทดสอบหลายชุดสำหรับการดำเนินการทุกคืน | การทดสอบด้วยตนเองไม่สามารถจัดเป็นชุดได้ |
ความรู้ด้านการเขียนโปรแกรม | ความรู้ด้านการเขียนโปรแกรมเป็นสิ่งจำเป็นในการทดสอบระบบอัตโนมัติ | ไม่จำเป็นต้องเขียนโปรแกรมในการทดสอบด้วยตนเอง |
จัดตั้งขึ้น | การทดสอบอัตโนมัติจำเป็นต้องมีการตั้งค่าการดำเนินการทดสอบที่ไม่ซับซ้อนมากนัก | ความต้องการการทดสอบด้วยตนเองมีการตั้งค่าการดำเนินการทดสอบที่ตรงไปตรงมามากขึ้น |
การมีปฏิสัมพันธ์ | ทำโดยเครื่องมือ มันแม่นยำและไม่เคยเบื่อ! | การดำเนินการทดสอบด้วยตนเองซ้ำๆ อาจทำให้น่าเบื่อและเกิดข้อผิดพลาดได้ง่าย |
แนวทางในอุดมคติ | การทดสอบอัตโนมัติมีประโยชน์เมื่อดำเนินการกรณีทดสอบชุดเดียวกันบ่อยครั้ง | การทดสอบด้วยตนเองพิสูจน์ได้ว่ามีประโยชน์เมื่อกรณีทดสอบจำเป็นต้องรันเพียงครั้งเดียวหรือสองครั้งเท่านั้น |
การตรวจสอบการสร้าง การทดสอบ |
การทดสอบอัตโนมัติมีประโยชน์สำหรับการตรวจสอบบิลด์ การทดสอบ (BVT) |
การดำเนินการทดสอบ Build Verification (BVT) เป็นเรื่องยากมากและใช้เวลานานในการทดสอบด้วยตนเอง |
กำหนดเวลา | การทดสอบอัตโนมัติไม่มีความเสี่ยงที่จะพลาดการทดสอบที่ตัดสินใจไว้ล่วงหน้า | การทดสอบด้วยตนเองมีความเสี่ยงสูงที่จะพลาดกำหนดเวลาการทดสอบที่กำหนดไว้ล่วงหน้า |
กรอบ | การทดสอบระบบอัตโนมัติใช้เฟรมเวิร์ก เช่น Data Drive, Keyword, Hybrid เพื่อเร่งกระบวนการอัตโนมัติ | การทดสอบด้วยตนเองไม่ได้ใช้กรอบงาน แต่อาจใช้แนวทาง รายการตรวจสอบ กระบวนการที่เข้มงวดเพื่อร่างกรณีทดสอบบางกรณี |
เอกสาร | การทดสอบอัตโนมัติทำหน้าที่เป็นเอกสารที่ให้คุณค่าการฝึกอบรม โดยเฉพาะอย่างยิ่งสำหรับกรณีทดสอบหน่วยอัตโนมัติ นักพัฒนาใหม่สามารถดูกรณีการทดสอบหน่วยและทำความเข้าใจฐานโค้ดได้อย่างรวดเร็ว | กรณีการทดสอบด้วยตนเองไม่ได้ให้ค่าการฝึกอบรม |
การออกแบบการทดสอบ | การทดสอบหน่วยอัตโนมัติบังคับใช้/ขับเคลื่อนการออกแบบการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ | การทดสอบหน่วยด้วยตนเองไม่ได้ผลักดันการออกแบบเข้าสู่กระบวนการเขียนโค้ด |
devops | การทดสอบอัตโนมัติช่วยในการทดสอบการยืนยันบิลด์และเป็นส่วนสำคัญของ DevOps Cycle | การทดสอบด้วยตนเองเอาชนะหลักการสร้างอัตโนมัติของ DevOps |
ควรใช้เมื่อใด? | การทดสอบอัตโนมัติเหมาะสำหรับการทดสอบการถดถอย การทดสอบประสิทธิภาพ การทดสอบโหลด หรือกรณีทดสอบการทำงานที่สามารถทำซ้ำได้สูง | การทดสอบด้วยตนเองเหมาะสำหรับการทดสอบเชิงสำรวจ การใช้งาน และการทดสอบเฉพาะกิจ ควรใช้ในกรณีที่ AUT เปลี่ยนแปลงบ่อยครั้ง |
ข้อดีและข้อเสียของการทดสอบด้วยตนเอง
ข้อดีของการทดสอบด้วยตนเอง:
- รับการตอบรับด้วยภาพที่รวดเร็วและแม่นยำ
- มีราคาถูกกว่าเนื่องจากคุณไม่จำเป็นต้องใช้งบประมาณสำหรับเครื่องมือและกระบวนการอัตโนมัติ
- การตัดสินใจและสัญชาตญาณของมนุษย์จะเป็นประโยชน์ต่อองค์ประกอบที่ต้องทำเองเสมอ
- ขณะทดสอบการเปลี่ยนแปลงเล็กๆ น้อยๆ การทดสอบอัตโนมัติจะต้องมีการเขียนโค้ดซึ่งอาจใช้เวลานาน ในขณะที่คุณสามารถทดสอบด้วยตนเองได้ทันที
ข้อเสียของการทดสอบด้วยตนเอง:
- Less วิธีการทดสอบที่เชื่อถือได้เพราะดำเนินการโดยมนุษย์ ดังนั้นจึงมีแนวโน้มที่จะเกิดข้อผิดพลาดและข้อผิดพลาดอยู่เสมอ
- ไม่สามารถบันทึกกระบวนการทดสอบด้วยตนเองได้ ดังนั้นจึงไม่สามารถนำการทดสอบด้วยตนเองกลับมาใช้ซ้ำได้
- ในวิธีการทดสอบนี้ งานบางอย่างทำได้ยากด้วยตนเองซึ่งอาจต้องใช้เวลาเพิ่มเติมในขั้นตอนการทดสอบซอฟต์แวร์
ข้อดีและข้อเสียของการทดสอบอัตโนมัติ
ข้อดีของการทดสอบอัตโนมัติ:
- การทดสอบอัตโนมัติช่วยให้คุณค้นหาจุดบกพร่องได้มากขึ้นเมื่อเปรียบเทียบกับผู้ทดสอบในมนุษย์
- เนื่องจากกระบวนการทดสอบส่วนใหญ่เป็นแบบอัตโนมัติ คุณจึงสามารถมีกระบวนการที่รวดเร็วและมีประสิทธิภาพได้
- สามารถบันทึกกระบวนการอัตโนมัติได้ ช่วยให้คุณสามารถนำการดำเนินการทดสอบประเภทเดียวกันมาใช้ซ้ำและดำเนินการได้
- การทดสอบอัตโนมัติดำเนินการโดยใช้เครื่องมือซอฟต์แวร์ ดังนั้นจึงทำงานได้โดยไม่เหนื่อยและเมื่อยล้าเหมือนกับการทดสอบด้วยตนเองโดยมนุษย์
- สามารถเพิ่มผลผลิตได้อย่างง่ายดายเนื่องจากให้ผลการทดสอบที่รวดเร็วและแม่นยำ
- การทดสอบอัตโนมัติรองรับแอปพลิเคชันต่างๆ
- สามารถเพิ่มความครอบคลุมในการทดสอบได้เนื่องจากเครื่องมือทดสอบอัตโนมัติไม่เคยลืมที่จะตรวจสอบแม้แต่หน่วยที่เล็กที่สุด
ข้อเสียของการทดสอบอัตโนมัติ:
- หากไม่มีองค์ประกอบของมนุษย์ การรับข้อมูลเชิงลึกเกี่ยวกับแง่มุมภาพของ UI ของคุณ เช่น สี แบบอักษร ขนาด คอนทราสต์ หรือขนาดปุ่มก็เป็นเรื่องยาก
- เครื่องมือในการทำการทดสอบอัตโนมัติอาจมีราคาแพง ซึ่งอาจเพิ่มต้นทุนของโปรเจ็กต์การทดสอบได้
- เครื่องมือทดสอบระบบอัตโนมัติยังไม่สามารถเข้าใจผิดได้ เครื่องมืออัตโนมัติทุกอันมีข้อจำกัดซึ่งทำให้ขอบเขตของระบบอัตโนมัติลดลง
- การดีบักสคริปต์ทดสอบเป็นอีกปัญหาสำคัญในการทดสอบอัตโนมัติ การทดสอบการบำรุงรักษามีค่าใช้จ่ายสูง