نصائح وأفضل الممارسات لاختبار تكامل Salesforce

تكامل المبيعات

سيساعدك اختبار Salesforce على التحقق من صحة ملف تكامل Salesforce والوظائف مع تطبيقات المؤسسة الأخرى. يغطي الاختبار الجيد جميع وحدات Salesforce من الحسابات إلى العملاء المتوقعين ، ومن الفرص إلى التقارير ، ومن الحملات إلى جهات الاتصال. كما هو الحال مع جميع الاختبارات ، هناك طريقة جيدة (فعالة وفعالة) لإجراء اختبار Salesforce وطريقة سيئة. إذن ، ما هو اختبار Salesforce للممارسات الجيدة؟

  • استخدم أدوات الاختبار الصحيحة - يحدث اختبار Salesforce في المتصفح أو في بيئة قائمة على الكسوف. يحتوي كل من أحدث المتصفحات و eclipse على أدوات تصحيح أخطاء رائعة ويمكنك دمجها مع فئات الاختبار للحصول على نتائج مفيدة للغاية. ومع ذلك ، إذا كنت بحاجة إلى المزيد ، فيجب استخدام Apex Interactive Debugger (أو ببساطة Apex) بواسطة Force.com. لاحظ أنه يمكنك أيضًا استخدام Salesforce Lightning Inspector ، وهو امتداد كروم ، لاختبار Salesforce Lightning على وجه التحديد. أبيكس هو Force.com منصة لغة برمجة مملوكة لمنصة تحمل أوجه تشابه كبيرة مع Java. إنها لغة موجهة للكائنات ، وغير حساسة لحالة الأحرف ، وتكتب بقوة على لغة البرمجة التي تتبع الأقواس المتعرجة وبناء الجملة النقطية. يمكنك استخدام Apex لتنفيذ وظائف مبرمجة أثناء معظم عمليات Force.com ، بما في ذلك الروابط والأزرار المخصصة والتحديثات والحذف ومعالجات أحداث الإدراج من خلال وحدات التحكم أو الجدولة المخصصة لصفحة Visualforce.
  • استخدام اصطلاحات التسمية الصحيحة - من المهم جدًا تسمية طرق الاختبار بشكل صحيح قبل البدء في كتابة الاختبارات. يجب أن يتكون اسم طريقة الاختبار من ثلاثة أجزاء. هذه هي nameOfMethod (اسم الطريقة الفردية التي تختبرها مثل insert / update / delete / undelete عند اختبار المشغل ، معلومات حول TestPath التي تتسم بالمرونة مثل جهة الاتصال الفارغة إذا كنت تختبر أن جهة الاتصال فارغة ، وصالحة عند الاختبار مسار إيجابي / سلبي.
  • ضمان تغطية 100٪ - على الرغم من أن التوجيه القياسي لـ Salesforce هو أن اختبار الوحدة يجب أن يكون له تغطية 75٪ من الكود الخاص بك (باستثناء فئات الاختبار ، والمكالمات إلى System.debug وطرق الاختبار) ولن تتمكن من نشر كود Apex أو حزمة تطبيقات AppExchange ، يجب عليك لاحظ أن هذا مجرد معيار وأن هدفك يجب أن يكون تغطية بنسبة 100٪. اختبر جميع الحالات الإيجابية / السلبية والبيانات الموجودة وغير الموجودة. نصائح مهمة أخرى عندما يتعلق الأمر بتغطية الكود هي:
    • يجب إجراء اختبارات لتحديث أرقام تغطية الكود نظرًا لأن هذه الأرقام لا يتم تحديثها عند تحديث رمز Apex حتى يتم إعادة تشغيل الاختبارات.
    • إذا كان هناك تحديث في المؤسسة منذ آخر تشغيل اختباري ، فهناك خطر من أن تكون أرقام تغطية الكود غير صحيحة. أعد إجراء الاختبارات للحصول على التقدير الصحيح.
    • لا تشمل نسبة تغطية الكود تغطية الكود من اختبارات الحزم المُدارة ، مع الاستثناء الوحيد عندما تتسبب هذه الاختبارات في إطلاق المشغلات.
    • تعتمد التغطية على العدد الإجمالي لأسطر الكود. إذا قمت بإضافة أو حذف سطور من التعليمات البرمجية ، فسوف تؤثر على النسبة المئوية.
  • حالات الاختبار في الفئات وأجهزة التحكم - في تطوير Salesforce ، يقوم معظم المطورين بإنشاء فئات منفصلة وملفات تحكم لكل وظيفة. يتم ذلك لجعل الترميز أكثر تنظيماً وأسهل وقابلية لإعادة الاستخدام وقابلية للنقل. ومع ذلك ، يجب أن تلاحظ أنه على الرغم من أن هذا أسهل ، إلا أنه ليس أكثر كفاءة. ستحقق قابلية النقل إذا كان كود الاختبار موجودًا في الفئة الأصلية ورمز وحدة التحكم نفسه نظرًا لأنك لن تفوتك أي فئة اختبار عند الانتقال من وضع الحماية إلى الإنتاج.
  • استخدم System.assert () - في أبيكس ، System.assert() يستخدم للتحقق من الشروط. هذه وظيفة مهمة لأنها تتيح لك تحديد ما إذا تم تنفيذ وظيفة معينة بواسطة الطريقة كما هو متوقع. يجب عليك استخدام System.assertEquals () و System.assertNotEquals () بين الوظائف الهامة ليس فقط يساعدك على تحديد ما إذا كان قد تم تنفيذ الكود كما ينبغي ، ولكن أيضًا لضمان عدم كتابة أي بيانات بشكل خاطئ إذا حدث خطأ في الكود.
  • اختبار شامل - يجب أن يشمل الاختبار كل شيء. يجب عليك إجراء اختبار وظيفي واختبار تحميل واختبار أمان واختبار نشر.
  • اختبارات الوحدة - يجب أن يكون لديك اختبارات وحدة للتحقق من أن السجلات الفردية تنتج النتيجة الصحيحة والمتوقعة. أثناء استخدام اختبار عملاق يغطي الكود بالكامل قد يبدو فكرة جيدة ، لاحظ أن النتائج المتولدة سيكون تصحيحها أصعب وسيصعب فهم الفشل. يجب أن يغطي اختبار الوحدة مجموعة فرعية صغيرة من الوظيفة التي يتم اختبارها.
  • حالات اختبار مجمعة - يمكن تضمين رمز اختبار جيد (المشغل ، الاستثناء ، أو الفئة) لما يصل إلى عدة مئات من السجلات (200 لـ Apex). يجب الاستفادة من هذا والاختبار ليس فقط السجلات الفردية ، ولكن أيضًا الحالات المجمعة.
  • الاختبارات الإيجابية - اختبار للتأكد من حدوث السلوك المتوقع من خلال كل التقليب المتوقع. يجب أن يتحقق الاختبار من أن المستخدم قد ملأ النموذج بشكل صحيح وأنه / أنها لم تتجاوز الحدود.
  • الاختبارات السلبية - اختبر الحالات السلبية لضمان إنتاج رسائل الخطأ بشكل صحيح. أمثلة على مثل هذه الحالات السلبية هي عدم القدرة على تحديد مبالغ سلبية وعدم القدرة على إضافة تواريخ مستقبلية. الاختبارات السلبية مهمة لأن المعالجة الصحيحة عندما تسير الأمور جنوبًا يمكن أن تحدث فرقًا كبيرًا.
  • الاختبار الآلي - تقليديا ، كان اختبار Salesforce يدويًا. يجب أن تفكر في الاختبار الآلي لأن هذا يوفر المزيد من المزايا. وتشمل هذه:
    • يجعلك الاختبار اليدوي عرضة للأخطاء لأن الاختبار يتم بواسطة البشر وليس الروبوتات. تتفوق الروبوتات في الأنشطة المتكررة بينما يرتكب البشر أخطاء بسبب الملل وانخفاض التركيز والاتساق والميل إلى قطع الزوايا.
    • الاختبار اليدوي متكرر وصيغة ومرهق. من الأفضل لفريق الاختبار القيام بعمل أكثر استكشافية.
  • تنفيذ كل فرع Code Logic - عند استخدام المنطق الشرطي (عندما تقوم بتضمين العوامل الثلاثية) ، يجب تنفيذ كل فرع من منطق الكود.
  • استخدام مدخلات غير صالحة وصالحة لاستدعاء الأساليب - يجب إجراء استدعاءات الأساليب باستخدام مدخلات غير صالحة وصالحة.
  • اختبارات كاملة - تأكد من أن الاختبارات قد اكتملت بنجاح - لا ينبغي أن تخضع لأي استثناءات ما لم تكن الأخطاء متوقعة. تعامل مع جميع الاستثناءات التي تم اكتشافها - اصطيادها ليس جيدًا بما يكفي.
  • استخدام ترتيب حسب الكلمات الرئيسية - للتأكد من إرجاع سجلاتك بالترتيب الذي تتوقعه ، استخدم الكلمات الأساسية ORDER BY.
  • لا تفترض أن معرفات السجلات مرتبة بشكل تسلسلي - تجنب الخطأ الشائع بافتراض أن معرّفات السجل مرتبة بترتيب تسلسلي. المعرفات ليست بترتيب تصاعدي ، إلا إذا قمت بإدراج سجلات متعددة بنفس الطلب.
  • Call Test.startTest () و Test.stopTest () - عند إجراء اختبار وحدة Apex ، ستحصل على أكثر من 75٪ تغطية رمز إلزامية في Salesforce. يجب عليك استدعاء stopTest قبل التأكيدات لفرض الرموز غير المتزامنة التي قد لا تزال قيد التشغيل حتى النهاية. قم بتشغيل استعلامات جديدة للنتائج النهائية لأن التعليمات البرمجية الأخرى قد تغير البيانات. يضمن لك استخدام Test.startTest () و Test.stopTest () وضع الحماية للاختبار داخل حدود الحاكم. بهذه الطريقة ، لن يتدخل كود الإعداد الذي تستخدمه ويعطيك سلبيات أو إيجابيات خاطئة تحيط بحدود الحاكم. يضمن Test.stopTest () أيضًا اكتمال استدعاءاتfuture للاختبار.
  • مقروئية - تعد سهولة القراءة مهمة جدًا في اختبارات الوحدة. يجب أن تتضمن أسماء الاختبار الإجراء المحدد الذي يجب اتخاذه والنتيجة المتوقعة. يجب أن تكون الطريقة وصفية وقصيرة. يجب أن تكون الطريقة قابلة لإعادة الاستخدام عبر الاختبارات المختلفة.
  • إنشاء مجموعات بيانات اختبار كبيرة قبل بدء الاختبار - نظرًا لأن اختباراتك سيتم تشغيلها في بيئات رمل وبيئات إنتاج مختلفة ، فقم ببناء مجموعات بيانات اختبار كبيرة قبل استدعاء startTest للتأكد من أن الاختبار له حدود تنفيذ كاملة. بشكل افتراضي، Salesforce جيثب يدير اختبارات معزولة عن بيانات الإنتاج. عندما تحتاج إلى بيانات نظام مثل ملف تعريف ، استعلام للحصول على الشيء الصحيح لتلك البيئة المحددة.
  • إنشاء بيانات الاختبار الخاصة بك - يجب إنشاء بيانات الاختبار التي تستخدمها في الاختبار. يمكنك إنشاء هذه البيانات باستخدام التعليق التوضيحيtestSetup وفئة TestUtils ليس فقط لضمان حصولك على البيانات الصحيحة ، ولكن أيضًا لضمان تشغيل جميع الاختبارات على وضع الحماية للمطور دون الحاجة إلى البيانات.
  • تجنب عمليات AKA الخالية من العمليات - يستخدم العديد من المختبرين عمليات خالية من AKA بدون عملية. هذه رموز عديمة الفائدة ولا تفعل شيئًا. نظرًا لأنها موجودة بالفعل في قاعدة الشفرة الخاصة بك ، فإنها ستضيف إلى نسبة التغطية الخاصة بك.
  • تنفيذ الاختبار الموازي - عند بدء الاختبارات من واجهة مستخدم Salesforce أو Developer Console ، سيتم تشغيل الاختبارات بالتوازي. هذه ميزة مهمة لأنها تسرع وقت التشغيل التجريبي. ومع ذلك ، يجب أن تلاحظ أن هذا قد يؤدي إلى مشكلات تنازع البيانات وإذا كنت تشك في حدوث ذلك ، فقم بإيقاف تشغيل التنفيذ الموازي. الأسباب الأكثر شيوعًا لمشكلات التنازع على البيانات التي تؤدي غالبًا إلى أخطاء UNABLE_TO_LOCK_ROW هي:
    • عندما تهدف الاختبارات إلى تحديث نفس السجلات في نفس الوقت. يحدث تحديث نفس السجلات عادةً عندما لا تُنشئ الاختبارات بياناتها الخاصة.
    • عندما يكون هناك طريق مسدود في الاختبارات التي يتم إجراؤها بالتوازي وتحاول إنشاء سجلات لها قيم حقل فهرس متطابقة. سيحدث طريق مسدود عندما يكون هناك اختباران قيد الانتظار في قائمة الانتظار لاستعادة البيانات (يحدث هذا عند اختبارين لسجلات الإدخال التي لها نفس قيم حقل الفهرس الفريدة في أوامر مختلفة).
    • لإيقاف تشغيل تنفيذ الاختبار المتوازي ، انتقل إلى الإعداد ، وأدخل اختبار Apex ، وانتقل إلى مربع حوار خيارات تنفيذ اختبار Apex ، وحدد تعطيل اختبار Apex الموازي ، وانقر فوق موافق.

تعطيل اختبار Apex المتوازي

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

ما رأيك؟

يستخدم هذا الموقع نظام Akismet لتقليل الرسائل الضارة. تعرف كيف تتم معالجة بيانات تعليقك.