الذي يكتب اختبارات واجهة المستخدم الآلية؟ المطورين أو المختبرين؟

StackOverflow https://stackoverflow.com/questions/1297195

سؤال

نحن في المراحل الأولية لمشروع كبير، وقررت أن يكون من المحتمل أن يكون هناك شكل من أشكال اختبار واجهة المستخدم التلقائي مفيدا بالنسبة لنا، لكنه لم يتم فرزه بالضبط كيف سيعمل هذا الأمر ...

الهدف الأساسي هو أتمتة التثبيت الأساسي وتشغيل التطبيق، لذلك إذا كان المطور يسبب كسر كبير (على سبيل المثال: لن يتم تثبيت التطبيق، لن تتصل الشبكة، لن يتم عرض النافذة، إلخ) لا يجب أن تضيع وقتهم (وانتزع من قبل) تثبيت وتكوين بناء مكسور

الهدف الثانوي هو مساعدة المختبرين عند التعامل مع المهام المتكررة.

سؤالي هو: من يجب أن يخلق هذه الأنواع من الاختبارات؟ كان الافتراض الضمني في فريقنا هو أن المختبرين سيفعلون ذلك، لكن كل ما قرأته على الشبكة يبدو دائما يعني أن المطورين سيقومون بإنشائهم، كنوع من "اختبار الوحدة الممتدة".

بعض الأفكار:

  • يبدو أن المطورين في وضع أفضل بكثير للقيام بذلك، بالنظر إلى أنهم يعرفون معرف التحكم والفصول، وما إلى ذلك، ولديهم صورة أفضل بكثير من كيفية عمل التطبيق

  • لدى المختبرين ميزة عدم معرفة كيفية عمل التطبيق، وبالتالي يمكن أن تنتج الاختبارات التي قد تكون أكثر فائدة

  • لقد كتبت بعض البرامج النصية الأولية باستخدام ايكريبي و أبيض. وبعد هذا عمل جيدا حقا، وهو قوي بما فيه الكفاية للقيام بأي شيء حرفيا، ولكن عليك أن تكون قادرا على كتابة التعليمات البرمجية لكتابة اختبارات UI

  • يبدو أن جميع أدوات اختبار واجهة المستخدم الآلية التي جربناها (testcomplete، إلخ) معقدة بشكل لا يصدق وهشة، وبينما يمكن للمختبرين استخدامها، يستغرق الأمر حوالي 100 مرة أطول وهم يركضون باستمرار إلى "تعقيد عرضي" الناجمة عن أدوات اختبار واجهة المستخدم.

  • لا يمكن للمختبرين لدينا كود، وبينما تكون ذكية كبيرة، كل ما حصلت عليه بمظهر مضحك عندما اقترحت أن المختبرين قد يكتبون نصوص روبي بسيطة (على الرغم من أن البرامج النصية المذكورة حوالي 100x أسهل للقراءة والكتابة من الفوضى المطلقة أزرار و DataGrids التي يبدو أنها معيار لأدوات اختبار UI الآلي).

كنت أقدر حقا أي تعليقات من الآخرين الذين جربوا أتمتة واجهة المستخدم في فريق من كل من المطورين والمختبرين. من فعل ما، وفعل ذلك بشكل جيد؟ شكرا مقدما!

يحرر: التطبيق المعني هو تطبيق C # WPF "WPF" الذي يتصل بخادم باستخدام WCF

هل كانت مفيدة؟

المحلول

من الناحية المثالية، يجب أن يكون حقا ضمان الجودة الذي ينتهي بكتابة الاختبارات. المشكلة في استخدام الحل البرمجي هي منحنى التعلم المشترك في الحصول على VEWER QA حتى السرعة باستخدام الأداة. يمكن للمطورين بالتأكيد المساعدة في منحنى التعلم هذا ومساعدة العملية من خلال التوجيه، لكنها لا تزال تستغرق وقتا وتنمية في التنمية.

البديل هو استخدام أداة واجهة المستخدم الرسومية البسيطة التي تدعم لغة (وبركات نصية) وتمكن الجودة من إنشاء البرامج النصية بصريا، والخوض في التفاصيل الدقيقة للغة فقط عندما تكون ضرورية حقا - يمكن أن تتورط التنمية أيضا هنا أيضا.

كانت المحاولات الأكثر نجاحا التي رأيتها لها بالتأكيد مع الأخير، لكن تحديد هذا الأمر هو الجزء الصعب. عملت السيلينيوم بشكل جيد لتطبيقات الويب البسيطة والخيوط البسيطة من خلال التطبيق. عمل JMeter أيضا (للمحادثات عبر الويب المقدمة لخدمات الويب) بشكل جيد ... خيار آخر وهو ما هو في تسخير اختبار المنزل المدمج في المنزل - أداة بسيطة فوق أعلى لغة البرمجة النصية (Groovy، Python، Ruby) التي تسمح ل QA ضع بيانات الاختبار في التطبيق إما عن طريق واجهة المستخدم الرسومية أو عبر ملفات البيانات. يمكن أن تكون ملفات البيانات ملفات الخصائص البسيطة، أو في حالات أكثر تعقيدا منظم (شيء مثل yaml أو حتى Excel) ملفات البيانات. وبهذه الطريقة التي يمكنهم بناء اختبارات الدخان الأساسية للبدء، وتوسع لاحقا ذلك في مختلف الاختبارات التي يحركها السيناريو.

أخيرا ... أعتقد أن تطبيقات العميل الغنية أكثر صعوبة في الاختبار بهذه الطريقة، لكنها تعتمد على طبيعة اللغة والأدوات المتاحة لك ...

نصائح أخرى

في تجربتي، سيقوم المختبرون بإمكانية تبديل المهام لرفع الأجور كمطورين.

وأنا أتفق معك على أدوات اختبار واجهة المستخدم الآلية. كل مكان عملته كان غنيا بما يكفي لتحمل WinRunner أو Loadrunner لا يستطيع تحمل الموظفين لاستخدامه بالفعل. ربما تكون الأسعار قد تغيرت، ولكن في ذلك الوقت، كانت هذه في ارتفاع 5 أرقام بطاقات منخفضة مكونة من 6 أرقام (فكر في سعر بداية المنزل). كانت المنتجات صعبة الاستخدام، وعادة ما تبقى إلغاء تثبيتها في خزانة مغلق لأن الجميع كانوا يخافون من التعرض للمشكلة لكسرها.

لقد عملت أكثر من 7 سنوات كمطور تطبيق قبل أن تتحول أخيرا إلى اختبار واختبار الأتمتة. الاختبار أكثر تحديا بكثير من الترميز، وأي مطور أتمتة يريد أن ينجح في إجراء مهارات الاختبار.

منذ بعض الوقت أضع أفكاري على مصفوفات المهارات في مرحلة بلوق.

إذا كانت مهتمة من مناقشة:

http://automation-beyond.com/2009/05/28/28/28/28/28/Qa-Automation-skill-matrices/

شكرا.

أعتقد أن وجود المطورين يكتبون أن الاختبارات ستكون من الأكثر استخداما. بهذه الطريقة، يمكنك الحصول على "فحص الكسر" طوال دورة Dev الخاصة بك، وليس فقط في النهاية. إذا قمت بإنشاءات آلية ليلا، يمكنك التقاط الأخطاء وإصلاحها عندما تكون صغيرة، قبل أن تنمو في أخطاء ضخمة ومتوسطة للإنسان.

ماذا عن المختبرين يقترحون الاختبارات، والمطورين يكتبونها بالفعل؟

أعتقد في البداية، يعتمد إلى حد كبير على الأدوات التي تستخدمها.

تستخدم شركتنا حاليا السيلينيوم (نحن متجر جافا).

يعمل IDE السيلينيوم (الذي يؤدي الإجراءات الموجودة في فايرفوكس) على ما يرام، لكن المطورين يحتاجون إلى تصحيح الأخطاء يدويا يدويا يتعارضون على webapps لدينا، لذلك ليس مناسبا حقا ل QA لكتابة الاختبارات مع.

كان هناك شيء واحد حاولت فيه في الماضي (مع وجود بعض النجاح)، هو كتابة وظائف المكتبة كغلافين لوظائف السيلينيوم. قرأوا كإنجليزية عادي:

selenium.clickButton("Button Text")

... ولكن وراء الكواليس تحقق من التخطيط السليم والعلامات على الزر، لديه معرف إلخ.

لسوء الحظ، هذا يتطلب الكثير من الإعداد للسماح بالكتابة السهلة من الاختبارات.

أصبحت مؤخرا على دراية بأداة تسمى تحريف (من الأمر الموسيقي، تم إنشاؤه على محرك الكسوف)، وهو عبارة عن غلاف للسيلينيوم، مما يسمح باختبارات نمط اللغة الإنجليزية العادي مكتوبة. آمل أن أكون قادرا على توفير هذا للمختبرين الذين يمكنهم كتابة تأكيد بسيط في اللغة الإنجليزية العادية!

يقوم تلقائيا بإنشاء كوتس للتأكيدات الجديدة أيضا، لذلك يمكن للمختبرين كتابة الاختبارات، وتمريرها إلى المطورين إذا كانوا بحاجة إلى رمز جديد.

لقد وجدت الخيار الأكثر معقولة هو أن يكون لديك ما يكفي من المواصفات بحيث يمكن لأشخاص ضمان الجودة أن يقوموا بتشغيل الاختبار، ومعرفة أساسا ما يريدون اختبارهم في كل شاشة "أو على كل مكون، وكعب الروتين. يجب تسمية الكعبات بحيث تكون وصفية للغاية فيما يتعلق بما يجري فيها. هذا يقدم أيضا وسيلة لإدارة المتطلبات الوظيفية. في الواقع، فإن القيام بمتطلبات هذه الأزياء سهلة بشكل خاص، وتساعد الأشخاص غير التقنيين على العمل حقا من خلال المياه الموحلة من تلقاء نفسها.

يمكن ملأت بذرة عبر مزيج من الأشخاص ضمناء من QA / Dev. يتيح لك ذلك تدريب الأشخاص الرائعين عن كيفية كتابة الاختبارات الخاصة بكيفية كتابة الاختبارات، وعادة ما يزداد الأمر كما يفعلون أمنهم الوظيفي.

أعتقد أنه يعتمد في الغالب على مستوى مهارة فريق الاختبار الخاص بك، والأدوات المتاحة، وثقافة الفريق فيما يتعلق بكيفية تتفاعل المطورين والاختبار مع بعضهم البعض. وضعي الحالي هو أن لدينا فريق اختبار تقني نسبيا. من المتوقع أن تتمتع جميع المختبرين بمهارات تنمية. في حالتنا، يكتب المختبرون أتمتة واجهة المستخدم. إذا لم يكن لدى فريق الاختبار الخاص بك هذه المهارات لن يتم إعدادها للنجاح. في هذه الحالة، قد يكون من الأفضل للمطورين لكتابة أتمتة UI.

عوامل أخرى تنظر في:

ما هي مهام الاختبار الأخرى الموجودة على لوحة الاختبار؟ من هم عملائك وما هي توقعاتهم المتعلقة بالجودة؟ ما هو مستوى مهارة فريق التطوير وما هو رغبته في اتخاذ عمل اختبار التشغيل الأتمتة؟

رن

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top