العودة إلى المدرسة: كيفية تدريب الفاحصين اليدويين للتعامل مع الاختبارات الآلية

يريد أربعة من كل خمسة من الباحثين عن عمل في QA تعلم كيفية العمل مع autotests. لا يمكن لجميع الشركات تلبية هذه الرغبات من اختبار اليدوي خلال ساعات العمل. أجرى Wrike مدرسة الأتمتة للموظفين وأدركت هذه الرغبة للكثيرين. شاركت في هذه المدرسة على وجه التحديد كطالب ضمان الجودة.

لقد تعلمت كيفية العمل مع السيلينيوم وأنا الآن أؤيد بشكل مستقل عددًا من الاختبارات الذاتية دون مساعدة خارجية تقريبًا. استنادًا إلى نتائج تجربتنا المشتركة واستنتاجاتي الشخصية ، سأحاول استخلاص الصيغة الأكثر مثالية للمدرسة الأتمتة قدر الإمكان.

تجربة تنظيم مدرسة Wrike


عندما أصبحت الحاجة إلى مدرسة الأتمتة واضحة ، سقط تنظيمها على Stas Davydov ، القيادة الفنية للأتمتة. من غيره ، لكنه يستطيع أن يشرح لماذا توصلوا إلى هذه المبادرة ، وهل حققوا نتائج ولم يندموا على الوقت الذي يقضونه؟ نعطيه الكلمة:

- في عام 2016 ، كتبنا إطارًا جديدًا للاختبارات التلقائية وجعلناها سهلة في الكتابة: ظهرت الخطوات العادية وأصبح الهيكل أكثر قابلية للفهم. كانت لدينا فكرة: لقد احتجنا إلى جذب كل من أراد كتابة اختبارات جديدة ، ولكن لتسهيل الفهم ، أنشأنا سلسلة من المحاضرات. توصلنا بشكل جماعي إلى خطة لكل من المحاضرين المستقبليين أخذوا واحدة وأعدوا تقريرًا عنها.

- ما هي صعوبات الطلاب؟

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

- هل المدرسة تؤتي ثمارها؟

- نعم بالتأكيد. بفضلها ، شارك الكثير من الناس في اختبارات الكتابة ، وفي المتوسط ​​، في المستشفى ، بدأ الجميع يفهمون بشكل أفضل ماهية الاختبارات الذاتية ، وكيف تتم كتابتها وكيف يتم تشغيلها. انخفض العبء على الأتمتة أيضًا: نتلقى الآن طلبات أقل عدة مرات للمساعدة في تحليل الاختبارات ، حيث بدأ المختبرون والمطورون في التعامل مع هذا بأنفسهم في جميع المواقف تقريبًا. حسنًا ، هناك بعض المزايا الداخلية للقسم: لقد اكتسبوا خبرة في العروض التقديمية والمحاضرات ، والتي بفضلها تمكنت بعض شركات التشغيل من تقديم عروض تقديمية في المؤتمرات ، كما تلقت مجموعة قوية من مقاطع الفيديو والعروض التقديمية للوافدين الجدد على متنها.

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

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

نصائح المنظمة


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

الخطوة 0. إنشاء قاموس


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



في ما يلي لقطة شاشة لمهمة المهام مع أسماء العناصر. تخيل أنك تقوم بمهمة مشاهدة كصندوق أسود ولم تر السيلينيوم في حياتك. ماذا يفعل هذا الرمز؟



(المفسد - من خلال الراحة ، يتم حذف المهمة نيابة عن المسؤول ، ومن ثم نرى أن هناك سجلاً حول هذا في الدفق.)

هذه الخطوة وحدها تسمح لك بتقريب لغات QAA و QA. من الأسهل على الأتمتة شرح نتائج التشغيل ؛ حيث يتعين على المختبرين اليدويين إنفاق مبالغ أقل على تجميع الحالات: يمكن جعلها أقل تفصيلاً. ومع ذلك فهم يفهمون بعضهم البعض. لقد حققنا الفوز حتى قبل بدء التدريب نفسه.

الخطوة 1. كرر العبارات


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

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

وفقًا للنتائج ، فإن الشخص الذي استمع وفعل كل شيء سيكون قادرًا على:

  1. تعلم كيفية العمل مع واجهة بيئة التطوير: إنشاء فروع ، مفاتيح الاختصار ، ارتكاب ودفع.
  2. لتعلم أساسيات بنية اللغة والفصول الدراسية: أين تُدرج الحقن ، وأين تستورد ، لماذا هناك حاجة إلى التعليقات التوضيحية ، وما هو عام للرموز ، باستثناء الخطوات ؛
  3. فهم الفرق بين العمل والتوقع والتحقق ، أين يجب استخدام ما ؛
  4. لاحظ الفرق بين الاختبارات التلقائية والشيكات اليدوية: في الاختبارات التلقائية ، يمكنك سحب معالج أو آخر بدلاً من تنفيذ الإجراءات من خلال الواجهة. على سبيل المثال ، أرسل تعليقًا مباشرًا إلى الواجهة الخلفية بدلاً من فتح طريقة عرض المهام ، مع إبراز المدخلات والكتابة والضغط على زر إرسال ؛
  5. صياغة الأسئلة التي سيتم الرد عليها في الخطوة التالية.

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

سيكون من المثالي أن يقوم أوتوماتيكي فريق QA في ذلك الوقت بتعليق مهمة عليه بكتابة بضعة اختبارات في معركة ويسمح له بالالتزام بخيطه.

ما يجب أن لا تعطي:

  1. معرفة أكثر عمقًا بوظائف بيئة التطوير ولغة البرمجة نفسها ، والتي لن تكون مطلوبة إلا عند العمل بشكل مستقل مع الفروع. لا أتذكر ، يجب أن أشرح ذلك مرتين أو ثلاث مرات ، ونحن نقدر وقت الأتمتة ، أليس كذلك؟ أمثلة: حل النزاعات ، إضافة الملفات إلى بوابة ، إنشاء فئات من البداية ، العمل مع التبعيات ؛
  2. كل ما يتعلق xpath. على محمل الجد. تحتاج إلى التحدث عنه بشكل منفصل ، مرة واحدة وبشكل شديد التركيز.

الخطوة 2. ننظر إلى القواعد


دعنا نتذكر لقطة الشاشة مع taskview من الخطوة رقم 0. لدينا خطوة تسمى checkCommentWithTextExists. يفهم المختبر لدينا بالفعل ما تفعله هذه الخطوة ويمكنك أن تبحث داخل الخطوة وتتحلل قليلاً.

وفي الداخل لدينا ما يلي:

onCommentBlock(userName).comment(expectedText).should(displayed()); 

حيث onCommentBlock هو

 onCommonStreamPanel().commentBlock(userName); 

الآن نتعلم أن نقول لا "شراء لعبة" ، ولكن "شراء لعبة من متجر Detsky Mir ، الذي يقف في خزانة زرقاء على الرف الثالث من الأعلى". من الضروري توضيح أننا نشير إلى العنصر بالتتابع من العناصر الأكبر (الدفق -> الحظر مع تعليقات من شخص معين -> هذا الجزء من هذه الكتلة حيث يوجد النص المحدد).

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

الواجبات المنزلية واضحة: الفرع الذي يتم فيه حذف محتويات عدة خطوات ، وهي ضرورية لعدد معين من الاختبارات. اسمح للمختبرين باستعادتها وجعل المدى أخضرًا مرة أخرى.

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

الخطوة 3. الانغماس الكامل


كاملة قدر الإمكان لاختبار الذي سيستمر في الوفاء بمسؤولياته المباشرة. أخيرًا ، تحتاج إلى التحدث عن xpath.

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



المجموع:

 "//div[contains(@class, 'stream-panel')]//a[contains(@class,'author') and text()='{{ userName }}']//div[contains(@class,'change-wrapper') and contains(.,'{{ text }}')]" 

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

من الضروري أن نقول بشكل صريح أن عنصرًا واحدًا هو كل المهام ، وأنه يحتوي على عنصر فرعي - كامل الجدول الذي يحتوي على العنصر الفرعي - تعليق منفصل ، إلخ العناصر الفرعية - داخل الأصل على الصفحة وفي هيكل إطار الاختبار التلقائي.

في هذه المرحلة ، يجب أن يكون لدى الجمهور بالفعل فهم قوي لكيفية توارثهم وما الذي يمكن إدخاله بعد هذه النقطة في onCommentBlock. في هذه المرحلة ، نوضح جميع العوامل: / ، // ،. ، [] وهلم جرا. في الحمل ، نثبت معرفتك باستخدام @class والأشياء الضرورية الأخرى.



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

لماذا بالضبط بهذه الطريقة؟


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

ومع ذلك ، من المحتمل أن يكون أحدكم قادرًا على تبادل الخبرات حول كيفية تحسين العملية أكثر. يسعدني قراءة هذه الاقتراحات في التعليقات!

Source: https://habr.com/ru/post/ar471154/


All Articles