แนวทางของฉันในการทดสอบ GUI นั้นมีวิวัฒนาการเช่นเดียวกับฉันทามติอุตสาหกรรม แต่ฉันคิดว่าเทคนิคสำคัญบางอย่างกำลังเริ่มเกิดขึ้น
ฉันใช้เทคนิคเหล่านี้อย่างน้อยหนึ่งอย่างขึ้นอยู่กับสถานการณ์ (เช่นชนิดของ GUI ที่ต้องสร้างได้อย่างรวดเร็วว่าใครเป็นผู้ใช้ขั้นปลายเป็นต้น)
การทดสอบด้วยตนเอง คุณให้ GUI ทำงานตลอดเวลาขณะทำงานกับรหัสและให้แน่ใจว่าซิงค์กับรหัส คุณทดสอบและทดสอบส่วนที่คุณทำงานด้วยตนเองในขณะที่คุณทำงานด้วยตนเองสลับระหว่างรหัสและแอปพลิเคชันที่ทำงานอยู่ ทุกครั้งที่คุณทำงานชิ้นสำคัญเสร็จคุณจะต้องทำการทดสอบโดยรวมทั้งหน้าจอหรือพื้นที่ของแอปพลิเคชันเพื่อให้แน่ใจว่าไม่มีการถดถอย
การทดสอบหน่วย คุณเขียนการทดสอบสำหรับฟังก์ชั่นหรือพฤติกรรม GUI เล็กน้อย ตัวอย่างเช่นกราฟของคุณอาจต้องคำนวณเฉดสีที่แตกต่างกันตามสี 'ฐาน' คุณสามารถแยกการคำนวณนี้ไปยังฟังก์ชันและเขียนการทดสอบหน่วยสำหรับมัน คุณสามารถค้นหาตรรกะเช่นนี้ใน GUI (โดยเฉพาะอย่างยิ่งตรรกะที่สามารถใช้ซ้ำได้) และแยกออกเป็นฟังก์ชันรอบคอบซึ่งสามารถทดสอบหน่วยได้ง่ายขึ้น แม้พฤติกรรมที่ซับซ้อนสามารถแตกออกและทดสอบในลักษณะนี้ - ตัวอย่างเช่นลำดับขั้นตอนในตัวช่วยสร้างสามารถถูกแยกไปยังฟังก์ชั่นและหน่วยทดสอบสามารถตรวจสอบว่าได้รับการป้อนกลับขั้นตอนที่ถูกต้องจะถูกส่งกลับ
สำรวจส่วนประกอบ คุณสร้างหน้าจอ 'explorer' ซึ่งมีหน้าที่เพียงอย่างเดียวคือการแสดงส่วนประกอบที่สามารถใช้งานได้อีกครั้งซึ่งประกอบเป็น GUI ของคุณ หน้าจอนี้ให้วิธีที่รวดเร็วและง่ายดายในการตรวจสอบด้วยสายตาว่าส่วนประกอบทุกอย่างมีรูปลักษณ์และความรู้สึกที่ถูกต้อง ตัวสำรวจส่วนประกอบมีประสิทธิภาพมากกว่าการผ่านแอปพลิเคชันทั้งหมดด้วยตนเองเนื่องจาก A) คุณต้องตรวจสอบแต่ละองค์ประกอบเพียงครั้งเดียวและ B) คุณไม่จำเป็นต้องไปที่ส่วนลึกของแอปพลิเคชันเพื่อดูส่วนประกอบคุณเพียงแค่ดูและ ตรวจสอบทันที
การทดสอบระบบอัตโนมัติ คุณเขียนการทดสอบที่โต้ตอบกับหน้าจอหรือส่วนประกอบการจำลองการคลิกเมาส์การป้อนข้อมูล ฯลฯ ยืนยันว่าแอปพลิเคชันทำงานได้อย่างถูกต้องเนื่องจากมีการปรับเปลี่ยนเหล่านี้ สิ่งนี้มีประโยชน์ในการทดสอบสำรองเพิ่มเติมเพื่อดักจับข้อบกพร่องที่อาจเกิดขึ้นจากการทดสอบอื่น ๆ ของคุณ ฉันมักจะจองการทดสอบระบบอัตโนมัติสำหรับส่วนของ GUI ที่มีแนวโน้มที่จะทำลายและ / หรือมีความสำคัญอย่างยิ่ง ส่วนที่ฉันต้องการทราบโดยเร็วที่สุดหากมีสิ่งผิดปกติ ซึ่งอาจรวมถึงส่วนประกอบแบบอินเทอร์แอคทีฟที่มีความซับซ้อนสูงซึ่งเสี่ยงต่อการแตกหักหรือหน้าจอหลักที่สำคัญ
การทดสอบ Diff / snapshot คุณเขียนการทดสอบที่เพียงแค่จับเอาท์พุทเป็นภาพหน้าจอหรือเป็นรหัส HTML และเปรียบเทียบกับผลลัพธ์ก่อนหน้า ด้วยวิธีนี้คุณจะได้รับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงผลลัพธ์ การทดสอบที่แตกต่างกันอาจมีประโยชน์หากมุมมองภาพของ GUI ของคุณซับซ้อนและ / หรืออาจมีการเปลี่ยนแปลงซึ่งในกรณีนี้คุณต้องการความเห็นย้อนกลับอย่างรวดเร็วและเห็นได้ชัดว่าผลกระทบที่การเปลี่ยนแปลงนั้นมีต่อ GUI โดยรวมเป็นอย่างไร
แทนที่จะเลือกใช้การทดสอบทุกประเภทที่เป็นไปได้อย่างหนักฉันชอบที่จะเลือกและเลือกเทคนิคการทดสอบตามประเภทของสิ่งที่ฉันกำลังทำอยู่ ดังนั้นในกรณีหนึ่งฉันจะดึงฟังก์ชั่นที่เรียบง่ายและทดสอบหน่วย แต่ในอีกกรณีหนึ่งฉันจะเพิ่มส่วนประกอบลงในตัวสำรวจส่วนประกอบ ฯลฯ ขึ้นอยู่กับสถานการณ์
ฉันไม่ได้พบความครอบคลุมของรหัสเพื่อเป็นตัวชี้วัดที่มีประโยชน์มาก แต่คนอื่น ๆ อาจพบว่ามีประโยชน์สำหรับมัน
ฉันคิดว่ามาตรการแรกคือจำนวนและความรุนแรงของข้อบกพร่อง ลำดับความสำคัญอันดับแรกของคุณน่าจะมีแอปพลิเคชันที่ทำงานอย่างถูกต้อง หากแอปพลิเคชันทำงานอย่างถูกต้องแสดงว่ามีข้อบกพร่องเล็กน้อยหรือไม่มีเลย หากมีข้อบกพร่องมากมายหรือรุนแรงแสดงว่าคุณไม่ใช่การทดสอบหรือการทดสอบของคุณไม่มีประสิทธิภาพ
นอกเหนือจากการลดข้อบกพร่องแล้วยังมีมาตรการอื่น ๆ เช่นประสิทธิภาพการใช้งานการเข้าถึงการบำรุงรักษาความสามารถในการขยาย ฯลฯ สิ่งเหล่านี้จะแตกต่างกันไปตามประเภทของแอปพลิเคชันที่คุณกำลังสร้างธุรกิจผู้ใช้ปลายทางเป็นต้น
ทั้งหมดนี้ขึ้นอยู่กับประสบการณ์ส่วนตัวของฉันและการวิจัยตลอดจนการเขียนขึ้นที่ดีในการทดสอบ UIโดยแฮม Vocke