คู่มือ VS. อัตโนมัติ: วิธีใดที่ถูกต้องในการทดสอบแอปของคุณ
เผยแพร่แล้ว: 2022-02-24เมื่อคุณเปิดตัวแอป คุณต้องแน่ใจ 100% ว่าแอปจะทำงานได้อย่างราบรื่นและไม่มีที่ติ และแน่นอนว่าควรตอบสนองความคาดหวังของผู้ใช้ของคุณด้วย! มิฉะนั้น โครงการของคุณอาจล้มเหลว ซึ่งไม่ใช่ผลลัพธ์ที่ต้องการใช่ไหม ดังนั้น คุณจึงต้องใส่ใจกับการทดสอบการประกันคุณภาพแอป (QA)
แต่แนวทางที่ถูกต้องในการทดสอบแพลตฟอร์มของคุณคืออะไร? เลือกเทคนิคไหนดี? ควรตรวจสอบประสิทธิภาพของผลิตภัณฑ์ด้วยตนเองหรือใช้ระบบอัตโนมัติหรือไม่ หรืออาจจะเลือกทั้งสองตัวเลือกพร้อมกัน?
ในการประกันคุณภาพ (QA) การทดสอบระบบอัตโนมัติเป็นหนึ่งในตัวแทนด้านความเร็วที่ยิ่งใหญ่ที่สุด แต่เมื่อพูดถึงฟังก์ชันการทำงานและการแสดงครั้งแรก ไม่มีสิ่งใดมาทดแทนการทดสอบด้วยตนเองได้ ความจริงก็คือ แม้ว่าซอฟต์แวร์ทดสอบอัตโนมัติจะได้รับการขัดเกลามากขึ้น การทดสอบแอพมือถือแบบแมนนวลยังคงมีบทบาทสำคัญในแอปพลิเคชันคุณภาพการจัดส่ง
การทดสอบแอพมือถือทั้งสองประเภทมีข้อดีและข้อเสียที่แตกต่างกัน แต่สิ่งสำคัญโดยเฉพาะสำหรับบริษัทพัฒนาแอพมือถือในการฝึกการทดสอบด้วยตนเองเพื่อมอบประสบการณ์การใช้งานที่ยอดเยี่ยม
คลิก "เรียนรู้เพิ่มเติม" เพื่อขับเคลื่อนธุรกิจแอปและเกมของคุณด้วยบริการโปรโมตแอป ASO World ทันที
พื้นฐานการทดสอบแอพมือถือ
ในความหมายกว้างๆ มีสองวิธีในการทดสอบแอปพลิเคชันบนมือถือ คุณสามารถให้มนุษย์ใช้แอปพลิเคชันภายใต้สถานการณ์ต่างๆ เพื่อดูว่าตอบสนองอย่างไร หรือคุณอาจให้แอปพลิเคชันขับเคลื่อนซอฟต์แวร์ไปยังสถานที่ที่น่าสนใจและค้นหาผลลัพธ์ที่คาดหวังเทอมที่สองนี้มักเรียกกันว่า "การทดสอบระบบอัตโนมัติ" หรือบางทีอาจเรียกว่า "การทดสอบอัตโนมัติ" มันอาจจะถูกต้องกว่าถ้าเรียกมันว่า "การดำเนินการทดสอบและประเมินผลอัตโนมัติ" หรือ "การตรวจสอบอัตโนมัติ" แต่ข้อกำหนดก่อนหน้านี้ถูกระงับ
ทั้งสองวิธีสามารถใช้ได้ในสถานการณ์ที่แตกต่างกัน และความถูกต้องนั้นสามารถเปลี่ยนแปลงได้เมื่อเวลาผ่านไปในช่วงเวลาต่างๆ ของวงจรชีวิตของแอป ในทางปฏิบัติ องค์กรส่วนใหญ่ใช้ทั้งสองแบบผสมกัน ซึ่งอาจผลักดันการสำรวจของมนุษย์บางส่วนไปยังลูกค้า
การทดสอบอัตโนมัติและด้วยตนเองคืออะไร
การรับประกันซอฟต์แวร์คุณภาพสูงเป็นกระบวนการที่ซับซ้อน ซึ่งใช้เวลานานและต้องใช้เงินบางส่วน อย่างไรก็ตาม ค่าใช้จ่ายดังกล่าวไม่สามารถหลีกเลี่ยงได้ (หากคุณต้องการประสบความสำเร็จในระยะยาว)สิ่งสำคัญคือต้องจัดทำกลยุทธ์การทดสอบที่มีความสามารถ ซึ่งจะช่วยให้คุณได้รับผลสูงสุดโดยใช้ความพยายามเพียงเล็กน้อย และทำความเข้าใจว่าไซต์หรือแอปพลิเคชันตรงตามข้อกำหนดที่กำหนดหรือไม่
การทดสอบด้วยตนเอง
การทดสอบอัตโนมัติเป็นกระบวนการที่ดำเนินการทดสอบตามสคริปต์ล่วงหน้าบนแอปก่อนที่จะเผยแพร่สู่การใช้งานจริง การทดสอบอัตโนมัติช่วยให้คุณพบข้อบกพร่องในแอปของคุณได้เร็วขึ้น การทดสอบอัตโนมัติสามารถใช้เพื่อเรียกใช้การทดสอบที่ซ้ำๆ กัน ซึ่งจำเป็นต้องเรียกใช้เป็นระยะๆ และสามารถช่วยคุณค้นหาจุดบกพร่องในระยะแรกได้แม้ว่าเป้าหมายของการทดสอบด้วยตนเองคือการทดสอบสิ่งที่เรียกว่า "ประสบการณ์ของผู้ใช้" การทดสอบอัตโนมัติมีจุดมุ่งหมายเพื่อทดสอบฟังก์ชันการทำงานทั้งหมดที่เป็นลักษณะเฉพาะของแอป
สิบหกปีหลังจากที่ฉันได้รับการบอกกล่าวครั้งแรกว่าการทดสอบของมนุษย์จะ "หายไป" และเกือบหนึ่งทศวรรษหลังจากที่ฉันได้ยินนักสำรวจของมนุษย์ที่เรียกว่า "ไดโนเสาร์" เป็นครั้งแรก การทดสอบด้วยตนเองยังคงเป็นวิธีการทดสอบที่ใช้กันทั่วไปที่สุดสำหรับแอปพลิเคชันมือถือและเดสก์ท็อป
โดยการทดสอบด้วยตนเอง ฉันหมายถึงมนุษย์ที่ใช้แอปพลิเคชันผ่านส่วนหน้าจริงๆ มีสถานที่หลายแห่งที่การทดสอบด้วยตนเองนี้อาจเกิดขึ้น โปรแกรมเมอร์ส่วนใหญ่อย่างน้อยก็จำลองแอปพลิเคชัน ถ้าไม่ได้วางไว้บนโทรศัพท์ ก่อนที่จะส่งต่อให้คนอื่นทดสอบ บางบริษัทจ้างผู้ทดสอบเพื่อเจาะลึก มองข้ามเส้นทางแห่งความสุขหรือมองหาอุปกรณ์รุ่นต่างๆ
หากซอฟต์แวร์เป็นซอฟต์แวร์ภายใน บริษัทอาจมีคนที่จะใช้ซอฟต์แวร์นั้นทำการทดสอบการยอมรับจากผู้ใช้จริง ซึ่งเน้นที่ "ฉันสามารถทำงานของฉันด้วยซอฟต์แวร์นี้ได้ไหม" มากกว่า บางบริษัทเผยแพร่ซอฟต์แวร์ก่อนกำหนดสำหรับผู้ทดสอบ "เบต้า" ซึ่งอาจเป็นพนักงาน โดยใช้เครื่องมือเช่น Microsoft AppCenter
ในที่สุด บริษัทอย่าง Applause และ Testio ก็พร้อมที่จะใช้เวอร์ชัน "เบต้า" นั้นและรวบรวมผู้คนมาใช้งาน โดยให้ดวงตาหลายสิบถึงหลายพันคนเพื่อดูซอฟต์แวร์ ในการกำหนดค่าที่หลากหลายในช่วงเวลาสั้นๆ
ไม่ว่าใครจะทำการทดสอบด้วยตนเองอย่างไรหรือเมื่อไรก็ตาม จะทำให้คุณมีความรู้สึกที่แท้จริงว่าการใช้งานแอปพลิเคชันจริงเป็นอย่างไร การทดสอบด้วยตนเองสามารถดูได้ว่าปุ่มต่างๆ อยู่ในตำแหน่งที่ถูกต้องหรือไม่ หากมีขนาดใหญ่พอ หากซ้อนทับกันหากสีเข้ากันดี เป็นต้น คอมพิวเตอร์ไม่สามารถประเมินได้ว่าภาพบนหน้าจอ "ดูถูกต้อง" หรือไม่
อย่างไรก็ตาม มีการดำเนินการบางอย่างที่คอมพิวเตอร์สามารถทดสอบได้อย่างง่ายดาย ตัวอย่างเช่น เมื่อคุณพิมพ์ชื่อผู้ใช้และรหัสผ่าน และส่ง คุณควรไปที่หน้าจอที่แสดงชื่อของคุณและคุณได้เข้าสู่ระบบแล้ว การปล่อยให้รหัสผ่านผิดจะทำให้ข้อความแสดงข้อผิดพลาดปรากฏขึ้น
ความท้าทายของการทดสอบบนอุปกรณ์เคลื่อนที่มีแนวโน้มน้อยกว่าที่จะยอมรับกระบวนทัศน์แบบใดจากสองกระบวนทัศน์ แต่จะมากน้อยเพียงใด เมื่อใด และใคร
เหตุใดฉันจึงต้องการทดสอบด้วยตนเอง
การทดสอบด้วยตนเองให้ข้อเสนอแนะบางประการเกี่ยวกับการใช้งานและลักษณะที่ปรากฏพร้อมกับฟังก์ชันการทำงาน ผู้ทดสอบจะสวมบทบาทเป็นผู้ใช้ที่ทดลองใช้ทุกอย่างในแอปพลิเคชันนั้น โดยดำเนินการตามแบบฉบับที่ผู้ใช้ทำ เพื่อดูว่าแอปขัดข้องหรือไม่หรือเมื่อไร ด้วยการทดสอบด้วยตนเอง คุณมักจะได้รับความคิดเห็นเกี่ยวกับประสิทธิภาพ การระบายแบตเตอรี่ หรือความร้อนสูงเกินเร็วพอที่จะแก้ไขก่อนปล่อย คำติชมมักจะ "ฟรี" เพียงเพราะผู้ทดสอบให้ความสนใจฉันต้องใช้อุปกรณ์กี่เครื่องในการทดสอบ
คุณสามารถลองทดสอบอุปกรณ์ทุกเครื่องที่รองรับกับทุกเวอร์ชันของระบบปฏิบัติการที่รองรับด้วยตนเอง ครั้งล่าสุดที่เราตรวจสอบเมื่อสามปีที่แล้วมีอุปกรณ์ Android มากกว่า 24,000 เครื่องและเราหยุดนับ ตามความเป็นจริง องค์กรส่วนใหญ่ทดสอบด้วยเวอร์ชันล่าสุดที่ได้รับการสนับสนุน เวอร์ชันล่าสุดที่ได้รับการสนับสนุน และเวอร์ชันที่เก่าที่สุดที่รองรับ ระหว่าง Android และ iOS แท็บเล็ตและโทรศัพท์ บริษัทขนาดกลางและขนาดใหญ่ส่วนใหญ่ที่เราทำงานด้วยได้ลงเอยด้วยห้องปฏิบัติการทดสอบที่มีอุปกรณ์ 10-20 เครื่องการทดสอบอัตโนมัติ
การทดสอบอัตโนมัติคืออะไร?
เมื่อผู้คนใช้วลี การทดสอบอัตโนมัติ โดยทั่วไปหมายถึงการมีเครื่องมือ เช่น Selenium หรือ Appium ขับเคลื่อนอินเทอร์เฟซผู้ใช้ของแอปพลิเคชัน ตรวจสอบผลลัพธ์ที่คาดหวังไปพร้อมกันการตรวจสอบนี้มาจากชุดคำสั่งและจุดตรวจสอบ ซึ่งสามารถจัดเก็บไว้ในบางอย่าง เช่น สเปรดชีต หรือที่มีแนวโน้มว่าจะเป็นโปรแกรมคอมพิวเตอร์จริง
ดังนั้นการทดสอบจึงถูกกำหนดไว้ล่วงหน้า ทุกการทดสอบอาจเป็นโปรแกรมคอมพิวเตอร์ การทดสอบแต่ละครั้งอาจคลิกหรือพิมพ์ซ้ำหลายสิบครั้ง และมีจุดตรวจสอบอีกโหล เมื่อมีการทดสอบแล้ว หากพฤติกรรมของแอปพลิเคชันไม่เปลี่ยนแปลง การทดสอบอัตโนมัติสามารถค้นหาข้อบกพร่องในแอปพลิเคชันได้อย่างรวดเร็ว โดยปกติแล้วภายในไม่กี่นาทีหลังจากส่งไปยังการควบคุมเวอร์ชัน
การทดสอบอัตโนมัติสามารถใช้เพื่อเรียกใช้การทดสอบที่ซ้ำๆ กัน ที่ไม่ต้องการการไตร่ตรองจากมนุษย์ ซึ่งจำเป็นต้องเรียกใช้เป็นระยะๆ และสามารถช่วยคุณค้นหาจุดบกพร่องในระยะแรกได้ แม้ว่าเป้าหมายของการทดสอบด้วยตนเองคือการทดสอบ "ประสบการณ์ของผู้ใช้" การทดสอบอัตโนมัติมีจุดมุ่งหมายเพื่อทดสอบฟังก์ชันการทำงานทั้งหมดที่เป็นลักษณะเฉพาะของแอป
การทดสอบอัตโนมัติจะคลิกปุ่มที่ "ดูผิด" และอยู่ผิดที่และจะไม่บันทึกปัญหา (เว้นแต่คุณจะคิดที่จะตรวจสอบล่วงหน้า) มักจะพบข้อผิดพลาด ผลการค้นหาที่ไม่ถูกต้อง และอื่นๆ
เหตุใดฉันจึงต้องมีการทดสอบอัตโนมัติ
เมื่อแอปพลิเคชันเติบโตขึ้น เวลาในการทดสอบก็เพิ่มขึ้นด้วย การทดสอบอัตโนมัติทำให้เวลานั้นลดลงสำหรับการเปิดตัวบ่อยครั้ง นั่นทำให้คีย์การทดสอบอัตโนมัติช่วยเร่งกระบวนการทดสอบ ลดต้นทุน และลดเวลาในการตอบกลับสำหรับข้อผิดพลาดที่สำคัญอย่างมากจากวันเหลือเพียงไม่กี่นาที การทดสอบอัตโนมัติช่วยให้คุณ:ทดสอบฟังก์ชันการทำงานที่ซ้ำซากและมีแนวโน้มที่จะเกิดข้อผิดพลาดหากดำเนินการด้วยตนเอง กรณีทดสอบที่มีผลคาดการณ์ได้
ตั้งค่าและรันสถานการณ์การทดสอบที่ซับซ้อนและน่าเบื่อได้อย่างง่ายดาย
ที่สำคัญที่สุด: คุณสามารถทดสอบบนอุปกรณ์มือถือจำนวนมากขึ้นพร้อมๆ กัน ซึ่งช่วยประหยัดเวลา คุณสามารถใช้เครื่องจำลองหรือระบบคลาวด์ได้โดยไม่ต้องซื้อหรือจัดการอุปกรณ์!
ฉันต้องใช้กรณีทดสอบกี่กรณีสำหรับชุดการทดสอบพื้นฐาน
สิ่งนี้จะแตกต่างกันอย่างมากในแอปพลิเคชันและ "กรณีทดสอบ" นั้นใหญ่เพียงใด หากกรณีทดสอบเป็นการทดสอบ dom-to-database อย่างง่ายที่ตรวจสอบการดำเนินการเชิงตรรกะหนึ่งครั้ง ฟังก์ชันทั่วไปอาจมีการทดสอบสี่ถึงสิบครั้ง และแอปพลิเคชันทั่วไปอาจมีคุณลักษณะสี่ถึงสิบรายการหากแอปพลิเคชันถูกเข้ารหัสด้วยภาษาการเขียนโปรแกรมที่แตกต่างกันสองภาษา ภาษาหนึ่งสำหรับ iO และอีกภาษาหนึ่งสำหรับ Android คุณอาจต้องเพิ่มเป็นสองเท่า มิฉะนั้นให้เขียนเลเยอร์นามธรรมและมีชุดสถานการณ์ทางธุรกิจหนึ่งชุดและการใช้งานสองแบบที่แตกต่างกันไปตามระบบปฏิบัติการ
การทดสอบด้วยตนเองสำหรับแอพมือถือ
ประโยชน์ของการทดสอบด้วยตนเอง
- การทดสอบอินเทอร์เฟซผู้ใช้อย่างถูกต้องและรวดเร็ว
- สัมผัสและทดสอบแอปในฐานะผู้ใช้จริงเพื่อจำลองประสบการณ์ขั้นสุดท้าย
- ระบุและทำซ้ำปัญหาที่รายงานได้อย่างง่ายดาย
- การจัดการกับปัญหาที่ซับซ้อนและกรณีการใช้งาน
- การทดสอบการเปลี่ยนแปลงเล็กน้อยและโครงการเร็วขึ้นและคุ้มค่ามากขึ้น
ข้อเสียของการทดสอบด้วยตนเอง
- ความผิดพลาดของมนุษย์ส่งผลต่อความแม่นยำ
- ต้องทำการทดสอบซ้ำด้วยตนเองทุกครั้ง
- งานทดสอบที่น่าเบื่อนั้นยากกว่ามาก
- ความครอบคลุมที่มากต้องใช้ทรัพยากรจำนวนมาก เช่น จำนวนผู้ทดสอบและการเข้าถึงอุปกรณ์ที่หลากหลาย
การทดสอบด้วยตนเองในแอพมือถือใช้สำหรับ:
- การทดสอบเชิงสำรวจ: ในฐานะที่เป็นแนวทาง การทดสอบเชิงสำรวจให้ค่าผู้ทดสอบว่าเป็นส่วนสำคัญของกระบวนการทดสอบ สิ่งนี้ต้องการผู้ทดสอบด้วยตนเองเพื่อรับประโยชน์จากความเข้าใจ ความคิดสร้างสรรค์ และความรู้
- การทดสอบเฉพาะกิจ: ตามคำจำกัดความ ad-hoc เป็นประเภทการทดสอบที่ไม่เป็นทางการ มีจุดมุ่งหมายเพื่อทำลายระบบ ดังนั้นจึงไม่สามารถดำเนินการในลักษณะที่วางแผนไว้ได้ จำเป็นต้องมีผู้ทดสอบเพื่อทำงานผิดปกติเพื่อพยายามทำลายระบบ
- การทดสอบการใช้งาน: ผู้ทดสอบแบบใช้มือจะสัมผัสได้ถึงประสบการณ์การใช้งานขั้นสุดท้าย การใช้แอพเหมือนที่ออกแบบมาเพื่อใช้งานจะช่วยกำหนดว่าแอพนั้นใช้งานง่ายเพียงใดและการป้อนข้อมูลของมนุษย์เป็นกุญแจสำคัญในสิ่งนี้
การทดสอบอัตโนมัติสำหรับแอพมือถือ
ประโยชน์ของการทดสอบอัตโนมัติ
- ทำการทดสอบที่น่าเบื่อและท้าทายได้เร็วขึ้น
- ทดสอบอุปกรณ์ต่างๆ มากมาย
- การทดสอบอัตโนมัติสามารถใช้ซ้ำได้
- ผลลัพธ์ที่รวดเร็ว มีประสิทธิภาพ และแม่นยำ
- สามารถทำการทดสอบอัตโนมัติได้หลายแบบพร้อมกัน
- สำหรับแอปบนอุปกรณ์เคลื่อนที่ขนาดใหญ่ การทดสอบอัตโนมัติจะคุ้มค่ากว่า
ข้อเสียของการทดสอบอัตโนมัติ
- ไม่มีข้อมูลเชิงลึกเกี่ยวกับประสบการณ์ของผู้ใช้จากมุมมองภาพ
- ค่าใช้จ่ายในการดำเนินการทดสอบอัตโนมัตินั้นสูงเนื่องจากต้องใช้โค้ด
- สิ้นเปลืองในสถานการณ์ขนาดเล็ก
- ยังมีข้อผิดพลาดของมนุษย์อยู่บ้างเนื่องจากการทดสอบอัตโนมัติถูกตั้งโปรแกรมโดยมนุษย์และต้องมีการทดสอบของตัวเอง
- ต้องการการกำหนดค่าและรหัสเฉพาะสำหรับแต่ละแอพมือถือ
การทดสอบอัตโนมัติในแอพมือถือใช้สำหรับ:
- การทดสอบการถดถอย: หนึ่งในจุดแข็งที่ยิ่งใหญ่ที่สุดของการทดสอบอัตโนมัติคือความสามารถในการมีสคริปต์ทดสอบพร้อมที่จะทำงานทุกเมื่อ วิธีที่ดีที่สุดวิธีหนึ่งในการใช้การทดสอบอัตโนมัติคือการเปลี่ยนแปลงเล็กๆ น้อยๆ อย่างต่อเนื่องเมื่อคุณต้องการให้แน่ใจว่าจะไม่มีผลกระทบด้านลบใดๆ
- การทดสอบประสิทธิภาพ: ต่างจากการทดสอบความสามารถในการใช้งาน ประสิทธิภาพเป็นมากกว่าเกมตัวเลข การทดสอบว่าแอปทำงานเร็ว ตอบสนอง และเสถียรเพียงใดในอุปกรณ์ต่างๆ หรือภายใต้เงื่อนไขที่แตกต่างกัน เป็นสิ่งที่การทดสอบอัตโนมัติทำงานได้ดี ขนาดและความถูกต้องของผลลัพธ์ทำให้การทดสอบอัตโนมัติจำเป็นสำหรับการทดสอบประสิทธิภาพ
- การทดสอบซ้ำ: หลังจากเริ่มต้นการเข้ารหัสและกำหนดค่าสคริปต์ทดสอบแล้ว การทดสอบอัตโนมัติในระยะยาวจะมีประสิทธิภาพด้านต้นทุนอย่างมาก ความสามารถในการทำการทดสอบซ้ำโดยไม่มีค่าใช้จ่ายเพิ่มเติมสำหรับทรัพยากรของผู้ทดสอบ ทำให้การทดสอบและได้ผลลัพธ์ง่ายขึ้นมาก