Savjeti i najbolje prakse za testiranje integracije Salesforcea

integracija Salesforcea

Salesforce testiranje pomoći će vam da potvrdite prilagođenost Integracije Salesforcea i funkcionalnosti sa ostalim korporativnim aplikacijama. Dobar test pokriva sve Salesforce module od računa do potencijalnih klijenata, od prilika do izvještaja i od kampanja do kontakata. Kao što je slučaj sa svim testovima, postoji dobar (efikasan i efikasan) način izvođenja Salesforce testa i loš način. Dakle, šta je Salesforce testiranje dobre prakse?

  • Koristite prave alate za testiranje - Salesforce testiranje odvija se u pregledaču ili u okruženju zasnovanima na pomrčini. I najnoviji preglednici i eclipse imaju sjajne alate za otklanjanje grešaka i možete ih kombinirati s testnim klasama za vrlo korisne rezultate. Međutim, ako vam treba više, treba koristiti Apex Interactive Debugger (ili jednostavno Apex) by Force.com. Imajte na umu da možete koristiti Salesforce Lightning Inspector, kromiranu ekstenziju, za posebno testiranje Salesforce Lightninga. Apex je Force.com vlasnički programski jezik platforme koji ima velike sličnosti s Javom. To je objektno orijentirani, neoslušni na velika i mala slova, programski jezik s jakim tipovima koji slijedi sintaksu kovrčavih zagrada i tačaka. Apex možete koristiti za izvršavanje programiranih funkcija tokom većine Force.com procesa, uključujući prilagođene veze i dugmad, ažuriranja, brisanja i rukovaoce događajima umetanja zapisa putem prilagođenih kontrolera stranice Visualforce ili raspoređivanja.
  • Koristite pravilne konvencije o imenovanju - Pravilno imenovanje metoda ispitivanja prije početka pisanja testova je vrlo važno. Naziv metode ispitivanja trebao bi imati tri dijela. To su nameOfMethod (naziv pojedinačne metode koju testirate, kao što je insert / update / delete / undelete prilikom testiranja okidača, podaci o TestPath-u koji je fleksibilan kao što je null contact ako testirate da je kontakt null i valjan prilikom testiranja pozitivan / negativan put.
  • Osigurajte 100% pokrivenost - Iako je standardna Salesforce direktiva da jedinični test treba da pokriva 75% vašeg koda (minus klase testa, pozivi na System.debug i metode ispitivanja) i nećete moći implementirati Apex kôd ili paket AppExchange aplikacija, trebali biste imajte na umu da je ovo samo standard i vaš cilj treba biti 100% pokrivenost. Testirajte sve pozitivne / negativne slučajeve i podatke koji su prisutni i koji nisu. Ostali važni savjeti kada je u pitanju pokrivenost kodom su:
    • Trebali biste pokrenuti testove za osvježavanje brojeva pokrivenosti koda, jer se ti brojevi ne osvježavaju kada se Apex kôd ažurira dok se testovi ne ponove.
    • Ako je došlo do ažuriranja u organizaciji od zadnjeg probnog rada, postoji rizik da brojevi pokrivenosti koda budu netačni. Ponovite testove za pravu procjenu.
    • Procenat pokrivenosti koda ne uključuje pokrivenost kodom iz testova upravljanih paketa, s izuzetkom kada ti testovi uzrokuju aktiviranje okidača.
    • Pokrivenost ovisi o ukupnom broju linija koda. Ako dodate ili izbrišete retke koda, utjecati ćete na postotak.
  • Test slučajevi u nastavi i kontrolorima - U Salesforce razvoju, većina programera kreira zasebne klase i datoteke kontrolera za svaku funkciju. To je učinjeno kako bi se kodiranje učinilo organiziranijim, lakšim, ponovljivim i prenosivim. Međutim, trebate imati na umu da je ovo lakše, ali nije efikasnije. Prenosivost ćete postići ako je testni kôd u originalnoj klasi i samom kodu kontrolera, jer nećete propustiti nijednu testnu klasu prilikom migracije iz pješčane okoline u produkciju.
  • Koristite System.assert () - U Apexu, System.assert() koristi se za provjeru uvjeta. Ovo je važna funkcionalnost jer vam omogućuje da odredite je li određena funkcija izvedena metodom kako se očekivalo. Trebali biste koristiti System.assertEquals () i System.assertNotEquals () između kritičnih funkcionalnosti, ne samo da vam pomaže da utvrdite je li kôd izveden kako treba, već i da osigurate da se podaci pogrešno zapisuju ako kôd krene pogrešno.
  • ComprehensiveTest - Testiranje bi trebalo da pokrije sve. Trebali biste obaviti funkcionalno testiranje, testiranje opterećenja, sigurnosno testiranje i testiranje implementacije.
  • Jedinstveni testovi - Trebali biste imati jedinstvene testove kako biste potvrdili da pojedinačni zapisi daju tačan i očekivan rezultat. Iako se korištenje gigantskog testa koji pokriva čitav kod može činiti dobrom idejom, imajte na umu da će generirani rezultati biti teže otkloniti pogreške, a neuspjeh teže razumjeti. Jedinstveni test treba da pokrije mali podskup funkcionalnosti koja se ispituje.
  • Ispitni slučajevi - Dobar testni kod (okidač, izuzetak ili klasa) može biti uključen za nekoliko stotina zapisa (200 za Apex). Trebali biste iskoristiti ovo i testirati ne samo pojedinačne zapise, već i masovne slučajeve.
  • Pozitivni testovi - Testirajte kako biste osigurali da li se očekuje očekivano ponašanje kroz sve očekivane permutacije. Test bi trebao potvrditi da je korisnik pravilno ispunio obrazac i da nije prešao ograničenja.
  • Negativni testovi - Testirajte negativne slučajeve kako biste bili sigurni da su poruke o greškama pravilno proizvedene. Primjeri takvih negativnih slučajeva nisu u mogućnosti odrediti negativne iznose i nisu u mogućnosti dodati buduće datume. Negativni testovi su važni jer ispravno rukovanje kada stvari krenu na jug može učiniti sve razlike.
  • Automatizirajte testiranje - Tradicionalno, Salesforce testiranje bilo je ručno. Trebali biste razmotriti automatizirano testiranje jer ovo nudi više prednosti. Oni uključuju:
    • Ručno testiranje čini vas podložnima greškama jer testiranje vrše ljudi, a ne roboti. Roboti se ističu u ponavljajućim aktivnostima, dok ljudi prave greške zbog dosade, smanjene koncentracije i dosljednosti i sklonosti rezanju uglova.
    • Ručno testiranje se ponavlja, formulativno je i zamorno. Timu za testiranje je bolje raditi posao koji je istraživačkiji.
  • Izvršite svaku granu logike koda - Kada koristite uvjetnu logiku (kada ste uključili ternarne operatore), treba izvršiti svaku granu logike koda.
  • Koristite nevaljane i važeće unose za pozive metodama - Pozivi na metode trebaju biti upućeni koristeći nevažeće i važeće unose.
  • Kompletni testovi - Uvjerite se da su testovi uspješno završeni - ne bi trebali proći nikakve iznimke, osim ako se ne očekuju greške. Obradite sve uhvaćene iznimke - uhvatiti ih nije dovoljno dobro.
  • Koristite NARUČI PO Ključnim riječima - Da biste osigurali vraćanje zapisa u redoslijedu u kojem ih očekujete, upotrijebite ključne riječi NARUČI PO.
  • Nemojte pretpostavljati da su ID-ovi zapisa poredani sekvencijalno - Izbjegavajte uobičajenu pogrešku pretpostavljajući da su ID-ovi zapisa poredani u slijedu. ID-ovi nisu u uzlaznom redoslijedu, osim ako niste umetnuli više zapisa s istim zahtjevom.
  • Pozovite Test.startTest () i Test.stopTest () - Kada pokrenete Apex jedinični test, dobit ćete više od 75% pokrivenosti koda koja je obavezna u Salesforceu. Trebali biste nazvati stopTest prije tvrdnji kako bi se forsirali asinkroni kodovi koji se još uvijek mogu izvoditi. Pokrenite nove upite za konačne rezultate jer drugi kod može promijeniti podatke. UsingTest.startTest () i Test.stopTest () osigurava vam testiranje u testnom okruženju unutar njegovih ograničenja guvernera. Na ovaj način, kod za postavljanje koji koristite neće ometati i davati vam lažne negativne ili pozitivne znakove koji okružuju ograničenja guvernera. Test.stopTest () takođe osigurava da se pozivi @future dovrše za testiranje.
  • Čitljivost - Čitljivost je vrlo važna u jediničnim testovima. Imena testova trebaju sadržavati konkretnu radnju koju treba poduzeti i očekivani rezultat. Metoda treba biti opisna i kratka. Metoda bi trebala biti takva da se može ponovo koristiti u različitim testovima.
  • Napravite velike skupove testnih podataka prije startTest - Budući da će se vaši testovi izvoditi u različitim okruženjima za testiranje i proizvodnom okruženju, izgradite velike skupove podataka o testiranju prije nego što pozovete startTest kako biste osigurali da test ima puna ograničenja izvršavanja. Prema zadanim postavkama, Salesforce Github izvodi testove izolirane od proizvodnih podataka. Kada su vam potrebni sistemski podaci kao što je Profil, upite da biste dobili pravu stvar za to specifično okruženje.
  • Generirajte vlastite podatke o testiranju - Podaci testa koje koristite trebaju se generirati u testu. Možete generirati ove podatke pomoću bilješke @testSetup i klase TestUtils kako biste osigurali ne samo da imate prave podatke, već i da biste osigurali da se svi testovi izvode u zaštićenom okruženju za programere bez zahtjeva za podacima.
  • Izbjegavajte ne-operativne AKA null operacije - Mnogi testeri koriste ne-operativne AKA null operacije. To su beskorisni kodovi koji ne rade ništa. Budući da su već u vašoj bazi koda, oni će dodati vašem postotku pokrivenosti.
  • Paralelno izvršavanje testa - Kada pokrenete testove iz korisničkog sučelja Salesforcea ili Developer Console, testovi će se izvoditi paralelno. Ovo je važna karakteristika jer ubrzava vrijeme probnog rada. Međutim, trebali biste imati na umu da to može dovesti do problema sa sadržajem podataka i ako sumnjate da bi se to moglo dogoditi, isključite paralelno izvršavanje. Najčešći uzroci problema sa prepirkom podataka koji često dovode do UNABLE_TO_LOCK_ROW grešaka su:
    • Kada se testovima želi istovremeno ažurirati iste zapise. Ažuriranje istih zapisa obično se događa kada testovi ne kreiraju vlastite podatke.
    • Kada postoji zastoj u testovima koji se izvode paralelno i oni pokušavaju stvoriti zapise koji imaju odgovarajuće vrijednosti polja indeksa. Zastoj će se dogoditi kada se 2 tekuća testa stave u red čekanja za vraćanje podataka (to se događa kada 2 ulazna zapisa testova imaju iste jedinstvene vrijednosti polja indeksa u različitim redoslijedima).
    • Da biste isključili paralelno izvršavanje testa, idite na Setup, uđite u Apex test, idite na dijalog Apex Test Execution Options, odaberite Disable Parallel Apex Testing, kliknite OK.

Onemogućite paralelno testiranje na vrhu

Za taj posao angažirajte profesionalca jer će imati potrebno iskustvo i obuku za dobro testiranje, što vam takođe daje mir. Unajmljivanje profesionalca omogućava vam da se koncentrirate na svoj osnovni posao. Također vam štedi novac jer vam za posao neće trebati interni tim.

Šta ti misliš?

Ova stranica koristi Akismet kako bi smanjila neželjenu poštu. Saznajte kako se podaci vašeg komentara obrađuju.