//هذا هو أكثر من قائمة TODO أكثر من أي شيء الآن
مقدمة
مدخلات النص
مدخلات أخرى (مربع الاختيار ، المفاتيح ، عناصر تحكم حصرية متبادلة)
إدارة الأخطاء (استثناءات ، تعطل ، تنبيهات ، عرض الأخطاء)
التنقل (دفع ، البوب ، علامات التبويب ، مشروط ، دوران الشاشة)
خلفية (الحالة المحفوظة ، بطاقة النقل)
الاتصال (wifi ، الحافة البطيئة ، 2G ، 3G ، 4G ، متقطع ، صفر باونيات ، غير متصل ، وضع الطائرة) واتصال الأجهزة (USB ، NFC ، Bluetooth ، WiFi)
التوطين (النص والصور ، في إعدادات مختلفة على لغة الهاتف مقابل لغة التطبيق مقابل المنطقة الحالية)
الانقطاعات (المكالمات المقبولة ، والمكالمات المنقولة ، وإرسال/استلام الرسائل القصيرة ، ودورة الطاقة ، وإعادة التشغيل ، وإرسال/استلام الإخطار ، والتنبيهات ، والذاكرة المنخفضة ، والشاشة الرئيسية ، وتبديل التطبيقات ، ووضع الطائرة ، والخروج من التخزين): ينبغي أن يعني أن التطبيق يمكن أن يوقف نفسه ، ويوقف نفسه ، والاسترداد في الشاشة الصحيحة وفي الحالة الصحيحة عندما يتم الوصول إلى الخلفية أو المقاطعة. الرد على التطبيقات من الإخطار .
التخزين (هل كل شيء مخزّن بشكل صحيح ، دون مخاطر ، في المكان المناسب)
الأمان (هل يقوم التطبيق بتخزين معلومات الدفع أو تفاصيل بطاقة الائتمان؟ هل يستخدم التطبيق الخاص بك بروتوكولات شبكة آمنة؟ هل يمكن تحويلها إلى تلك غير الآمنة؟ هل يطلب التطبيق المزيد من الأذونات أكثر مما يحتاج؟ لتشغيل التطبيقات خرق في أمان التطبيقات وتخطير الأخطاء المصادقة على شهادات التطبيق وأذونات التطبيق التلقائي عند إدخال غير صالح بشكل مستمر)
إمكانية الوصول (أزرار البرامج ، التكبير ، أحجام الخطوط ، النص إلى الكلام ، ...)
الأداء (استخدام البطارية ، واستخدام وحدة المعالجة المركزية ، واستخدام الذاكرة (والتسربات) ، وإدارة التخزين (القرص مقابل بطاقة) ، والاستجابة ، وحجم الشاشة ، والوقت لبدء التطبيق ، والوقت على شاشة الإطلاق ، يجب أن تنشر شاشة التحميل الثقيلة / Yous ، وضغط مفتاح مستمر) كل ما يحدث يجب التعامل معه بسلاسة مع رد فعل موجه لطيف.
عمل الخلفية (القيام بالعمل خارج مؤشر الترابط الرئيسي لعدم منع واجهة المستخدم ، ولكن أيضًا ليس لديك عمل ضخم عندما يكون التطبيق "خاملاً" أو في الخلفية ، استنزاف البطارية/البيانات/إلخ)
التكامل (هل تعمل الكاميرا ، GPS ، Bluetooth بشكل جيد مع التطبيق)
التوافق مع الوراء ، توافق الأجهزة: تحقق من جميع إصدارات جميع الأجهزة إن أمكن. يجب أن يكون التطبيق قابلًا للتثبيت وقابل للاستخدام بالكامل (ما لم تكن الميزات متوفرة على هذا الجهاز)
الصور: الحجم الصحيح والوزن على جميع الأجهزة والتوجهات. لا تمتد ، وليس البكسل ، وليس HD جدا ، إلخ.
Social: تتوفر سياسات الأمان والخصوصية ، ويمكن للمستخدم تسجيل الخروج أو إلغاء الاشتراك. تتم مطالب المستخدمين بما يمكن أن يحدث/سيحدث عندما يمنحون حقوقًا وعندما يحدث الشيء (المشاركات/الأسهم/الإعجابات) يحدث.
الإعلانات (معروضة/مخفية عندما ينبغي ، عرض المحتوى المناسب)
المناطق الزمنية: المكالمات/الأوقات عن بُعد مقابل وقت الهاتف مقابل الوقت الحالي للمنطقة => استخدم UTC في كل مكان على أي حال ، وتحويل إلى وقت محلي في العرض
المتاجر: التطبيق مرئي فقط في المتاجر التي تريدها/تحتاجها (iOS AppStore ، Playstore ، Android Market ، إلخ) ، وهو مرئي فقط على الأجهزة المتوافقة. يجب ألا يكون تطبيق الكمبيوتر اللوحي مرئيًا في متجر الهواتف الذكية. صفحة المتجر محدثة مع تحديثات الإصدار ، الوصف ، الاسم/الرقم ، المختبرين الذين تم إخطارهم قبل الإصدار ،
شيكات ما قبل الإصدار / الشيكات المسبقة (بحيث يجب أن تمر مراجعة المتجر)
أيقونات التطبيق متوفرة في جميع التنسيقات المطلوبة ؛ أيقونات المتجر متوفرة ؛ جميع صور التطبيق متوفرة في جميع التنسيقات (1x ، 2x ، 3x ، إلخ)
توافقات نظام التشغيل ، توافق المتقاطع (هل يعمل على iOS / Android / Windows Phone كيف ينبغي؟)
توافق الإصدار: هل يعمل في iOS 9 ، 10 ، 11 ، 12؟ اختبر هدفك وجميع الإصدارات التي من المفترض أن تدعمها
هل تعمل على جميع الأجهزة على جميع الإصدارات؟ : iPhone و iPad و iPhone X و iPhone #S وأيضًا Android (Omegalul)
التوجهات (رسائل الخطأ ، مقاطع الفيديو ، الشاشة الدقيقة ، التنقل والشاشات العادية في جميع التوجهات ، على جميع أحجام الأجهزة)
الصوت (يتوقف عند الذهاب إلى الخلفية؟ يستمر؟ يعرض إشعارًا؟ يمكن التحكم فيه في مركز التحكم / اللاعب البعيد)
الإخطارات (يتم إرسالها عندما يجب عليهم ، غنية؟ متعمقة؟ تعديل شارة؟ تحديثات الشارة نفسها عندما يتم قراءة التطبيق؟
إيماءات
// قائمة TODO الفعلية للأشياء التي لا أريد أن أنسى
ما هذا؟ هذا يتعلق باختبار تطبيقك بدقة وبشكل كامل. ستتضمن هذه القائمة أكبر عدد ممكن من العناصر التي يجب عليك اختبارها. ربما تكون قد اختبرت الكثير منها بالفعل ، بعضها ربما لم تفكر فيه. يتعلق الأمر بالتحقق من جميع الصناديق وإما التحقق من صحة حقيقة أنك قد اختبرت بالفعل X&Y ، لكنك قررت أيضًا تجاهل Z. قد لا تنطبق العديد من عناصر قائمة المراجعة ، لأن تطبيقك لا يحتوي على تلك الميزة المحددة أو لا تستخدم تقنية محددة. قد ترغب أيضًا في تخطي بعض الاختبارات لأي سبب من الأسباب ، وهذا جيد. الأمر متروك لك لمعرفة ذلك وتقرر ؛ طالما أنك اتخذت قرارًا ، فهذا يعني أنك قد قرأت القائمة ، وقبلت السعر والعواقب للاختبار (وليس) من الجيد الذهاب!
إذا كنت تفكر في مشروعك ، فمن المحتمل أن يكون لديك الغموض. تعتبر برامج المبرمج أو المالك الأسوأ ، لأنك تعرف ما يفترض أن يفعله التطبيق ، وحتماً ، سوف تختبر داخل تلك الحدود. قد يستخدم المستخدمون تطبيقك وليس بالطريقة التي تعتقد أنها سيفعلونها ، وستكون هذه مشكلة UX. نحن هنا فقط حول الاختبار ، والتأكد من أن تطبيقك يعمل في وضع عدم الاتصال ، أو على البطارية المنخفضة ، أو عند رفض حقوق الوصول التي تحتاجها بالفعل. بعض الأشياء التي قد يفعلها المستخدمون التي أخذتها أمرا مفروغا منه خلال كل هذه الأسابيع من الاختبار. هذا في الغالب يدور حول "التفكير خارج الصندوق" أو ، ما أحب أن أسميه: القيام بأفضل وظيفة ممكنة كاختبار.
إليك تغريدة شهيرة توضح ما أعنيه.
مهندس QA يمشي في حانة. يأمر بيرة. أوامر 0 البيرة. أوامر 999999999 بيرة. أوامر سحلية. أوامر -1 البيرة. يأمر Sfdeljknesv.
- Bill Sempf (sempf) 23 سبتمبر 2014
إنه أمر مضحك (أو على الأقل أحب أن أعتقد أنه) وهذا صحيح. يوضح هذا المثال البسيط العديد من الأشياء للتحقق من تطبيقك.
القائمة بأكملها تبدو ساحقة للغاية وهذا أمر طبيعي. أريد أن تكون كاملة قدر الإمكان. كما قلت سابقًا ، فإن النقطة هي إبلاغك بالعديد من الاحتمالات. الأمر متروك لك لتقرير ما إذا كان عنصر ما يستحق الاختبار لحالتك المحددة. إذا كان الأمر أو ليس قرارك ، طالما اتخذت القرار وتدركه. هذا هو الهدف من هذه القائمة.
يمكنك استخدام هذه القائمة كما تريد ، لأنه طالما كنت تستخدمها ، فسوف تقوم بتحسين جودة البرنامج الذي تشحنه. حقيقة أن تستخدم هذه القائمة أكثر أهمية بكثير من كيفية استخدام هذه القائمة. يمكن أن يكون تجولًا شاملاً ومنتظمًا ، أو قائمة مراجعة مسبقة الإصدار ، أو حتى بسيطة مثل القراءة السريعة قبل الذهاب إلى الفراش. طالما قرأته وتعلم أنه موجود ، سيكون مفيدًا بطريقة أو بأخرى.
كملاحظة سريعة ولكنها مهمة للغاية ، تذكر أنه يمكن إجراء الكثير من هذا الاختبار باستخدام اختبارات الوحدة الكلاسيكية ، واختبارات واجهة المستخدم. يجب أن يغطي ذلك بالفعل الغالبية العظمى من العناصر المهمة للاختبار. يمكن اختبار الباقي يدويًا إذا لزم الأمر. هذا يعني أنه يمكنك كتابة أجنحة الاختبار واستخدامها في أماكن مختلفة في تطبيقك لضمان الاستقرار على المدى الطويل. اختبار كل هذا يدويًا سيكون كابوسًا ؛ إذا كنت لا تعرف كيفية كتابة اختبارات الوحدة أو اختبارات واجهة المستخدم ، فابحث عنها. هناك الكثير لتتعلمه هناك سيوفر لك قدرًا هائلاً من الوقت والمال وتجنب المحنة التي يكون الاختبار اليدوي.
في الغالب أكتب هذا بمفرده ، كان المساعدة/الإلهام الوحيدة التي حصلت عليها من تصفح الإنترنت (انظر الفصل التالي ، المعرف) حول مواضيع مختلفة. للأسف ، أنا مقيد بمعرفتي وتجربتي ، مما يعني أن هناك بالتأكيد الكثير من المحتوى المفقود في المجالات التي لديك ، عزيزي القارئ ، خبرة كبيرة فيها. هذا هو المكان الذي يأتي فيه Github ؛ يمكنك طلب طلب سحب بحرية ، أو تعديل المحتوى الخاص بي أو إضافة خاص بك. سأراجعها والتحقق منها على حد علمي ، ربما بمساعدة المجتمع. أشياء مثل الأمان ، التشفير ، الشبكات ، تلك هي المجالات التي أفتقر إليها أكثر من غيرها. بالنظر إلى أنني جو متوسط ، فمن المحتمل أن يكون معظم الناس يفتقرون إلى المهارة ، وحيث سيكون تطبيقك أكثر عرضة للضعف/يفتقر أيضًا. هذا يعني أن هذه المناطق (المناطق التي تضعف فيها) يجب فحصها ثلاث مرات ويجب أن تنفق بالتأكيد اهتمامًا إضافيًا عليها!
طرق أخرى للمساهمة / قول شكرا لك سيكون ما يلي:
بعد كل شيء ، أنا أقضي الكثير من الوقت لتوفير كل الوقت أيضًا ، يجب أن يكون ذلك يستحق شيئًا ما سبق: د
وأخيراً ، أود أن أشكر مايكل هانتر على قائمة المراجعة المذهلة ، والتي ألهمتني لبدء قائمة المراجعة الخاصة بي على وجه التحديد حول تطوير الهاتف المحمول (iOS ، Android ، Windows Phone). يبدو الأمر وكأنه الكثير من الوقت والجهد تم وضعه في هذا الإصدار من القائمة ، والذي أعرف أنه ليس حتى الإصدار الأول. هذا عمل رائع ، وإذا كنت خارج الهاتف المحمول ، أقترح بشدة أن تخرج من ذلك. أملي الوحيد هو تحقيق قائمة مرجعية ذات جودة مماثلة. من هناك ، وجدت قوائم فحص متعددة على الإنترنت ، ومعظمها غير مكتمل للغاية ، ولكن القائمة التي تبرز هي قائمة مراجعة الواجهة الأمامية لديفيد دياس ، والتي ألهمتني أيضًا بعدة طرق لتحسين بلدي. من فضلك ، اذهب تحقق منه أيضًا ، إنه عمل يستحق الانتشار!
تأتي مدخلات النص في العديد من النكهات والحجم والاستخدام. من الواضح أنك لا تتعامل مع حقول password بنفس الطريقة التي تتعامل بها مع حقل آخر ، وهناك العديد من الحقول ذات الأغراض المختلفة. يجب أن تغطيهم هذه القائمة ، أو على الأقل معظمهم. سيتم اختبار المدخلات الخاصة بك من خلال جوانب متعددة. تحتاج إلى التأكد من أن التحقق من الصحة في المنطق وواجهة المستخدم ، وأن تتولى Textfield جميع أنواع الإجهاد والمدخلات ، وأنه ، إن وجد ، يعمل بشكل صحيح. يجب أن يوفر لك كل هؤلاء معًا في نهاية المطاف ملعب نص عمل.
لم تنته بعد إذا لم تكن قد تعاملت مع جميع المدخلات والمواقف التالية ، عند التحقق من صحة المدخلات النصية. لاحظ أن هذه تنطبق أيضًا على معظم أنواع الإدخال الأخرى (كلمة المرور والبريد الإلكتروني والأرقام وما إلى ذلك). إذا كنت تتعامل مع أي نوع من إدخال السلسلة ، ففكر في القائمة التالية وكذلك القائمة ذات الصلة.
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 الجيد ، وتتبع الأخطاء ، وإخطار المستخدم بوجود مشكلة.
لم تنته بعد إذا
لم تنته بعد إذا
لم تنته بعد إذا
لم تنته بعد إذا