غالبًا ما يكون الاختبار في الشركات الكبيرة ، في المؤسسات ، مهمة معقدة وشكرًا. الفجوة بين أقسام الأعمال وتكنولوجيا المعلومات ضخمة: عندما يكون لدى المطور رؤية على مستوى الشفرة ، والتحقق على مستوى اختبارات الوحدة ، ويعتقد العميل أنه يعمل أو لا يعمل حتى مع الخدمات ، ولكن مع العمليات الكاملة التي تتجاوز فريق تطوير واحد ، أو حتى كله التقسيمات \ الشركات. ويطلب تنظيم اختبار الأعمال ، أو الاختبار الشامل ، أو الاختبار بناءً على السيناريوهات من البداية إلى النهاية (نهاية 2 نهاية).
لنبدأ من البداية - من الركيزتين اللتين أتى بهما "اختبار الأعمال الشامل" سيئ السمعة ، وهما من هرم الاختبار ومعيار ISO9000.
هرم الاختبار
ربما يكون هرم الاختبار مألوفًا لأي مُختبِر أصبح بارعًا في مهنته وتراكمت نتوءات عند التواصل مع الوحدات ذات الصلة. غالبًا ما يكون من الضروري مناشدة ذلك عند إثبات أتمتة الاختبار. ما هي الاختبارات الأرخص والأكثر أهمية للتطوير؟ وتهرب؟

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

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

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

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

السؤال الوحيد هو كيف نفعل ذلك؟ من يجب أن يفعل ذلك؟ كيف نضع معا؟
ISO9000

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

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

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

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

الخيار الأسهل هو تطوير اختبارات مبدئيًا استنادًا إلى نماذج الأعمال ، وتقسيم الفرق إلى مشاريع تنفذ عملية عمل معينة. لهذا ، في بعض أدوات إدارة الاختبار ، من الممكن بالفعل تحميل مخططات BPMN (على سبيل المثال ، لـ HPE ALM - يتم دعم التحميل بتنسيق XPDL). سيقوم HP ALM نفسه بتقسيم النظام إلى مجموعة من المتطلبات (الإجراءات) ، وإذا لزم الأمر ، قم بإنشاء تسلسل هرمي للمتطلبات (متطلبات الوحدة -> نماذج الأعمال). بعد ذلك ، يتمثل عملنا في تغطية المتطلبات بالاختبارات ، ثم إنشاء المتطلبات ، وبالتالي الاختبارات في سلاسل تغطي عملية أعمالنا. تسمى هذه السلاسل في HPE ALM "المسارات" ، وتسمح لك بمشاهدة جميع مجموعات التتابعات. إذا رغبت في ذلك ، يمكن تحويل السلاسل على الفور إلى اختبارات.


ولكن حتى إذا كنت لا تستخدم أدوات الاختبار ، فلا يزال يتعين عليك إنشاء سلاسل من عملية الأعمال. خاصة بالنظر إلى النقص في الأدوات (ليس كل شيء وردي للغاية) ، بالإضافة إلى حقيقة أنه ، على الأرجح ، سيحتاج نموذج الاختبار إلى تجميعه بعد حدوثه ، ويتم تنفيذه في شكل تراجع من قبل "فريق مشترك" غير مرتبط بمشاريع جديدة.
كم عدد الطرق التي يمكن أن يصل بها السنجاب إلى نتوء؟في هذه الحالة ، سنحتاج إلى فتح اختبارات كل فريق ، والعثور على الاختبارات المرتبطة بالمتطلبات التي تظهر في نموذج الأعمال ، وبناء سلاسل منها ، وحفظها في "مساحة مشتركة". يعد إنشاء مساحة مشتركة نوعًا من البدائل ، ولكن على أي حال يجب أن يكون ، حتى في شكل كتاب الحظيرة ، أو التفوق ، أو منطقة مشروع في أداة إدارة الاختبار. إذا تحدثنا عن HPE ALM مرة أخرى ، فإن وحدة BPT (اختبار عملية الأعمال) مسؤولة عن هذه الوظيفة ، والتي تسمح لك في نفس الوقت بنقل نتائج اختبار إلى معلمات اختبار آخر. ومع ذلك ، إذا كنت ترغب وتعمل بجد على HPE ALM ، فمن الممكن تنفيذ ذلك عن طريق إعادة بناء مجموعات الاختبار (مجموعة الاختبار) في تدفق التنفيذ (تدفق التنفيذ). بعد ذلك ، عند بدء المجموعة الكاملة ، سيتم استدعاء المختبرين المسؤولين عن تمرير كل مكون من مكونات البرنامج النصي من طرف إلى طرف بدوره.

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

ونتيجة لذلك ، يمكن التوصل إلى استنتاجين:
1) بالنسبة للسيناريوهات من طرف إلى طرف ، من المحتمل جدًا أن يتم استخدام الاختبارات التي تم تطويرها مسبقًا لكل نظام من الأنظمة المضمنة في سلسلة عمليات الأعمال (السيناريو)

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

وإذا كانت أدوات الاختبار تتكيف بشكل أو بآخر مع إنشاء نموذج اختبار ، فإن كل شيء سيء حقًا مع التحديث ، فمن الأسهل غالبًا إعادة إنشاء النموذج مرة أخرى بدلاً من محاولة رؤية التغييرات في العملية ونموذج الاختبار. وتقترح تجربة الفرق الحقيقية أنه من الأفضل إنشاء تصور حي للهندسة المعمارية. أسهل طريقة للقيام بذلك هي في المنطقة المشتركة ، باستخدام لوحة علامات بسيطة وملصقات. بعد ذلك ، يمكن للفرق التي تشارك في عملية الأعمال أن ترى بوضوح كيف يتم تعديل العملية (تتم إزالة الاتصالات وإضافتها ، وإزالة الإجراءات وإضافتها). الشيء الرئيسي هو أن كل شخص لديه حق الوصول إلى المجلس. بالإضافة إلى ذلك ، لاحظ أنه إذا كانت العملية تتضمن رسائل بين أنظمة ، فعندئذ كقاعدة ، يجب أن يكون هناك على الأقل اختبارين من كل نظام - لإرسال البيانات واستلامها. ومع ذلك ، بدلاً من الملصقات ، يمكنك استخدام مدينة Lego كاملة (من كتل كبيرة) ، أو شيء أكثر إبداعًا. الشيء الرئيسي هنا هو لغة واحدة ومساحة معلومات واحدة ، والتي تفتقر إلى المؤسسة.
في الختام
إن تنظيم الاختبارات المرئية والصحيحة للعمليات التجارية أمر معقد ومكلف للغاية. يرجى ملاحظة أن اختبار E2E ليس مجرد قبول ، اختبار المستخدم الذي سيقوم به العميل ، إنه يقوم ببناء جسر ، مع مراعاة جميع المواقف المحتملة التي سيتبعها العميل ويقود المستخدمين في القدم.

مرة أخرى - E2E - هذه ليست نزهة على Lada Kalina عبر الجسر ، ولا حتى ممر كاماز. هذا عمل هندسي معقد ، يزن الجسور بأجهزة الاستشعار وينفذ جميع الفحوصات والمواقف الممكنة - على الأقل وصف لهذه السيناريوهات.
سواء كانت شركتك بحاجة إلى مثل هذا الجري النهائي المثالي أم لا ، فهذا أمر يخص أهدافك واحتياجاتك. دائمًا ، كما هو الحال مع أي اختبار ، يجب عليك تقييم المخاطر المحتملة من العيوب المفقودة في هذه المرحلة ، بالإضافة إلى تكلفة إعداد وإجراء الاختبار الشامل. لتقييم ما سيكلفك أكثر من هذا ثم التصرف فقط. ولكن في حالة الاختبار الشامل على العمليات التجارية ، يجب أن نتذكر أنه لا معنى له بدون أساس متين على شكل اختبارات وحدة معدل 100٪ (تغطية 90-100٪ تقريبًا) ، بدون اختبارات التكامل (~ 60-80٪ تغطية ، 90- 100٪ معدل النجاح) ، بدون اختبارات النظام (تغطية 20-40٪ ، معدل النجاح 80-100٪). إن وضع معايير للنجاح (بوابات الجودة) هو أكثر من مجرد شرط لجودة المنتج ، الشيء الرئيسي الذي يجب تذكره هنا هو أن حجم اختبارات E2E هو فقط أعلى الهرم (تغطية 1-2 ٪ ، ~ 99 ٪ معدل النجاح) ، والتي يجب ألا تكون أكبر من قاعدتها ، وليس في نفس الوقت تكون سدادة ثقوب من الخطوات السابقة. هذا هو ملحق يعتبر بداهة مغلقة في المراحل السابقة.
تنظيم مثل هذا الاختبار هو في الأساس عمل إعداد ومزامنة حالات الاختبار والبيانات (تحليلات الاختبار) ، بالإضافة إلى مجموعة من الإجراءات التنظيمية ، ومزامنة الفرق في مكان واحد في نفس الوقت على موقع اختبار عملي. مع أخذ ذلك في الاعتبار ، لا ينبغي للمرء أن يحاول إظهار "اختبار شامل" للعميل قبل الموعد المحدد حتى لا تضيع الوقت في وقت واحد عدد كبير من الأشخاص دون تجميع جميع مكونات العمل معًا.
وصف
PS الأدوات ، وكذلك الممارسات - على سبيل المثال ، لم يحدد المؤلف نفسه هدف الإعلان عن المنتجات وأعلن هذا النهج للاختبار الشامل بالطريقة الحقيقية الوحيدة.