มาเริ่มที่เรื่องพื้นฐานกันก่อน สำรวจโหมดการทดสอบทั่วไป 2 โหมดและการทำงานอัตโนมัติของการทดสอบ 3 ประเภทที่พบได้ทั่วไป
เราทุกคนเคยเจอปัญหานี้: เมมการเขียนโค้ดที่พบบ่อยในชีวิตจริงคืออะไร
มส์นี้สรุปปัญหาได้ดีมาก ลิ้นชักแต่ละลิ้นชักทำงานได้อย่างสมบูรณ์แบบเมื่อใช้แยกกัน แต่เมื่อใช้ร่วมกับลิ้นชักอื่นๆ ลิ้นชักจะบดบังกันและใช้งานไม่ได้ คุณต้องการให้ลิ้นชักทั้ง 2 ลิ้นชักทำงานร่วมกันได้ดีและใช้งานได้พร้อมกัน
แนวคิดนี้นำมาใช้กับการพัฒนาเว็บได้ นั่นคือคุณเขียนการทดสอบบางส่วนแล้ว และอาจครอบคลุมการทดสอบ 100% แต่แอปพลิเคชันของคุณยังคงต้องทำงานได้เมื่อส่วนอื่นๆ ทำงานได้อย่างถูกต้อง อุปกรณ์อาจทำงานได้ดีเมื่อใช้เพียงอย่างเดียว แต่ทำงานร่วมกันไม่ได้ การเขียนการทดสอบบางรายการเป็นสิ่งสําคัญ แต่เป็นเพียงส่วนหนึ่งของการตั้งค่าการทดสอบที่เหมาะสําหรับโปรเจ็กต์ของคุณ ขั้นตอนแรกสุดคือคุณต้องพิจารณาว่าต้องตรวจสอบคุณภาพแอปพลิเคชันส่วนใดและจะดำเนินการได้อย่างไร
กล่าวโดยย่อคือ คุณต้องมีแผนก่อนเริ่มเขียนโค้ดทดสอบจริง มาเริ่มกันที่หัวข้อวิธีทดสอบกันแบบลงมือทำกัน เริ่มจากคำถามพื้นฐาน 2 ข้อนี้
- คุณต้องการทดสอบอย่างไร
- คุณต้องการทดสอบอะไร
บทความนี้จะเน้นที่ข้อมูลทั่วไปที่คุณต้องทราบเพื่อตอบคำถามแรก เพื่อเป็นการเริ่มต้นจากพื้นฐานเดียวกัน เรามาเริ่มดูโหมดการทดสอบที่มีอยู่ก่อน แล้วจึงมุ่งเน้นที่การทดสอบประเภทต่างๆ ที่พบได้ทั่วไป ในบทความต่อๆ ไป เราจะตอบคําถามที่ 2 รวมคําตอบเข้าด้วยกัน และค้นหากลยุทธ์การทดสอบที่เหมาะกับโปรเจ็กต์ของคุณมากที่สุด เริ่มเลย 🙌
เริ่มต้นด้วยพื้นฐาน: โหมดการทดสอบทั่วไป
เมื่อตอบคำถามเกี่ยวกับวิธีทดสอบ สิ่งแรกที่ต้องชี้แจงนั้นเป็นเรื่องนามธรรมมาก คุณควรทดสอบด้วยตนเองหรือให้คอมพิวเตอร์ควบคุม อย่างไรก็ตาม สิ่งสำคัญคืออย่าคิดแบบขาวดำ
การทดสอบด้วยตนเองกับการทดสอบอัตโนมัติ
หากคุณขอให้วิศวกรการประกันคุณภาพอธิบายการทดสอบ วิศวกรอาจแบ่งการทดสอบออกเป็น "โหมด" 2 โหมดก่อน
- การทดสอบด้วยตนเอง ซึ่งเป็นวิธีการทดสอบทั่วไปที่ดำเนินการโดยผู้ใช้จริง วิศวกรฝ่ายประกันคุณภาพจะคลิกผ่านแอปพลิเคชันเพื่อตรวจสอบว่าใช้งานได้หรือไม่ และพยายามทำให้แอปพลิเคชันใช้งานไม่ได้ไปพร้อมๆ กัน วิธีที่ใช้กันมากที่สุดคือการทดสอบเพื่อสำรวจ ซึ่งวิศวกรจะตรวจสอบแอปพลิเคชันโดยใช้ความรู้เกี่ยวกับแอปพลิเคชันนั้นเทียบกับเส้นทางหรือเช็กลิสต์ที่กำหนดไว้ล่วงหน้า
- การทดสอบอัตโนมัติ การทดสอบประเภทนี้ดำเนินการโดยคอมพิวเตอร์ วิศวกรการรับรองคุณภาพใช้เครื่องมือนี้เพื่อทำการทดสอบซ้ำๆ และน่าเบื่อโดยอัตโนมัติ
คู่มือชุดนี้จะเน้นการทดสอบอัตโนมัติเป็นหลัก อย่างไรก็ตาม คุณไม่ควรมุ่งเน้นที่การทดสอบเพียงวิธีเดียว แม้ว่าการทำงานอัตโนมัติจะช่วยประหยัดเวลาและแรงได้มาก แต่มนุษย์และการทดสอบด้วยตนเองจะยังคงมีบทบาทสำคัญเสมอ แต่ควรช่วยให้ผู้ใช้มีเวลามากขึ้นในการมุ่งเน้นที่การทดสอบเพื่อสำรวจและการแก้ปัญหาอย่างสร้างสรรค์ เช่น การตรวจสอบคุณภาพของประสบการณ์ของผู้ใช้หรือปกป้องตรรกะทางธุรกิจที่มีความเสี่ยงสูง กล่าวคือ การทำงานอัตโนมัติจะช่วยคุณ ❤️
กล่องทึบกับกล่องใส
คุณได้กําหนดโหมดการทดสอบทั่วไปแล้ว แต่นั่นยังไม่เพียงพอ ในการวางแผนกลยุทธ์การทดสอบ คุณต้องตอบคําถามอีกข้อหนึ่งว่าควรทราบวิธีทํางานของแอปพลิเคชันเบื้องหลังหรือควรทดสอบโดยไม่มีข้อมูลนี้ ในการดึงข้อมูลและเลือกชุดทดสอบ คุณสามารถเลือกได้จาก 2 ขั้นตอนต่อไปนี้ โดยขึ้นอยู่กับคำตอบ
- การทดสอบกล่องทึบ (หรือที่เรียกว่าการทดสอบกล่องดำ) โดยอิงตามการวิเคราะห์ข้อกำหนด (ข้อมูลจำเพาะ) ที่เกี่ยวข้องกับการทำงานหรือไม่เกี่ยวข้องกับการทำงาน (ข้อมูลจำเพาะ) ของคอมโพเนนต์หรือระบบ โดยไม่พิจารณาโครงสร้างภายใน
- การทดสอบกล่องใส (หรือที่เรียกว่าการทดสอบกล่องขาว) เป็นกระบวนการที่พิจารณาโครงสร้างภายในของกล่องดังกล่าว กล่าวคือ ลักษณะการทํางานของแอปพลิเคชัน
ขั้นตอนทั้ง 2 ขั้นตอนนี้ใช้ได้กับการทดสอบด้วยตนเองและการทดสอบอัตโนมัติ อย่างไรก็ตาม บางแง่มุมของโหมดการทดสอบทั่วไปอาจมุ่งเน้นที่ข้อใดข้อหนึ่งมากกว่า เราจะกล่าวถึงเรื่องนี้ในภายหลัง ในระหว่างนี้ เรามาแยกประเภทการทํางานอัตโนมัติของการทดสอบกัน
ประเภทการทดสอบอัตโนมัติ: คุณต้องการทดสอบอย่างไร
เมื่อคุณใกล้จะตอบคำถาม "อย่างไร" แล้ว คุณก็ตัดสินใจที่จะทำการทดสอบด้วยตนเอง อย่างไรก็ตาม การเลือกและการใช้ประเภทการทำงานอัตโนมัติของการทดสอบนั้นทําได้ยากกว่า ประเภทการทดสอบการทำงานอัตโนมัติมีความเกี่ยวข้องกับเมตริกที่คุณต้องการสร้างในโปรเจ็กต์ เรามาเจาะลึกฟีเจอร์ที่สำคัญที่สุดกัน
ดังที่แสดงในมีมที่กล่าวถึงก่อนหน้านี้ คุณได้พบการทดสอบ 2 ประเภทแล้ว ได้แก่ การทดสอบหน่วยและการทดสอบการผสานรวม การทดสอบจากต้นทางถึงปลายทางเป็นสิ่งสำคัญที่ควรพิจารณาลำดับที่ 3 แต่ยังมีรายการอื่นๆ อยู่ มาดูรายละเอียดกันเลย
การทดสอบ 1 หน่วย
การทดสอบหน่วยเป็นการทดสอบประเภทหนึ่งที่ทดสอบส่วนย่อยที่ทดสอบได้หรือหน่วยของแอปพลิเคชันทีละส่วนอย่างอิสระเพื่อให้ทำงานได้อย่างถูกต้อง หน่วยเหล่านี้อาจมีขอบเขตแตกต่างกันไปตั้งแต่ฟังก์ชัน คลาส หรืออินเทอร์เฟซ ไปจนถึงบริการหรือคอมโพเนนต์ที่สมบูรณ์ แอตทริบิวต์หลักคือความเร็วในการดำเนินการ การแยก และความสามารถในการบำรุงรักษาที่สะดวกสบาย หากต้องการเจาะลึกเรื่องการทดสอบหน่วย ให้ไปที่คู่มือเกี่ยวกับการทดสอบหน่วยนี้
การทดสอบการผสานรวม
การทดสอบการผสานรวมจะมุ่งเน้นที่การโต้ตอบระหว่างคอมโพเนนต์หรือระบบ กล่าวคือ ประสิทธิภาพการทำงานร่วมกัน ตัวอย่างทั่วไปของการทดสอบการผสานรวม ได้แก่ การทดสอบ API หรือคอมโพเนนต์
การทดสอบจากต้นทางถึงปลายทาง
การทดสอบเหล่านี้มักเรียกว่าการทดสอบ UI และชื่อนี้อธิบายฟังก์ชันการทำงานได้ดียิ่งขึ้น การทดสอบเหล่านี้จะโต้ตอบกับ UI ของแอปพลิเคชัน รวมถึงสแต็กแอปพลิเคชันทั้งหมด และทดสอบแอปพลิเคชันจากต้นทางถึงปลายทาง
ซึ่งคล้ายกับการทดสอบระบบหากคุณอ้างอิงถึงทฤษฎีการรับประกันคุณภาพ การทดสอบเหล่านี้จะจำลองผู้ใช้จริงและการโต้ตอบของผู้ใช้ การทดสอบจากต้นทางถึงปลายทางจะใช้รันไทม์นานขึ้นเนื่องจากเกี่ยวข้องกับทั้งระบบ และรันไทม์ที่นานขึ้นต้องใช้พลังการประมวลผลมากขึ้น ด้วยเหตุนี้ ค่าใช้จ่ายในการบำรุงรักษาจึงสูงขึ้น
การทดสอบ UI แบบภาพ
หมวดหมู่ย่อยที่น่าสนใจของการทดสอบ UI คือการทดสอบภาพ การทดสอบเหล่านี้เป็นการทดสอบจากต้นทางถึงปลายทางแบบขยายการให้บริการ ซึ่งให้วิธียืนยันเอาต์พุตที่มองเห็นได้ของแอปพลิเคชัน การทดสอบดังกล่าวจะจับภาพหน้าจอหลังจากการเปลี่ยนแปลงและภาพหน้าจออีกภาพที่มี "สถานะปัจจุบัน" (หรือไฟล์โกลด์) จากนั้นส่งผลลัพธ์เหล่านั้นให้ผู้ตรวจสอบที่เป็นเจ้าหน้าที่ตรวจสอบและตรวจสอบ กล่าวคือ เครื่องมือนี้ช่วยค้นหา "ข้อบกพร่องด้านภาพ" ในลักษณะที่ปรากฏของหน้าเว็บ ซึ่งนอกเหนือจากข้อบกพร่องด้านฟังก์ชันการทำงานล้วนๆ และไม่ได้เขียนเป็นข้อความยืนยันอย่างชัดเจน
การวิเคราะห์แบบคงที่
อีกสิ่งหนึ่งที่เราจะแนะนำคือการวิเคราะห์แบบคงที่ ไม่ได้เป็นการทดสอบตามแบบแผน แต่จะเป็นองค์ประกอบสำคัญในกลยุทธ์การรับประกันคุณภาพในภายหลัง คุณจินตนาการได้ว่าเครื่องมือนี้ทำงานเหมือนฟังก์ชันตรวจตัวสะกด ซึ่งจะสแกนโค้ดเพื่อหาข้อบกพร่องที่สำคัญและข้อผิดพลาดทางไวยากรณ์โดยไม่ต้องเรียกใช้โปรแกรม เพื่อตรวจหาปัญหาเกี่ยวกับรูปแบบโค้ด วิธีง่ายๆ นี้ช่วยป้องกันข้อบกพร่องได้หลายอย่าง นี่เป็นโอกาสที่ดีในการดูข้อมูลเกี่ยวกับการวิเคราะห์แบบคงที่หากคุณต้องการทราบรายละเอียดเพิ่มเติม
การทดสอบในทุกรูปแบบ: ทั้งหมดนี้ทํางานร่วมกันอย่างไร
ขณะค้นหาคำตอบสำหรับคำถามเหล่านี้ คุณอาจพบวิธีแก้ปัญหาที่เป็นไปได้จากการเปรียบเทียบบางอย่าง ในชุมชนเว็บและการทดสอบโดยเฉพาะ นักพัฒนาแอปมักจะใช้การเปรียบเทียบเหล่านี้เพื่อให้คุณทราบจํานวนการทดสอบแต่ละประเภทที่คุณควรใช้
กลยุทธ์ 5 รูปแบบที่แสดงในภาพนี้เป็นกลยุทธ์ที่พบบ่อยที่สุด
- พีระมิดการทดสอบ
- Test Diamond
- Test Ice Cone (หรือที่เรียกว่า Test Pizza)
- ทดสอบ Honeycomb
- Test Trophy
ข้อมูลนี้จำนวนมากมากจริงๆ คุณควรตัดสินใจเลือกกลยุทธ์การทดสอบที่ตรงกันโดยอิงตามข้อมูลทั้งหมดนี้อย่างไร ไม่ต้องกังวล เราช่วยคุณได้ ในบทความถัดไป เราจะพูดถึงกลยุทธ์ต่างๆ เหล่านี้อย่างละเอียดมากขึ้นและอธิบายวิธีเลือกกลยุทธ์ที่เหมาะกับโปรเจ็กต์ของคุณมากที่สุด โปรดอดใจรอ 🔥