Tipy a osvědčené postupy pro testování integrace Salesforce

integrace salesforce

Testování Salesforce vám pomůže ověřit vaše přizpůsobené Integrace Salesforce a funkce s jinými podnikovými aplikacemi. Dobrý test zahrnuje všechny moduly Salesforce od účtů po potenciální zákazníky, od příležitostí k přehledům a od kampaní ke kontaktům. Stejně jako u všech testů existuje dobrý (efektivní a efektivní) způsob provedení testu Salesforce a špatný způsob. Co je tedy osvědčeným postupem testování Salesforce?

  • Použijte správné testovací nástroje - Testování Salesforce probíhá v prohlížeči nebo v prostředí založeném na zatmění. Nejnovější prohlížeče i zatmění mají skvělé ladicí nástroje a můžete je zkombinovat s testovacími třídami pro velmi užitečné výsledky. Pokud však potřebujete více, měl by být použit The Apex Interactive Debugger (nebo jednoduše Apex) od Force.com. Všimněte si, že můžete také použít Salesforce Lightning Inspector, rozšíření pro chrom, ke konkrétnímu testování Salesforce Lightning. Apex je Force.com proprietární programovací jazyk platformy, který má velkou podobnost s Javou. Je to objektově orientovaný, nerozlišuje velká a malá písmena, programovací jazyk silných typů, který sleduje složené závorky a syntaxi tečkové notace. Apex můžete použít k provádění naprogramovaných funkcí během většiny procesů na webu Force.com, včetně vlastních odkazů a tlačítek, aktualizací, mazání a obslužných rutin událostí vkládání záznamů prostřednictvím vlastních řadičů stránky Visualforce nebo plánování.
  • Používejte správné konvence pojmenování - Správné pojmenování testovacích metod před zahájením psaní testů je velmi důležité. Název testovací metody by měl mít tři části. Jedná se o nameOfMethod (název jednotlivé metody, kterou testujete, například insert / update / delete / undelete při testování spouštěče, informace o TestPath, která je flexibilní, například nulový kontakt, pokud testujete, že kontakt je null, a platný při testování pozitivní / negativní cesta.
  • Zajistěte 100% pokrytí - Ačkoli standardní direktiva Salesforce spočívá v tom, že test jednotky by měl mít pokrytí 75% vašeho kódu (mínus testovací třídy, volání System.debug a testovací metody) a nebudete moci nasadit Apex kód ani balíčky aplikací AppExchange, měli byste Všimněte si, že se jedná pouze o standard a vaším cílem by mělo být 100% pokrytí. Vyzkoušejte všechny pozitivní / negativní případy a přítomnost a nepřítomnost údajů. Další důležité tipy, pokud jde o pokrytí kódu, jsou:
    • Měli byste spustit testy, abyste obnovili čísla pokrytí kódu, protože tato čísla se neaktualizují, když se kód Apex aktualizuje, dokud nebudou testy znovu spuštěny.
    • Pokud v organizaci došlo k aktualizaci od posledního zkušebního běhu, existuje riziko, že čísla pokrytí kódu budou nesprávná. Znovu spusťte testy pro správný odhad.
    • Procento pokrytí kódu nezahrnuje pokrytí kódu z testů spravovaných balíčků, jedinou výjimkou je, když tyto testy způsobí spuštění aktivačních událostí.
    • Pokrytí závisí na celkovém počtu řádků kódu. Pokud přidáte nebo odstraníte řádky kódu, ovlivní to procento.
  • Testovací případy ve třídách a kontrolorech - Ve vývoji Salesforce většina vývojářů vytváří pro každou funkci samostatné třídy a soubory řadičů. Děje se tak, aby bylo kódování organizovanější, jednodušší, opakovaně použitelné a přenosné. Měli byste si však uvědomit, že i když je to jednodušší, není to efektivnější. Přenositelnosti dosáhnete, pokud je testovací kód v původní třídě a samotný kód řadiče, protože vám při migraci z karantény do výroby nebude chybět žádná testovací třída.
  • Použít System.assert () - V Apexu System.assert() se používá ke kontrole podmínek. Toto je důležitá funkce, protože vám umožňuje určit, zda byla určitá funkce provedena metodou podle očekávání. Mezi kritickými funkcemi byste měli používat System.assertEquals () a System.assertNotEquals (). Pomůže vám to nejen určit, zda byl kód spuštěn tak, jak má, ale také zajistit, aby nebyla chybně zapsána žádná data.
  • Komplexní test - Testování by mělo pokrývat všechno. Měli byste provést funkční testování, testování zátěže, testování zabezpečení a testování nasazení.
  • Testy jednotek - Měli byste mít jednotkové testy, abyste ověřili, že jednotlivé záznamy produkují správný a očekávaný výsledek. Zatímco používání obřího testu, který pokrývá celý kód, se může zdát jako dobrý nápad, mějte na paměti, že generované výsledky bude obtížnější ladit a selhání bude těžší pochopit. Test jednotky by měl pokrývat malou podmnožinu testovaných funkcí.
  • Test hromadných případů - Dobrý testovací kód (spouštěč, výjimka nebo třída) může být použit až pro několik stovek záznamů (200 pro Apex). Měli byste to využít a otestovat nejen jednotlivé záznamy, ale i hromadné případy.
  • Pozitivní testy - Vyzkoušejte, zda se očekávané chování projeví po celé očekávané permutaci. Test by měl ověřit, že uživatel správně vyplnil formulář a že nepřekročil limity.
  • Negativní testy - Otestujte negativní případy, abyste se ujistili, že se chybové zprávy vytvářejí správně. Příkladem takových negativních případů není možnost zadat záporné částky a není možné přidat budoucí data. Negativní testy jsou důležité, protože správná manipulace, když věci jdou na jih, může mít zásadní rozdíl.
  • Automatizovat testování - Testování Salesforce bylo tradičně manuální. Měli byste zvážit automatizované testování, protože to nabízí více výhod. Tyto zahrnují:
    • Ruční testování způsobí, že budete náchylní k chybám, protože testování provádějí lidé, nikoli roboti. Roboti vynikají v opakujících se činnostech, zatímco lidé dělají chyby kvůli nudě, snížené koncentraci a důslednosti a tendenci k zatáčkám.
    • Ruční testování je opakující se, pravidelné a únavné. Testovacímu týmu je lépe dělat práci, která je více průzkumná.
  • Proveďte každou větev logiky kódu - Při použití podmíněné logiky (pokud jste zahrnuli ternární operátory) by měla být provedena každá větev logiky kódu.
  • Použijte neplatné a platné vstupy pro volání metod - Volání metod by měla být prováděna pomocí neplatných i platných vstupů.
  • Kompletní testy - Zajistěte, aby testy byly úspěšně dokončeny - neměly by přes žádné výjimky, pokud se neočekávají chyby. Zacházejte se všemi zachycenými výjimkami - jejich zachycení není dost dobré.
  • Použít OBJEDNAT PODLE klíčových slov - Abyste zajistili, že se vaše záznamy vrátí v pořadí, v jakém je očekáváte, použijte klíčová slova ORDER BY.
  • Nepředpokládejte, že ID záznamů jsou uspořádána postupně - Vyhněte se běžné chybě za předpokladu, že ID záznamů jsou uspořádána v postupném pořadí. ID nejsou ve vzestupném pořadí, pokud jste nevložili více záznamů se stejným požadavkem.
  • Volejte Test.startTest () a Test.stopTest () - Když spustíte test jednotky Apex, získáte více než 75% pokrytí kódu, které je povinné v Salesforce. Měli byste zavolat stopTest před tvrzeními, abyste vynutili dokončení asynchronních kódů, které mohou stále běžet. Spusťte nové dotazy na konečné výsledky, protože jiný kód může změnit data. Používání Test.startTest () a Test.stopTest () zajišťuje, že testovací karanténu provedete v rámci svých limitů guvernéra. Tímto způsobem nastavovací kód, který použijete, nebude rušit a poskytne vám falešné negativy nebo pozitiva obklopující limity guvernéra. Test.stopTest () také zajišťuje, že volání @future budou dokončena pro testování.
  • Čitelnost - Při jednotkových testech je čitelnost velmi důležitá. Názvy testů by měly zahrnovat konkrétní akci, kterou je třeba provést, a očekávaný výsledek. Metoda by měla být popisná a krátká. Metoda by měla být taková, aby ji bylo možné opakovaně použít v různých testech.
  • Vytvořte velké sady testovacích dat před startTest - Vzhledem k tomu, že vaše testy budou spuštěny v různých karanténních a produkčních prostředích, vytvořte před voláním startTest velké datové sady testů, abyste zajistili, že test bude mít úplné limity provádění. Ve výchozím stavu, Salesforce Github spouští testy izolované z produkčních dat. Když potřebujete systémová data, jako je profil, dotazujte, abyste získali správnou věc pro dané konkrétní prostředí.
  • Vygenerujte si vlastní testovací data - V testu by měla být generována použitá data testu. Tato data můžete vygenerovat pomocí @testSetup anotace a třídy TestUtils, abyste nejen zajistili, že máte správná data, ale také zajistěte, aby všechny testy probíhaly v sandboxu pro vývojáře bez požadavku na data.
  • Vyhněte se nulovým operacím AKA bez operace - Mnoho testerů používá nulové operace No-op AKA. Jedná se o zbytečné kódy, které nic nedělají. Protože jsou již ve vaší kódové základně, přidají se k vašemu procentu pokrytí.
  • Paralelní provedení testu - Když spustíte testy z uživatelského rozhraní Salesforce nebo z Developer Console, budou testy probíhat paralelně. Toto je důležitá funkce, protože zrychluje dobu běhu testu. Měli byste si však uvědomit, že to může vést k problémům s konflikty dat, a pokud máte podezření, že by k tomu mohlo dojít, vypněte paralelní provádění. Nejčastější příčiny problémů se spory o data, které často vedou k chybám UNABLE_TO_LOCK_ROW, jsou:
    • Pokud jsou testy určeny k aktualizaci stejných záznamů současně. K aktualizaci stejných záznamů obvykle dochází, když testy nevytvářejí vlastní data.
    • Když dojde k zablokování v testech, které běží paralelně a pokusí se vytvořit záznamy, které mají odpovídající hodnoty pole indexu. K zablokování dojde, když budou 2 spuštěné testy zařazeny do fronty k vrácení dat zpět (k tomu dojde, když 2 testy vstupních záznamů, které mají stejné jedinečné hodnoty pole indexu v různých objednávkách).
    • Chcete-li vypnout provádění paralelního testu, přejděte do Nastavení, zadejte Apex Test, přejděte do dialogového okna Možnosti provedení testu Apex, vyberte Zakázat paralelní Apex testování, klepněte na OK.

Zakažte testování paralelních vrcholů

Najměte si pro tuto práci profesionála, protože bude mít zkušenosti a školení potřebné k provedení dobrého testu, který vám také poskytne klid. Najmutí profesionála vám umožní soustředit se na vaše hlavní podnikání. Také vám ušetří peníze, protože pro tuto práci nebudete potřebovat vlastní tým.

Co si myslíte?

Tyto stránky používají Akismet k omezení spamu. Zjistěte, jak jsou vaše údaje komentářů zpracovávány.