Savjeti i najbolji primjeri za testiranje integracije Salesforcea

integracija prodajne snage

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

  • Upotrijebite odgovarajuće alate za testiranje - Salesforce testiranje odvija se u pregledniku ili u okruženju temeljenom na pomrčini. I najnoviji preglednici i eclipse imaju izvrsne alate za uklanjanje pogreš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) tvrtke Force.com. Imajte na umu da možete koristiti Salesforce Lightning Inspector, kromirano proširenje, za posebno testiranje Salesforce Lightninga. Apex je a Force.com vlasnički programski jezik platforme koji ima velike sličnosti s Javom. Objektno je orijentiran, ne razlikuje velika i mala slova, programski jezik s jakim tipovima koji slijedi sintaksu kovrčavih zagrada i točaka. Apex možete koristiti za izvršavanje programiranih funkcija tijekom većine procesa Force.com, uključujući prilagođene veze i gumbe, ažuriranja, brisanja i rukovatelje događajima umetanja zapisa putem prilagođenih kontrolera stranice Visualforce ili raspoređivanja.
  • Koristite pravilne konvencije o imenovanju - Vrlo je važno pravilno imenovanje metoda ispitivanja prije nego što započnete pisati testove. Naziv metode ispitivanja trebao bi imati tri dijela. To su nameOfMethod (naziv pojedinačne metode koju testirate, kao što je insert / update / delete / undelete pri testiranju okidača, podaci o TestPath-u koji je fleksibilan, poput 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 pokriti 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š bi cilj trebao biti 100% pokrivenost. Testirajte sve pozitivne / negativne slučajeve i podatke koji su prisutni i koji nisu. Ostali važni savjeti kada je riječ o pokrivenosti 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 u organizaciji došlo do ažuriranja od zadnjeg probnog rada, postoji rizik da brojevi pokrivenosti koda budu netočni. Ponovite testove za pravu procjenu.
    • Postotak pokrivenosti koda ne uključuje pokrivenost kodom iz testova upravljanih paketa, s jedinom iznimkom kada ovi testovi uzrokuju aktiviranje okidača.
    • Pokrivenost ovisi o ukupnom broju linijskih kodova. Ako dodate ili izbrišete retke koda, utjecat ćete na postotak.
  • Test slučajevi u nastavi i kontrolorima - U razvoju Salesforcea, većina programera stvara zasebne klase i datoteke kontrolera za svaku funkciju. To je učinjeno kako bi se kodiranje učinilo organiziranijim, lakšim, ponovljivim i prijenosnim. Međutim, trebali biste imati na umu da je to lakše, ali nije učinkovitije. Prenosivost ćete postići ako je testni kôd u izvornoj klasi i sam kôd kontrolera jer nećete propustiti nijednu testnu klasu prilikom migracije iz pješčanika u produkciju.
  • Koristite System.assert () - U Apexu, System.assert() koristi se za provjeru uvjeta. Ovo je važna funkcionalnost jer vam omogućuje utvrđivanje 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 utvrditi je li kôd izveden kako treba, već i da osigurate pogrešno upisivanje podataka ako kôd pođe po zlu.
  • Sveobuhvatni test - Testiranje bi trebalo obuhvatiti 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 točan i očekivan rezultat. Iako se korištenje divovskog testa koji pokriva cijeli kôd može činiti dobrom idejom, imajte na umu da će generirani rezultati biti teže ispraviti, a neuspjeh teže razumjeti. Jedinstveni test trebao bi obuhvaćati mali podskup funkcionalnosti koja se ispituje.
  • Ispitni skupni slučajevi - Dobar testni kôd (okidač, izuzetak ili klasa) može biti uključen za nekoliko stotina zapisa (200 za Apex). Trebali biste to iskoristiti i testirati ne samo pojedinačne zapise, već i skupne slučajeve.
  • Pozitivni testovi - Testirajte kako biste osigurali javlja li se očekivano ponašanje kroz sve očekivane permutacije. Test bi trebao provjeriti je li korisnik ispravno ispunio obrazac i nije li prekoračio ograničenja.
  • Negativni testovi - Testirajte negativne slučajeve kako biste bili sigurni da su poruke o pogreškama pravilno proizvedene. Primjeri takvih negativnih slučajeva nisu u mogućnosti navesti negativne iznose i nisu u mogućnosti dodati buduće datume. Negativni testovi su važni jer ispravno rukovanje kad stvari krenu na jug može sve promijeniti.
  • Automatizirano testiranje - Tradicionalno je Salesforce testiranje bilo ručno. Trebali biste razmotriti automatizirano testiranje jer ovo nudi više prednosti. To uključuje:
    • Ručno testiranje čini vas podložnima pogreškama jer testiranje vrše ljudi, a ne roboti. Roboti se ističu u ponavljajućim aktivnostima, dok ljudi griješe zbog dosade, smanjene koncentracije i dosljednosti i sklonosti rezanju kutova.
    • Ručno testiranje je ponavljajuće, formulativno i zamorno. Testnom timu 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.
  • Upotrijebite nevaljane i važeće unose za pozive metodama - Pozivi na metode trebaju se upućivati ​​koristeći nevažeće i valjane unose.
  • Kompletni testovi - Osigurajte da su testovi uspješno završeni - ne bi trebali proći nikakve iznimke, osim ako se pogreške ne očekuju. Riješite 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 biste forsirali asinkrone kodove koji se još uvijek mogu izvoditi. Pokrenite nove upite za konačne rezultate jer bi drugi kod mogao promijeniti podatke. UsingTest.startTest () i Test.stopTest () osiguravaju vam testiranje u testnom okruženju unutar njegovih ograničenja guvernera. Na ovaj način, kod za postavljanje koji upotrebljavate neće ometati i pružiti vam lažne negativne ili pozitivne znakove koji okružuju ograničenja guvernera. Test.stopTest () također osigurava da će se pozivi @future dovršiti za testiranje.
  • Čitljivost - Čitljivost je vrlo važna u jediničnim testovima. Nazivi ispitivanja trebaju sadržavati određenu radnju i očekivani rezultat. Metoda bi trebala biti opisna i kratka. Metoda bi trebala biti takva da se može ponovno koristiti u različitim testovima.
  • Izradite velike skupove podataka za testiranje prije pokretanjaTest - 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 provodi testove izolirane od proizvodnih podataka. Kada su vam potrebni sistemski podaci kao što je Profil, upite da biste pronašli pravu stvar za to specifično okruženje.
  • Generirajte vlastite testne podatke - Podaci testa koje koristite trebaju se generirati u testu. Te podatke možete generirati pomoću bilješke @testSetup i klase TestUtils kako biste osigurali ne samo da imate ispravne podatke, već i da se svi testovi izvode u testnom 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 čine 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 značajka jer ubrzava vrijeme probnog rada. Međutim, trebali biste imati na umu da to može dovesti do problema s prijekorom podataka i ako sumnjate da bi se to moglo dogoditi, isključite paralelno izvršavanje. Najčešći uzroci problema sa sadržajem podataka koji često dovode do pogrešaka UNABLE_TO_LOCK_ROW 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 su 2 pokrenuta testa u redu č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 Postavljanje, uđite u Apex test, idite na dijalog Apex Test Execution Options, odaberite Disable Parallel Apex Testing, kliknite U redu.

Onemogući paralelno testiranje na vrhu

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

Što vi mislite?

Ova web stranica koristi Akismet za smanjenje neželjene pošte. Saznajte kako se podaci vašeg komentara obrađuju.