Tippek és bevált módszerek a Salesforce integrációinak teszteléséhez

értékesítői integráció

A Salesforce tesztelése segít igazolni a testreszabottakat Salesforce integrációk és funkcionalitás más vállalati alkalmazásokkal. Egy jó teszt lefedi az összes Salesforce modult a fiókoktól az ügyfelekig, a lehetőségektől a jelentésekig és a kampányoktól a kapcsolattartókig. Mint minden teszt esetében, a Salesforce teszt elvégzésére is van jó (hatékony és eredményes) és rossz módszer. Tehát mi teszteli a Salesforce jó gyakorlatát?

  • Használja a megfelelő tesztelő eszközöket - A Salesforce tesztelése a böngészőben vagy egy napfogyatkozás-alapú környezetben történik. Mind a legújabb böngészők, mind az eclipse nagyszerű hibakereső eszközökkel rendelkezik, és ezeket a tesztosztályokkal kombinálhatja a nagyon hasznos eredmények érdekében. Ha azonban többre van szüksége, akkor a Force.com Apex Interactive Debuggerjét (vagy egyszerűen Apex-et) kell használni. Ne feledje, hogy a Salesforce Lightning Inspector, egy króm kiterjesztést is használhatja a Salesforce Lightning tesztelésére. Az Apex egy Force.com platform saját programozási nyelv, amely nagy hasonlóságot mutat a Java-val. Ez egy objektumorientált, kis- és nagybetűk nem érzékeny, erősen tipizáló programozási nyelv, amely követi a göndör zárójeleket és a dot-notation szintaxist. Az Apex segítségével programozott funkciókat hajthat végre a Force.com legtöbb folyamatában, beleértve az egyéni hivatkozásokat és gombokat, frissítéseket, törléseket és rekordbeillesztési eseménykezelőket a Visualforce oldal egyéni vezérlőin vagy ütemezésén keresztül.
  • Megfelelő elnevezési konvenciók használata - Nagyon fontos a tesztmódszerek megfelelő megnevezése a tesztek megkezdése előtt. A vizsgálati módszer nevének három részből kell állnia. Ezek a nameOfMethod (az Ön által tesztelt metódus neve, pl. Beillesztés / frissítés / törlés / visszavonás az eseményindító tesztelésekor, a TestPath-ról olyan információk, amelyek rugalmasak, például null kapcsolat, ha azt teszteli, hogy a névjegy null, és teszteléskor érvényes pozitív / negatív út.
  • 100% -os lefedettség biztosítása - Bár a szokásos Salesforce irányelv szerint az egységtesztnek a kódjának 75% -át kell lefednie (mínusz tesztosztályok, System.debug hívások és tesztelési módszerek), és nem tudja telepíteni az Apex kódot vagy az AppExchange alkalmazásokat, vegye figyelembe, hogy ez csak egy szabvány, és 100% -os lefedettségre kell törekednie. Tesztelje az összes pozitív / negatív esetet, valamint a jelen lévő és nem jelenlévő adatokat. További fontos tippek a kód lefedettségével kapcsolatban:
    • Futtasson teszteket a kód lefedettségi számok frissítéséhez, mivel ezek a számok nem frissülnek az Apex kód frissítésekor, amíg a teszteket újra nem futtatják.
    • Ha a szervezetben az utolsó tesztfutás óta frissítés történt, fennáll annak a veszélye, hogy a kód lefedettségi számai helytelenek lesznek. Futtassa újra a teszteket a megfelelő becsléshez.
    • A kód lefedettségi százaléka nem tartalmazza a kezelt csomagok tesztjeinek kód lefedettségét, az egyetlen kivétel, amikor ezek a tesztek kiváltják az indítókat.
    • A lefedettség a kódsorok teljes számától függ. Ha kódsorokat ad hozzá vagy töröl, akkor ez befolyásolja a százalékot.
  • Teszt esetek osztályokban és vezérlők - A Salesforce fejlesztés során a legtöbb fejlesztő külön osztályokat és vezérlőfájlokat hoz létre az egyes funkciókhoz. Ez azért történik, hogy a kódolás szervezettebb, könnyebb, újrafelhasználhatóbb és hordozhatóbb legyen. Meg kell azonban jegyeznie, hogy bár ez könnyebb, de nem hatékonyabb. A hordozhatóságot akkor fogja elérni, ha a tesztkód az eredeti osztályban van, és maga a vezérlő kódja, mivel a homokozóból a gyártásba történő áttéréskor egyetlen tesztosztályt sem hagy el.
  • Használja a System.assert () - Az Apex-ben System.assert() a feltételek ellenőrzésére szolgál. Ez egy fontos funkció, mivel lehetővé teszi annak megállapítását, hogy egy adott funkciót a várakozásnak megfelelően hajtott-e végre a módszer. Használja a System.assertEquals () és a System.assertNotEquals () elemeket a kritikus funkciók között, és nem csak abban segít meghatározni, hogy a kódot a szükséges módon hajtották-e végre, hanem azt is, hogy ha a kód hibába ütközik, ne írjon téves adatokat.
  • ComprehensiveTest - A tesztelésnek mindenre ki kell terjednie. Funkcionális tesztelést, terhelési tesztet, biztonsági tesztet és telepítési tesztet kell végeznie.
  • Egység tesztek - Egységes tesztekkel kell ellenőriznie, hogy az egyes rekordok megfelelő és várható eredményt hoznak-e. Bár a teljes kódot lefedő óriási teszt használata jó ötletnek tűnhet, vegye figyelembe, hogy a létrehozott eredményeket nehezebb lesz hibakeresni, a kudarcokat pedig nehezebb megérteni. Az egységvizsgálatnak a tesztelt funkcionalitás kis részcsoportjára kell kiterjednie.
  • Tesztes ömlesztett tokok - Egy jó tesztkód (trigger, kivétel vagy osztály) akár több száz rekordot is bevonhat (Apex esetében 200). Ezt ki kell használnia, és nemcsak az egyedi nyilvántartásokat, hanem a tömeges eseteket is tesztelnie kell.
  • Pozitív tesztek - Tesztelje, hogy a várható viselkedés minden várható permutáción keresztül bekövetkezik-e. A tesztnek ellenőriznie kell, hogy a felhasználó helyesen töltötte-e ki az űrlapot, és hogy nem lépte-e túl a korlátokat.
  • Negatív tesztek - Tesztelje a negatív eseteket, hogy megbizonyosodjon arról, hogy a hibaüzenetek megfelelőek-e. Ilyen negatív esetekre nem lehet negatív összegeket meghatározni, és nem lehet jövőbeli dátumokat hozzáadni. A negatív tesztek azért fontosak, mert a helyes kezelés, amikor a dolgok délre mennek, mindent megváltoztathatnak.
  • Automatikus tesztelés - Hagyományosan a Salesforce tesztelése manuális volt. Fontolja meg az automatizált tesztelést, mivel ez több előnyt kínál. Ezek tartalmazzák:
    • A kézi tesztelés érzékenyebbé teszi a hibákat, mivel a teszteket emberek és nem robotok végzik. A robotok remekelnek az ismétlődő tevékenységek terén, míg az emberek az unalom, a csökkent koncentráció és következetesség, valamint a sarkok vágására való hajlam miatt hibáznak.
    • A kézi tesztelés ismétlődő, képletes és fárasztó. A tesztelő csapat jobban jár, ha felfedezőbb munkát végez.
  • Végezze el az egyes kódlogikai ágakat - Feltételes logika használatakor (ha háromszintű operátorokat is tartalmaz), a kódlogika minden ágát végre kell hajtani.
  • Érvénytelen és érvényes bemenetek használata a módszerekhez történő hívásokhoz - A metódusokat érvénytelen és érvényes bemenetek felhasználásával kell meghívni.
  • Teljes tesztek - Győződjön meg arról, hogy a tesztek sikeresen befejeződnek - kivételt nem tehetnek, kivéve, ha a hibák várhatóak. Kezelje az összes elkapott kivételt - elkapni nem elég jó.
  • Rendelési kulcsszavak használata - Használja az ORDER BY kulcsszavakat annak biztosításához, hogy a bejegyzések a várt sorrendben kerüljenek visszaadásra.
  • Ne feltételezzük, hogy a rekordazonosítókat egymás után rendezik - Kerülje el azt a gyakori hibát, hogy feltételezzük, hogy a rekordazonosítók sorrendben vannak elrendezve. Az azonosítók nem növekvő sorrendben vannak, kivéve, ha több rekordot is beillesztett ugyanazzal a kéréssel.
  • Hívja a Test.startTest () és a Test.stopTest () - Az Apex egység teszt futtatásakor meghaladja a Salesforce-ban kötelezően kitüntetett 75% -os kód lefedettséget. Az állítások előtt meg kell hívnia a stopTestet, hogy az esetleg még futó aszinkron kódokat befejezésre kényszerítse. Futtasson friss lekérdezéseket a végső eredményekről, mivel más kód megváltoztathatja az adatokat. A TestTst.startTest () és a Test.stopTest () használata biztosítja, hogy a tesztet a kormányzó határain belül helyezze el. Így az Ön által használt telepítési kód nem avatkozik be, és hamis negatívumokat vagy pozitívumokat ad a kormányzó határainak körül. A Test.stopTest () azt is biztosítja, hogy a @future hívások befejeződjenek a teszteléshez.
  • Olvashatóság - Az egységtesztekben nagyon fontos az olvashatóság. A tesztneveknek tartalmazniuk kell a konkrét intézkedéseket és a várható eredményt. A módszer legyen leíró és rövid. A módszernek olyannak kell lennie, hogy különböző tesztek során újra felhasználható legyen.
  • Készítsen nagy tesztadatkészleteket a startTest előtt - Mivel a tesztek különböző sandbox és gyártási környezetekben fognak futni, a startTest meghívása előtt készítsen nagy tesztadatkészleteket, hogy a teszt teljes végrehajtási korlátokkal rendelkezzen. Alapértelmezés szerint, Salesforce Github gyártási adatoktól elkülönítve futtat teszteket. Ha olyan rendszeradatokra van szüksége, mint egy profil, akkor kérdezze meg, hogy az adott környezethez mi legyen a megfelelő.
  • Saját tesztadatok létrehozása - Az Ön által használt tesztadatokat a tesztben kell létrehozni. Ezeket az adatokat a @testSetup kommentár és a TestUtils osztály használatával állíthatja elő, hogy ne csak a megfelelő adatok álljanak rendelkezésre, hanem az is, hogy az összes tesztet egy fejlesztői sandboxon futtassák, adatigény nélkül.
  • Kerülje az AKA null műveleteket - Sok tesztelő használ op-no AKA null műveleteket. Ezek haszontalan kódok, amelyek semmit sem tesznek. Mivel már szerepelnek a kódbázisban, hozzáadják a lefedettségi százalékot.
  • Párhuzamos teszt végrehajtása - Amikor a teszteket a Salesforce felhasználói felületéről vagy a Developer Console-ból indítja, a tesztek párhuzamosan futnak. Ez egy fontos tulajdonság, mivel felgyorsítja a tesztfutási időt. Meg kell azonban jegyeznie, hogy ez adatvesztési problémákhoz vezethet, és ha gyanítja, hogy ez előfordulhat, kapcsolja ki a párhuzamos végrehajtást. Az adatkonfliktusproblémák leggyakoribb okai, amelyek gyakran UNABLE_TO_LOCK_ROW hibákhoz vezetnek, a következők:
    • Amikor a tesztek célja ugyanazok a rekordok egyidejű frissítése. Ugyanezen rekordok frissítése általában akkor történik, amikor a tesztek nem hoznak létre saját adatot.
    • Ha a párhuzamosan futó tesztek holtpontra jutnak, és megpróbálnak rekordokat létrehozni, amelyek megfelelnek az index mező értékeinek. Holtpont következik be, amikor 2 futó teszt sorban áll az adatok visszagörgetése érdekében (ez akkor fordul elő, amikor 2 olyan bemeneti rekordot tesztel, amelyek ugyanazon egyedi index mezőértékekkel rendelkeznek, különböző sorrendben).
    • A párhuzamos tesztfuttatás kikapcsolásához lépjen a Beállítások menübe, írja be az Apex tesztet, lépjen az Apex teszt végrehajtási beállításai párbeszédpanelen, válassza a Párhuzamos csúcs tesztelés letiltása elemet, kattintson az OK gombra

Tiltsa le a Párhuzamos csúcs tesztelését

Foglalkozzon profival a munkához, mivel rendelkezik tapasztalattal és képzettséggel egy jó teszt elvégzéséhez, ami szintén nyugalmat ad. Egy profi alkalmazás lehetővé teszi, hogy az alaptevékenységére koncentráljon. Ez pénzt is megtakarít, mivel a munkához nem lesz szükség házon belüli csapatra.

Mit gondolsz?

Ez az oldal Akismet-et használ a levélszemét csökkentése érdekében. Ismerje meg, hogyan dolgozik a megjegyzésed.