نکات و بهترین روش ها برای تست ادغام Salesforce

ادغام نیروی فروش

تست Salesforce به شما کمک می کند تا سفارشی خود را تأیید کنید ادغام Salesforce و ویژگی های دیگر برنامه های سازمانی. یک تست خوب همه ماژول های Salesforce را از حساب ها به Lead ، از فرصت ها به گزارش ها و از مبارزات انتخاباتی تا مخاطبین پوشش می دهد. همانطور که در تمام آزمون ها وجود دارد ، یک روش خوب (موثر و کارآمد) برای انجام آزمون Salesforce و یک روش بد وجود دارد. بنابراین ، آزمایش خوب Salesforce چیست؟

  • از ابزارهای تست درست استفاده کنید - آزمایش Salesforce در مرورگر یا در یک محیط مبتنی بر گرفتگی اتفاق می افتد. جدیدترین مرورگرها و Eclipse از ابزار اشکال زدایی بسیار خوبی برخوردار هستند و می توانید این موارد را با کلاس های آزمون ترکیب کنید تا نتایج بسیار مفیدی داشته باشید. با این حال ، اگر به موارد بیشتری نیاز دارید ، باید از Apex Interactive Debugger (یا به سادگی Apex) توسط Force.com استفاده شود. توجه داشته باشید که برای آزمایش خاص Salesforce Lightning همچنین می توانید از Salesforce Lightning Inspector ، یک توسعه دهنده کروم استفاده کنید. اوج یک است Force.com زبان برنامه نویسی اختصاصی پلت فرم که شباهت های زیادی با جاوا دارد. این یک زبان برنامه نویسی شی گرا ، حساس به حروف بزرگ ، به شدت متنوع است که از براکت های مجعد و نحو نقطه گذاری پیروی می کند. برای اجرای توابع برنامه ریزی شده در اکثر فرآیندهای Force.com ، از جمله پیوندها و دکمه های سفارشی ، به روزرسانی ها ، حذف ها و کنترل کننده های رویداد درج ضبط از طریق کنترل کننده های سفارشی صفحه Visualforce یا برنامه ریزی ، می توانید از Apex استفاده کنید.
  • از کنوانسیون نامگذاری مناسب استفاده کنید - قبل از شروع به نوشتن آزمون ، نام بردن صحیح از روش های آزمون بسیار مهم است. نام روش آزمون باید دارای سه قسمت باشد. اینها nameOfMethod هستند (نام روش جداگانه ای که هنگام آزمایش ماشه ، درج / به روزرسانی / حذف / لغو آزمایش را آزمایش می کنید ، اطلاعاتی در مورد TestPath که در صورت آزمایش پوچ بودن مخاطب ، از جمله تماس خالی انعطاف پذیر است) و معتبر هنگام آزمایش یک مسیر مثبت / منفی.
  • اطمینان از 100٪ پوشش - اگرچه دستورالعمل استاندارد Salesforce این است که آزمون واحد باید 75٪ از کد شما را پوشش دهد (منهای کلاسهای آزمون ، تماس با System.debug و روشهای آزمون) و شما قادر به استقرار کد Apex یا بسته برنامه های AppExchange نخواهید بود ، شما باید توجه داشته باشید که این فقط یک استاندارد است و هدف شما باید 100٪ پوشش باشد. تمام موارد مثبت / منفی و داده هایی را که وجود دارند و نیستند ، آزمایش کنید. نکات مهم دیگر در مورد پوشش کد عبارتند از:
    • برای تازه کردن اعداد پوشش کد باید آزمایشات را انجام دهید ، زیرا با به روزرسانی کد Apex تا زمان اجرای مجدد آزمایش ، این شماره ها تازه نمی شوند.
    • اگر از آخرین آزمون آزمایشی در سازمان به روز شده باشد ، خطر نادرست بودن شماره پوشش کد وجود دارد. آزمون ها را برای برآورد درست تکرار کنید.
    • درصد پوشش کد شامل کد کد از آزمونهای بسته های مدیریت شده نمی باشد ، به این دلیل که فقط این موارد در مواردی که باعث آتش سوزی محرک ها می شود ، استثنا دارد.
    • پوشش به تعداد کل خطوط کد بستگی دارد. اگر خطوط کد را اضافه یا حذف کنید ، روی درصد تأثیر می گذارد.
  • موارد آزمون در کلاسها و کنترلرها - در توسعه Salesforce ، بیشتر توسعه دهندگان برای هر عملکرد کلاسها و پرونده های کنترل کننده جداگانه ایجاد می کنند. این کار برای سازماندهی ، آسان تر ، قابل استفاده مجدد و قابل حمل برنامه نویسی انجام می شود. با این حال ، باید توجه داشته باشید که گرچه این کار آسان تر است ، اما کارآمدتر نیست. اگر کد آزمون در کلاس اصلی و کد کنترل کننده باشد ، به قابلیت حمل و نقل خواهید رسید زیرا در هنگام مهاجرت از جعبه ماسه به تولید ، هیچ کلاس آزمایشی را از دست نخواهید داد.
  • از System.assert () استفاده کنید - در اوج ، سیستم() برای بررسی شرایط استفاده می شود. این یک قابلیت مهم است زیرا به شما اجازه می دهد تعیین کنید که آیا عملکرد خاصی طبق روش مطابق انتظار انجام شده است یا خیر. شما باید از System.assertEquals () و System.assertNotEquals () بین ویژگیهای مهم استفاده کنید نه تنها به شما کمک می کند تا تعیین کنید که کد آنطور که باید اجرا شده است یا خیر ، بلکه همچنین اطمینان حاصل کنید که در صورت اشتباه بودن کد هیچ داده ای به اشتباه نوشته نشده است.
  • تست جامع - تست باید همه موارد را پوشش دهد. شما باید تست عملکرد ، آزمایش بار ، آزمایش امنیت و آزمایش استقرار را انجام دهید.
  • تست واحد - شما باید آزمایشات واحدی داشته باشید تا بررسی کنید که سوابق جداگانه نتیجه صحیح و مورد انتظار را ایجاد می کنند. اگرچه استفاده از یک تست غول پیکر که کل کد را در بر می گیرد ایده خوبی به نظر می رسد ، توجه داشته باشید که اشکال زدایی از نتایج تولید سخت تر خواهد بود و درک آن دشوارتر خواهد بود. یک تست واحد باید زیرمجموعه کوچکی از عملکرد مورد آزمایش را پوشش دهد.
  • موارد انبوه تست - یک کد آزمون خوب (ماشه ، استثنا یا کلاس) می تواند تا چند صد رکورد (200 برای Apex) درگیر باشد. شما باید از این مزیت استفاده کنید و نه تنها سوابق فردی ، بلکه موارد عمده را نیز آزمایش کنید.
  • تست های مثبت - برای اطمینان از اینکه آیا رفتار مورد انتظار از طریق همه جایگشتهای مورد انتظار رخ می دهد ، آزمایش کنید. این آزمون باید تأیید کند که کاربر فرم را به درستی پر کرده و محدودیت ها را پشت سر نگذاشته است.
  • تست های منفی - موارد منفی را آزمایش کنید تا از درست تولید شدن پیام های خطا اطمینان حاصل کنید. نمونه هایی از این موارد منفی عدم توانایی تعیین مقادیر منفی و عدم امکان افزودن تاریخ های آینده است. تست های منفی از اهمیت زیادی برخوردار هستند زیرا مدیریت صحیح هنگام کار به سمت جنوب می تواند تفاوت ایجاد کند.
  • تست خودکار - به طور سنتی ، تست Salesforce دستی بود. شما باید تست خودکار را در نظر بگیرید زیرا این مزایای بیشتری دارد. این شامل:
    • آزمایش دستی شما را مستعد ابتلا به اشتباه می کند زیرا آزمایش توسط انسان انجام می شود و نه روبات. ربات ها در فعالیت های تکراری در حالی عالی عمل می کنند که انسانها به دلیل بی حوصلگی ، کاهش تمرکز و ثبات و تمایل به گوشه گوشه اشتباه می کنند.
    • تست دستی تکراری ، فرمولی و خسته کننده است. تیم آزمایش بهتر است کارهایی انجام دهد که بیشتر اکتشافی باشد.
  • هر شعبه منطق کد را اجرا کنید - هنگام استفاده از منطق شرطی (هنگامی که عملگرهای سه گانه را وارد کرده اید) ، هر شاخه از منطق کد باید اجرا شود.
  • برای تماس به روش ها از ورودی های نامعتبر و معتبر استفاده کنید - تماس با روش ها باید با استفاده از هر دو ورودی نامعتبر و ورودی انجام شود.
  • تست های کامل - اطمینان حاصل کنید که آزمونها با موفقیت به پایان رسیده اند - از هیچ استثنائی استفاده نمی کنند مگر اینکه خطاهایی پیش بینی شود. همه استثناهای گرفتار را کنترل کنید - گرفتن آنها به اندازه کافی خوب نیست.
  • از ORDER BY استفاده کنید کلمات کلیدی - برای اطمینان از بازگشت سوابق خود به ترتیبی که انتظار دارید ، از کلمات کلیدی ORDER BY استفاده کنید.
  • تصور نکنید که شناسه های رکورد به ترتیب مرتب شده اند - از فرض اینكه تصور كنید شناسه های ثبت شده به ترتیب مرتب شده اند ، از اشتباه رایج خودداری كنید. شناسه ها به ترتیب صعودی نیستند ، مگر اینکه چندین رکورد را با همان درخواست وارد کرده باشید.
  • تماس بگیرید Test.startTest () و Test.stopTest () - هنگامی که یک تست واحد Apex را اجرا می کنید ، بیش از 75 درصد پوشش کد را که در Salesforce اجباری است ، دریافت خواهید کرد. قبل از ادعاها باید stopTest را فراخوانی کنید تا کدهای ناهمزمان را که ممکن است هنوز برای اتمام ادامه ندارند مجبور کنید. برای نتایج نهایی ، پرس و جوهای جدیدی را اجرا کنید زیرا کد دیگر ممکن است داده ها را تغییر دهد. با استفاده ازTest.startTest () و Test.stopTest () تضمین می کنید که تست را در داخل محدوده فرمان خود قرار دهید. به این ترتیب ، کد راه اندازی مورد استفاده شما تداخلی ایجاد نمی کند و منفی یا مثبت کاذب پیرامون محدودیت های کنترل را به شما نمی دهد. Test.stopTest () همچنین اطمینان حاصل می کند که تماس هایfuture برای آزمایش کامل می شوند.
  • خوانایی - خوانایی در آزمونهای واحدی بسیار مهم است. نام های آزمون باید شامل اقدامات خاص انجام شده و نتیجه مورد انتظار باشد. روش باید توصیفی و کوتاه باشد. این روش باید به گونه ای باشد که بتواند از طریق آزمایش های مختلف قابل استفاده مجدد باشد.
  • قبل از شروع تست مجموعه داده های آزمایشی بزرگی بسازید - از آنجا که آزمایشات شما در جعبه های مختلف شن و ماسه و محیط های مختلف در حال اجرا است ، قبل از تماس با startTest ، مجموعه داده های آزمایشی بزرگی ایجاد کنید تا اطمینان حاصل کنید که آزمون دارای محدودیت کامل اجرای است. به صورت پیش فرض، Salesforce Github آزمونهای جدا شده از داده های تولید را اجرا می کند. هنگامی که به داده های سیستم مانند Profile نیاز دارید ، برای بدست آوردن مورد مناسب برای آن محیط خاص ، پرس و جو می کنید.
  • داده های آزمون خود را ایجاد کنید - داده های آزمایشی که استفاده می کنید باید در آزمون تولید شوند. شما می توانید با استفاده از حاشیه نویسیtestSetup و کلاس TestUtils این داده ها را تولید کنید تا علاوه بر اطمینان از داشتن اطلاعات صحیح ، اطمینان حاصل کنید که همه تست ها روی جعبه ماسه توسعه دهنده بدون نیاز به داده اجرا می شوند.
  • از انجام عملیات خالی AKA جلوگیری کنید - بسیاری از آزمایش کنندگان از عملیات پوچ AKA بدون op-op استفاده می کنند. اینها کدهای بی فایده ای هستند که هیچ کاری نمی کنند. از آنجا که آنها از قبل در پایگاه کد شما هستند ، به درصد پوشش شما اضافه می شوند.
  • اعدام آزمون موازی - وقتی آزمایشات را از رابط کاربری Salesforce یا Developer Console شروع می کنید ، آزمایش ها به صورت موازی انجام می شوند. این یک ویژگی مهم است زیرا سرعت اجرای آزمون را افزایش می دهد. با این حال ، باید توجه داشته باشید که این امر می تواند منجر به بروز اختلافاتی در داده شود و در صورت مشکوک شدن به این اتفاق ، اجرای موازی را خاموش کنید. متداول ترین دلایل بروز اختلاف در داده ها که اغلب منجر به خطاهای UNABLE_TO_LOCK_ROW می شود:
    • وقتی آزمایش ها برای به روزرسانی همزمان سوابق یکسان است. به روزرسانی سوابق مشابه معمولاً هنگامی اتفاق می افتد که آزمون ها داده های خود را ایجاد نکنند.
    • وقتی در تست هایی که به طور موازی در حال اجرا هستند ، بن بست وجود دارد و آنها سعی می کنند رکوردهایی ایجاد کنند که دارای مقادیر زمینه شاخص مطابق باشند. بن بست هنگامی رخ می دهد که 2 آزمون در حال اجرا صف بکشد تا داده ها را پس بگیرد (این امر هنگامی رخ می دهد که 2 تست رکورد ورودی را که دارای مقادیر منحصر به فرد فیلد شاخص در ترتیب های مختلف هستند).
    • برای خاموش کردن اجرای آزمایشی موازی ، به Setup بروید ، وارد Apex Test شوید ، به گفتگوی گزینه های اجرای آزمایش Apex بروید ، گزینه Disable Paralelel Apex Test را انتخاب کنید ، OK را کلیک کنید.

تست رابط موازی را غیرفعال کنید

یک حرفه ای را برای این کار استخدام کنید زیرا او تجربه و آموزش لازم برای انجام یک آزمایش خوب را خواهد داشت ، که به شما آرامش خاطر می دهد. استخدام یک حرفه ای به شما امکان می دهد تا در تجارت اصلی خود تمرکز کنید. همچنین باعث صرفه جویی در هزینه شما می شود زیرا برای کار به تیم داخلی نیاز ندارید.

شما چه فکر میکنید؟

این سایت از Akismet برای کاهش هرزنامه استفاده می کند. بدانید که چگونه نظر شما پردازش می شود.