// นี่เป็นรายการสิ่งที่ต้องทำมากกว่าสิ่งใดในตอนนี้
อินโทร
อินพุตข้อความ
อินพุตอื่น ๆ (ช่องทำเครื่องหมาย, สวิตช์, การควบคุมพิเศษร่วมกัน)
การจัดการข้อผิดพลาด (ข้อยกเว้น, ขัดข้อง, การแจ้งเตือน, การแสดงข้อผิดพลาด)
การนำทาง (กด, ป๊อป, แท็บ, โมดอล, การหมุนหน้าจอ)
ความเป็นมา (สถานะบันทึก, บัตร Springboard)
การเชื่อมต่อ (WiFi, Slow Edge, 2G, 3G, 4G, ไม่ต่อเนื่อง, Zero-bytes, Offline, Plane Mode) และการเชื่อมต่อฮาร์ดแวร์ (USB, NFC, Bluetooth, WiFi)
การแปล (ของข้อความและรูปภาพในการตั้งค่าต่าง ๆ ในภาษาโทรศัพท์เทียบกับภาษาแอพเทียบกับภูมิภาคปัจจุบัน)
การหยุดชะงัก (การโทรที่ยอมรับการโทรปฏิเสธส่ง/รับ SMS วัฏจักรพลังงานรีสตาร์ทการส่ง/รับการแจ้งเตือนการแจ้งเตือนหน่วยความจำต่ำหน้าจอหลักการสลับแอพโหมดเครื่องบินออกจากที่เก็บข้อมูล): ควรหมายความว่าแอพสามารถหยุดตัวเองหยุดชั่วคราวและกู้คืนที่หน้าจอที่ถูกต้องและอยู่ในสถานะที่ถูกต้อง ตอบแอพ จากการแจ้งเตือน
ที่เก็บ (คือทุกสิ่งที่เก็บไว้อย่างถูกต้องโดยไม่มีความเสี่ยงในสถานที่ที่เหมาะสม)
ความปลอดภัย (แอปพลิเคชันของคุณจัดเก็บข้อมูลการชำระเงินหรือรายละเอียดบัตรเครดิตหรือไม่แอปพลิเคชันของคุณใช้โปรโตคอลเครือข่ายที่ปลอดภัยหรือไม่พวกเขาสามารถเปลี่ยนเป็นรายการที่ไม่ปลอดภัยได้หรือไม่แอปพลิเคชันขอสิทธิ์มากกว่าที่ต้องการหรือไม่ สำหรับการเรียกใช้แอปพลิเคชันละเมิดในความปลอดภัยของแอปพลิเคชันและข้อผิดพลาดรายงานใบรับรองแอปพลิเคชันที่รับรองความถูกต้องและการอนุญาตแอปพลิเคชันอัตโนมัติล็อคเมื่อป้อนอย่างต่อเนื่อง)
การเข้าถึง (ปุ่มซอฟต์แวร์, ซูม, ขนาดตัวอักษร, ข้อความเป็นคำพูด, ... )
ประสิทธิภาพ (การใช้แบตเตอรี่, การใช้งาน CPU, การใช้หน่วยความจำ (และการรั่วไหล), การจัดการที่เก็บ (ดิสก์กับการ์ด), การตอบสนอง, ขนาดหน้าจอ, เวลาในการเปิดตัวแอพ, เวลาบนหน้าจอเปิดตัว, หน้าจอโหลดหนัก / คุณควรแพร่กระจายโหลดคีย์อย่างต่อเนื่อง)
การทำงานพื้นหลัง (ทำงานนอกเธรดหลักเพื่อไม่ให้บล็อก UI แต่ยังไม่มีงานขนาดใหญ่เมื่อแอป "ไม่ได้ใช้งาน" หรือในพื้นหลังการระบายแบตเตอรี่/ข้อมูล/ฯลฯ )
การรวม (เป็นกล้อง, GPS, บลูทู ธ ทำงานได้ดีกับแอพ)
ความเข้ากันได้ย้อนหลังความเข้ากันได้ของฮาร์ดแวร์: ตรวจสอบอุปกรณ์ทั้งหมดทุกรุ่นหากเป็นไปได้ แอพจะต้องติดตั้งและใช้งานได้อย่างเต็มที่ (เว้นแต่ว่าไม่มีคุณสมบัติในอุปกรณ์นั้น)
รูปภาพ: ขนาดและน้ำหนักที่ถูกต้องบนอุปกรณ์และทิศทางทั้งหมด ไม่ยืดไม่ใช่พิกเซลไม่ใช่ HD ฯลฯ
สังคม: นโยบายความปลอดภัยและความเป็นส่วนตัวมีให้บริการผู้ใช้สามารถออกจากระบบหรือยกเลิก ผู้ใช้จะได้รับแจ้งว่าจะเกิดอะไรขึ้น/จะเกิดขึ้นเมื่อพวกเขาให้สิทธิ์และเมื่อพูดถึงสิ่งที่ (โพสต์/แชร์/ไลค์) เกิดขึ้น
โฆษณา (แสดง/ซ่อนเมื่อควรแสดงเนื้อหาที่เหมาะสม)
Timezones: การโทรจากระยะไกล/เวลาเทียบกับเวลาโทรศัพท์เทียบกับเวลาในภูมิภาคปัจจุบัน => ใช้ UTC ทุกที่ต่อไปเปลี่ยนเป็นเวลาท้องถิ่นในมุมมอง
ร้านค้า: แอพสามารถมองเห็นได้เฉพาะในร้านค้าที่คุณต้องการ/ต้องการ (iOS Appstore, Playstore, Android Market ฯลฯ ) และสามารถมองเห็นได้บนอุปกรณ์ที่เข้ากันได้เท่านั้น ไม่ควรมองเห็นแอพแท็บเล็ตในร้านสมาร์ทโฟน หน้าร้านค้าเป็นข้อมูลล่าสุดเกี่ยวกับการอัปเดตเวอร์ชันคำอธิบายชื่อ/หมายเลขผู้ทดสอบที่ได้รับแจ้งก่อนการเปิดตัว
การตรวจสอบการเปิดตัว / การตรวจสอบก่อนการจัดเก็บ (เพื่อให้การตรวจสอบร้านค้าควรผ่านไป)
ไอคอนแอพมีอยู่ในทุกรูปแบบที่จำเป็น มีไอคอนร้านค้า ภาพแอพทั้งหมดมีอยู่ในทุกรูปแบบ (1x, 2x, 3x ฯลฯ )
ความเข้ากันได้ของระบบปฏิบัติการความเข้ากันได้ของ crossplatform (ใช้งานได้กับ iOS / Android / Windows Phone ควรเป็นอย่างไร?)
ความเข้ากันได้ของเวอร์ชัน: มันใช้งานได้ใน iOS 9, 10, 11, 12 หรือไม่? ทดสอบเป้าหมายของคุณและเวอร์ชันทั้งหมดที่คุณควรสนับสนุน
มันใช้งานได้กับอุปกรณ์ทั้งหมดในทุกรุ่นหรือไม่? : iPhone, iPad, iPhone X, iPhone #s และ Android (Omegalul)
ทิศทาง (ข้อความแสดงข้อผิดพลาด, วิดีโอ, SplashScreen, การนำทางและหน้าจอปกติในทิศทางทั้งหมดในทุกขนาดอุปกรณ์)
เสียง (หยุดเมื่อไปถึงพื้นหลัง? ต่อไป? แสดงการแจ้งเตือนหรือไม่สามารถควบคุมได้ในศูนย์ควบคุม / ผู้เล่นระยะไกล)
การแจ้งเตือน (ถูกส่งเมื่อพวกเขาควรจะรวยหรือไม่?
ท่าทาง
// รายการสิ่งที่ต้องทำจริงของสิ่งที่ฉันไม่อยากลืม
เรื่องนี้เกี่ยวกับอะไร? นี่คือการทดสอบแอปของคุณอย่างละเอียดและสมบูรณ์ รายการนี้จะรวมองค์ประกอบให้มากที่สุดเท่าที่จะเป็นไปได้ว่าคุณควรทดสอบ หลายอย่างที่คุณอาจทดสอบไปแล้วบางอย่างที่คุณอาจไม่ได้คิด นี่เป็นเรื่องเกี่ยวกับการตรวจสอบกล่องทั้งหมดและตรวจสอบความจริงที่ว่าคุณทดสอบ X&Y จริง ๆ แต่คุณก็ตัดสินใจที่จะเพิกเฉยต่อ Z องค์ประกอบหลายอย่างของรายการตรวจสอบอาจไม่สามารถใช้ได้กับคุณเพราะแอปของคุณไม่มีคุณสมบัติเฉพาะหรือไม่ใช้เทคโนโลยีเฉพาะ คุณอาจต้องการข้ามการทดสอบบางอย่างด้วยเหตุผลใดก็ตามและนั่นก็ดี ขึ้นอยู่กับคุณแล้วที่จะค้นหาและตัดสินใจ ตราบใดที่คุณตัดสินใจก็หมายความว่าคุณได้อ่านรายการยอมรับราคาและผลที่ตามมาจากการทดสอบ (ไม่ใช่) และเป็นไปได้ดี!
หากคุณคิดเกี่ยวกับโครงการของคุณคุณอาจมีคนตาบอด คนตาบอดของโปรแกรมเมอร์หรือเจ้าของเป็นสิ่งที่เลวร้ายที่สุดเพราะคุณรู้ว่าแอพควรทำอะไรและอย่างหลีกเลี่ยงไม่ได้คุณจะทดสอบภายในขอบเขตเหล่านั้น ผู้ใช้อาจใช้แอพของคุณไม่ใช่ในแบบที่คุณคิดว่าจะเป็นปัญหาและนี่จะเป็นปัญหา UX เราอยู่ที่นี่เฉพาะเกี่ยวกับการทดสอบตรวจสอบให้แน่ใจว่าแอปของคุณทำงานแบบออฟไลน์หรือบนแบตเตอรี่ต่ำหรือเมื่อปฏิเสธสิทธิ์การเข้าถึงที่คุณต้องการ ผู้ใช้บางคนอาจทำสิ่งที่คุณได้รับในช่วงสัปดาห์ของการทดสอบ นี่เป็นส่วนใหญ่เกี่ยวกับ "การคิดนอกกรอบ" หรือสิ่งที่ฉันชอบเรียกมันว่า: ทำงานที่ดีที่สุดเท่าที่จะเป็นไปได้ในฐานะผู้ทดสอบ
นี่คือทวีตที่ค่อนข้างโด่งดังซึ่งแสดงให้เห็นถึงสิ่งที่ฉันหมายถึง
วิศวกร QA เดินเข้าไปในบาร์ สั่งซื้อเบียร์ คำสั่งซื้อ 0 เบียร์ คำสั่งซื้อ 999999999 เบียร์ สั่งจิ้งจก คำสั่งซื้อ -1 เบียร์ สั่งซื้อ sfdeljknesv
- Bill Sempf (@SEMPF) 23 กันยายน 2014
มันตลก (หรืออย่างน้อยฉันก็คิดว่ามันเป็น) และมันเป็นเรื่องจริง ตัวอย่างง่ายๆนี้แสดงหลายสิ่งหลายอย่างที่จะตรวจสอบในแอปของคุณ
รายการทั้งหมดดูค่อนข้างล้นหลามและเป็นเรื่องปกติ ฉันต้องการให้มันสมบูรณ์ที่สุดเท่าที่จะทำได้ อย่างที่ฉันได้กล่าวไว้ก่อนหน้านี้ประเด็นคือการแจ้งให้คุณทราบถึงความเป็นไปได้มากมาย มันขึ้นอยู่กับคุณที่จะตัดสินใจว่าองค์ประกอบนั้นคุ้มค่าที่จะทดสอบสำหรับกรณีเฉพาะของคุณหรือไม่ ไม่ว่าจะเป็นหรือไม่ได้เป็นการตัดสินใจของคุณตราบใดที่คุณตัดสินใจและตระหนักถึงมัน นั่นคือจุดของรายการนี้
คุณสามารถใช้รายการนี้ได้ตามที่คุณต้องการเพราะตราบใดที่คุณใช้งานคุณจะปรับปรุงคุณภาพของซอฟต์แวร์ที่คุณจัดส่ง ความจริงที่ว่าคุณใช้รายการนั้นมีความสำคัญมากกว่าวิธีที่คุณใช้รายการนั้น มันอาจเป็นคำแนะนำอย่างละเอียดและเป็นประจำรายการตรวจสอบก่อนวางจำหน่ายหรือแม้แต่ง่ายพอ ๆ กับการอ่านอย่างรวดเร็วก่อนเข้านอน ตราบใดที่คุณอ่านและรู้ว่ามันอยู่ที่นั่นมันจะมีประโยชน์อย่างใด
เป็นบันทึกย่อที่รวดเร็ว แต่สำคัญมากโปรดจำไว้ว่าการทดสอบจำนวนมากสามารถทำได้โดยใช้การทดสอบหน่วยคลาสสิกและการทดสอบ UI นั่นควรครอบคลุมองค์ประกอบสำคัญส่วนใหญ่ในการทดสอบแล้ว ส่วนที่เหลือสามารถทดสอบได้ด้วยตนเองหากจำเป็น นั่นหมายความว่าคุณสามารถเขียนชุดทดสอบและใช้ในสถานที่ต่าง ๆ ในแอพของคุณเพื่อให้แน่ใจว่ามีเสถียรภาพในระยะยาว การทดสอบทั้งหมดนี้ด้วยตนเองจะเป็นฝันร้าย หากคุณไม่ทราบวิธีการเขียนการทดสอบหน่วยหรือการทดสอบ UI ให้ค้นหา มีหลายสิ่งที่ต้องเรียนรู้ที่จะช่วยให้คุณประหยัดเวลาเงินและหลีกเลี่ยงการทดสอบด้วยตนเองเป็นจำนวนมาก
ฉันส่วนใหญ่เขียนสิ่งนี้เพียงอย่างเดียวความช่วยเหลือ/แรงบันดาลใจเพียงอย่างเดียวที่ฉันได้รับมาจากการเรียกดูอินเทอร์เน็ต (ดูบทต่อไป id) ในวิชาต่างๆ น่าเศร้าที่ฉันถูก จำกัด ด้วยความรู้และประสบการณ์ของฉันเองซึ่งหมายความว่ามีเนื้อหาจำนวนมากที่ขาดหายไปในพื้นที่ที่คุณผู้อ่านที่รักมีประสบการณ์มากมายนั่นคือสิ่งที่ GitHub เข้ามา คุณสามารถขอคำขอดึงได้อย่างอิสระแก้ไขเนื้อหาของฉันหรือเพิ่มของคุณเอง ฉันจะตรวจสอบและตรวจสอบความรู้ที่ดีที่สุดของฉันอาจด้วยความช่วยเหลือของชุมชน สิ่งต่าง ๆ เช่นความปลอดภัยการเข้ารหัสเครือข่ายเหล่านี้เป็นพื้นที่ที่ฉันขาดมากที่สุด เมื่อพิจารณาว่าฉันเป็นโจโดยเฉลี่ยนั่นอาจเป็นที่ที่คนส่วนใหญ่ขาดทักษะและแอพของคุณจะมีความเสี่ยง/ขาดเช่นกัน ซึ่งหมายความว่าพื้นที่เหล่านั้น (สิ่งที่คุณอ่อนแอ) ต้องได้รับการตรวจสอบสามครั้งและคุณควรใช้ความสนใจเป็นพิเศษกับมันอย่างแน่นอน!
วิธีอื่น ๆ ในการบริจาค / พูดขอบคุณจะเป็นสิ่งต่อไปนี้:
ท้ายที่สุดฉันใช้เวลามากในการช่วยคุณตลอดเวลาเช่นกันนั่นต้องคุ้มค่ากับสิ่งที่กล่าวมาข้างต้น: D
และในที่สุดฉันขอขอบคุณ Michael Hunter สำหรับรายการตรวจสอบที่น่าทึ่งของเขาซึ่งเป็นแรงบันดาลใจให้ฉันเริ่มรายการตรวจสอบของตัวเองโดยเฉพาะเกี่ยวกับการพัฒนามือถือ (iOS, Android, Windows Phone) ดูเหมือนว่าจะมีเวลาและความพยายามมากในรายการเวอร์ชันนั้นซึ่งฉันรู้ว่าไม่ใช่แม้แต่เวอร์ชันแรก นั่นเป็นงานที่ยอดเยี่ยมและถ้าคุณอยู่นอกมือถือฉัน ขอ แนะนำให้คุณลองดู ความหวังเดียวของฉันคือสักวันหนึ่งได้รับรายการตรวจสอบที่มีคุณภาพคล้ายกัน จากตรงนั้นฉันพบรายการตรวจสอบหลายรายการบนอินเทอร์เน็ตส่วนใหญ่ไม่สมบูรณ์มาก แต่รายการที่โดดเด่นคือรายการตรวจสอบส่วนหน้าของ David Dias ซึ่งเป็นแรงบันดาลใจให้ฉันในหลาย ๆ ด้านเพื่อปรับปรุงตัวเอง ได้โปรดไปตรวจสอบเขาด้วยเช่นกันมันคุ้มค่าที่จะแพร่กระจาย!
อินพุตข้อความมีหลายรสชาติขนาดและกรณีการใช้งาน เห็นได้ชัดว่าคุณไม่ได้ปฏิบัติต่อฟิลด์ password ผ่านแบบเดียวกับที่คุณปฏิบัติต่อฟิลด์อื่นและมีหลายฟิลด์ที่มีจุดประสงค์ที่แตกต่างกันมากมาย รายการนี้ควรครอบคลุมพวกเขาทั้งหมดหรืออย่างน้อยที่สุดของพวกเขา การทดสอบอินพุตของคุณจะทำผ่านหลายแง่มุม คุณต้องตรวจสอบให้แน่ใจว่าการตรวจสอบความถูกต้องทำงานใน Logic และ UI ว่าฟิลด์ข้อความจัดการกับความเครียดและอินพุตทุกชนิดและถ้ามีการจัดรูปแบบถ้ามีการทำงานอย่างถูกต้อง ในที่สุดผู้ที่อยู่ด้วยกันในที่สุดก็ควรมอบฟิลด์ข้อความที่ทำงานให้คุณ
คุณยังไม่ได้ทำหากคุณยังไม่ได้จัดการกับอินพุตและสถานการณ์ทั้งหมดต่อไปนี้เมื่อตรวจสอบอินพุตข้อความ โปรดทราบว่าสิ่งเหล่านี้ใช้กับประเภทอินพุตอื่น ๆ ส่วนใหญ่ (รหัสผ่านอีเมลตัวเลข ฯลฯ ) หากคุณกำลังจัดการกับอินพุตสตริงทุกประเภทให้พิจารณารายการต่อไปนี้รวมถึงรายการที่เกี่ยวข้อง
aBCd 1234 #@ !? ;) $= § :grinning: หรือ :-) หรือ? หรือ U+1F60A 123 t , " , ... string.Empty nullคุณยังไม่ได้ทำหากคุณยังไม่ได้พยายามป้อนข้อมูลด้วยวิธีต่อไปนี้:
และนั่นเป็นเพียงอินพุตข้อความเดียวในหน้าจอเดียวของแอปของคุณ คุณควรตรวจสอบความถูกต้องของฟิลด์อินพุตข้อความแต่ละช่องอย่างละเอียดตลอดทั้งแอป และนี่ไม่ได้กล่าวถึงการจัดรูปแบบอินพุตเช่นการเพิ่มช่องว่างโดยอัตโนมัติระหว่างอินพุตหรือบังคับให้อักขระบางตัวเป็นสีหรือเปลี่ยนเป็นตัวพิมพ์ใหญ่
คุณยังไม่เสร็จหากคุณยังไม่ได้ทดสอบอินพุตหมายเลขทั้งหมดของคุณอย่างละเอียด
0 13.37 หรือ 13,37 (ใจตัวแยกขึ้นอยู่กับสถานที่!) -1337 10^20 "124" 12.23 เทียบกับ 12,23 10.234,96 เทียบกับ 10,234.96 13.37 € เทียบกับ € 13.37 13.34 แทนที่จะเป็น 13.3389 13.00 หรือเพียง 13 หรืออย่างอื่นทั้งหมด? 4000 แต่ไม่ใช่ 3999.99 หรือฉันสามารถพิมพ์ 4000.56 ได้หรือไม่? 12345 กลายเป็น 0,12345 หรือ ,12345 หรืออย่างอื่น? มันฟอร์แมตเป็น 0,12 หรือไม่? -1 , 0 , -1000 , 234940 ) คุณยังไม่เสร็จหากคุณยังไม่ได้ทดสอบอินพุตอีเมลทั้งหมดของคุณอย่างละเอียด
@ @ . อักขระ . , - , _ , ฯลฯ ) ù , à , ฯลฯ คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้าคุณยังไม่ได้
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า
อินพุตไม่ได้เป็นข้อความในรูปแบบเสมอไปมีวิธีอื่น ๆ ที่ผู้คนสามารถให้ ... อินพุตได้ และมีวิธีอื่นในการลืมสิ่งของ!
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า
การจัดการข้อผิดพลาดเป็นเสาหลักของแอพที่มีสุขภาพดี มันจะช่วยให้คุณติดตามปัญหา (เครื่องมืออื่น ๆ จะช่วยด้วย) และแก้ไขข้อบกพร่อง แต่คุณไม่ต้องการให้เป็นอุปสรรคต่อผู้ใช้และประสบการณ์ของแอพของคุณ มีความสมดุลที่ดีเพื่อให้บรรลุระหว่าง UX ที่ดีการติดตามข้อผิดพลาดและการแจ้งให้ผู้ใช้ทราบถึงปัญหาที่เกิดขึ้น
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า
คุณยังไม่เสร็จถ้า