Konsiloj kaj Plej Bonaj Praktikoj por Testado de Salesforce-Integriĝoj

vendostacia integriĝo

Salesforce-testado helpos vin validigi vian adaptitan Salesforce-integriĝoj kaj funkciecoj kun aliaj entreprenaj aplikoj. Bona testo kovras ĉiujn Salesforce-modulojn de kontoj al ĉefoj, de ŝancoj al raportoj, kaj de kampanjoj al kontaktoj. Kiel okazas kun ĉiuj testoj, ekzistas bona (efika kaj efika) maniero fari Salesforce-teston kaj malbonan manieron. Do, kio Salesforce provas bonan praktikon?

  • Uzu la Ĝustajn Testilojn - Salesforce-testado okazas en la retumilo aŭ en eklipsa medio. Kaj la plej novaj retumiloj kaj eklipso havas bonegajn elpurigajn ilojn kaj vi povas kombini ĉi tiujn kun testaj klasoj por tre helpaj rezultoj. Tamen, se vi bezonas pli, la Apex Interactive Debugger (aŭ simple Apex) de Force.com devas esti uzata. Notu, ke vi ankaŭ povas uzi Salesforce Lightning Inspector, kroman etendaĵon, por specife testi Salesforce Lightning. Apekso estas Force.com platforma propra programlingvo, kiu havas grandajn similecojn kun Java. Ĝi estas objektorientita, usklecodistinga, forte tipa programlingvo, kiu sekvas krispajn krampojn kaj punktnotigan sintakson. Vi povas uzi Apex por plenumi programitajn funkciojn dum plej multaj procezoj de Force.com, inkluzive de laŭmendaj ligoj kaj butonoj, ĝisdatigoj, forigoj kaj registraj enmetaj eventaj pritraktantoj per laŭmendaj regiloj aŭ planado de Visualforce-paĝo.
  • Uzu Konvencajn Nomajn Konvenciojn - Taŭga nomado de viaj testaj metodoj antaŭ ol vi komencas verki testojn estas tre grava. La testmetoda nomo devas havi tri partojn. Ĉi tiuj estas nameOfMethod (nomo de la individua metodo, kiun vi provas, kiel enmeti / ĝisdatigi / forigi / malfari dum provado de ellasilo, informoj pri TestPath fleksebla kiel nula kontakto, se vi provas, ke la kontakto estas nula, kaj valida dum provado. pozitiva / negativa vojo.
  • Certigu 100% Priraportadon - Kvankam la norma Salesforce-direktivo estas, ke unueca testo devas kovri 75% de via kodo (malpli testaj klasoj, alvokoj al System.debug kaj testaj metodoj) kaj vi ne povos disfaldi Apex-kodon aŭ paki programojn AppExchange, vi devas notu, ke ĉi tio estas nur normo kaj via celo devas esti 100% priraportado. Provu ĉiujn pozitivajn / negativajn kazojn kaj pri datumoj ĉeestantaj kaj ne ĉeestantaj. Aliaj gravaj konsiloj pri koda kovrado estas:
    • Vi devas ekzekuti testojn por refreŝigi kodajn priraportajn nombrojn, ĉar ĉi tiuj nombroj ne refreŝiĝas kiam la Apex-kodo estas ĝisdatigita ĝis testoj rekomenciĝas.
    • Se estis ĝisdatigo en la organizo ekde la lasta provo, ekzistas risko, ke la kodaj priraportaj nombroj estos malĝustaj. Relanĉu la testojn por la ĝusta takso.
    • La koda kovra procento ne inkluzivas kodan kovradon de administritaj pakaj testoj, kun la sola escepto, kiam ĉi tiuj provoj kaŭzas la ekfunkciigon de la ellasiloj.
    • Priraportado dependas de la tutsumo de kodlinioj. Se vi aldonas aŭ forigas liniojn de kodo, vi influos la procenton.
  • Testkazoj en Klasoj kaj Regiloj - En Salesforce-disvolviĝo, plej multaj programistoj kreas apartajn klasojn kaj regilajn dosierojn por ĉiu funkcio. Ĉi tio estas farita por fari kodigon pli organizita, pli facila, reuzebla kaj portebla. Vi tamen rimarku, ke kvankam ĉi tio estas pli facila, ĝi ne estas pli efika. Vi atingos porteblon, se la testokodo estas en la originala klaso kaj regila kodo mem, ĉar vi ne maltrafos iun testklason dum migrado de sablujo al produktado.
  • Uzu System.assert () - En Apekso, Sistemo.aserti() estas uzata por kontroli kondiĉojn. Ĉi tio estas grava funkcio, ĉar ĝi permesas vin determini ĉu aparta funkcio estis plenumita per la metodo kiel atendite. Vi devas uzi System.assertEquals () kaj System.assertNotEquals () inter kritikaj funkcioj ne nur helpas vin determini ĉu la kodo estis ekzekutita kiel ĝi devus, sed ankaŭ certigi, ke neniuj datumoj estas skribitaj erare se la kodo fuŝiĝas.
  • ComprehensiveTest - Testado devas kovri ĉion. Vi devas fari funkciajn testojn, ŝarĝajn provojn, sekurecajn provojn kaj disfaldajn provojn.
  • Unuecaj Testoj - Vi devas havi unuajn testojn por kontroli, ke individuaj registroj produktas la ĝustan kaj atendatan rezulton. Dum uzi gigantan teston, kiu kovras la tutan kodon, eble ŝajnas bona ideo, rimarku, ke la rezultoj generitaj estos pli malfacile elpurigeblaj kaj malsukceso estos pli malfacile kompreneblaj. Unuotesto devas kovri malgrandan subaron de la testata funkcio.
  • Provaj Bulkaj Kazoj - Bona testkodo (ellasilo, escepto aŭ klaso) povas esti implikita ĝis plurcent registroj (200 por Apex). Vi devas profiti ĉi tion kaj provi ne nur unuopajn registrojn, sed ankaŭ grandajn kazojn.
  • Pozitivaj Testoj - Provu por certigi, ĉu la atendata konduto okazas per ĉiuj atendataj permutaĵoj. La testo devas kontroli, ke la uzanto ĝuste plenigis la formularon kaj ke li / ŝi ne preterpasis la limojn.
  • Negativaj Testoj - Provu la negativajn kazojn por certigi, ke erarmesaĝoj estas ĝuste produktitaj. Ekzemploj de tiaj negativaj kazoj ne kapablas specifi negativajn kvantojn kaj ne povas aldoni estontajn datojn. Negativaj testoj gravas, ĉar ĝusta pritraktado kiam aferoj iras suden povas fari la diferencon.
  • Aŭtomata Testado - Tradicie, Salesforce-testado estis mana. Vi devas konsideri aŭtomatan testadon, ĉar ĉi tio ofertas pli da avantaĝoj. Ĉi tiuj inkluzivas:
    • Mana testado igas vin sentema al eraroj, ĉar testado estas farita de homoj kaj ne de robotoj. Robotoj elstaras pri ripetaj agadoj dum homoj faras erarojn pro enuo, reduktita koncentriĝo kaj konsekvenco, kaj emo tranĉi angulojn.
    • Mana testado estas ripetema, formula kaj laciga. La testteamo pli bone laboras pli esplore.
  • Ekzekutu ĉiun Kodan Logikan Branĉon - Kiam vi uzas kondiĉan logikon (kiam vi inkluzivis ternajn operatorojn), ĉiu branĉo de la koda logiko devas esti ekzekutita.
  • Uzu Nevalidajn kaj Validajn Enigaĵojn por Vokoj al Metodoj - Alvokoj al metodoj devas esti farataj per malvalidaj kaj validaj enigoj.
  • Kompletaj Testoj - Certigu, ke la testoj sukcese finiĝas - ili devas fari esceptojn krom se oni atendas la erarojn. Traktu ĉiujn esceptojn kaptitajn - kapti ilin ne sufiĉas.
  • Uzu MENDON PER Ŝlosilvortoj - Por certigi, ke viaj rekordoj estas redonitaj laŭ la ordo, laŭ kiu vi atendas ilin, uzu la ordon-ŝlosilvortojn.
  • Ne Supozi Rekordajn Identigilojn Aranĝitaj Sinsekve - Evitu la komunan eraron supozi ke registraj identigiloj estas aranĝitaj laŭ sinsekva sinsekvo. La identigiloj ne kreskas, krom se vi enmetis plurajn registrojn kun la sama peto.
  • Voku Test.startTest () kaj Test.stopTest () - Kiam vi faros Apex-unuan teston, vi ricevos pli ol la 75% -kodan kovradon, kiu estas deviga en Salesforce. Vi devas voki stopTest antaŭ asertoj por devigi nesinkronajn kodojn, kiuj eble ankoraŭ funkcias por fini. Faru novajn demandojn pri finaj rezultoj, ĉar alia kodo povus ŝanĝi datumojn. UsingTest.startTest () kaj Test.stopTest () certigas, ke vi provu la provon ene de ĝiaj limoj de reganto. Tiel la agordokodo, kiun vi uzas, ne malhelpos kaj donos al vi falsajn negativojn aŭ pozitivojn ĉirkaŭ la limoj de guberniestro. Test.stopTest () ankaŭ certigas, ke @future-vokoj finiĝos por testado.
  • Legebleco - Legebleco estas tre grava en unuotestoj. La testnomoj devas inkluzivi la specifan agon farotan kaj la atendatan rezulton. La metodo devas esti priskriba kaj mallonga. La metodo devas esti tia, ke ĝi povas esti reuzebla tra diversaj testoj.
  • Konstruu Grandajn Testajn Datumojn antaŭ startTest - Ĉar viaj testoj funkcios en malsamaj sablokestoj kaj produktaj medioj, konstruu grandajn testajn datumojn antaŭ ol vi nomos startTest por certigi, ke la testo havas plenajn ekzekutajn limojn. Defaŭlte, Salesforce Github faras provojn izolitajn de produktaj datumoj. Kiam vi bezonas sistemajn datumojn kiel Profilo, pridemandu por akiri la taŭgan aferon por tiu specifa medio.
  • Generi Vian Propran Testan Datumon - La provaj datumoj, kiujn vi uzas, devas esti generitaj en la testo. Vi povas generi ĉi tiujn datumojn per komentario @testSetup kaj klaso TestUtils por ne nur certigi, ke vi havas la ĝustajn datumojn, sed ankaŭ por certigi, ke ĉiuj testoj ruliĝos sur programisto-sandbox sen bezono pri datumoj.
  • Evitu senoperaciajn AKA-nulajn operaciojn - Multaj testantoj uzas senoperaciajn AKA-nulajn operaciojn. Ĉi tiuj estas senutilaj kodoj, kiuj faras nenion. Ĉar ili jam estas en via kodbazo, ili aldonos al via kovra procento.
  • Paralela Testa Ekzekuto - Kiam vi komencos testojn de la uzantinterfaco de Salesforce aŭ la Konstrua Konzolo, la testoj funkcios paralele. Ĉi tio estas grava trajto, ĉar ĝi plirapidigas testtempan tempon. Vi tamen devas rimarki, ke ĉi tio povas konduki al problemoj pri datumoj pri disputo kaj se vi suspektas, ke ĉi tio povus okazi, malŝaltu paralelan ekzekuton. La plej oftaj kaŭzoj de problemoj pri disputado de datumoj, kiuj ofte kaŭzas UNABLE_TO_LOCK_ROW-erarojn, estas:
    • Kiam testoj celas ĝisdatigi la samajn registrojn samtempe. Ĝisdatigo de la samaj registroj kutime okazas kiam provoj ne kreas siajn proprajn datumojn.
    • Kiam estas blokiĝo en testoj, kiuj funkcias paralele kaj ili provas krei registrojn, kiuj havas egalajn indeksajn kampajn valorojn. Blokiĝo okazos kiam 2 aktualaj testoj vicumas por redoni datumojn (tio okazas kiam 2 provoj enigas registrojn, kiuj havas la samajn unikajn indeksajn kampajn valorojn en malsamaj ordoj).
    • Por malŝalti paralelan testekzekuton, iru al Agordi, enigu Apex Test, iru al dialogo Agordoj pri Apex Test Execution, elektu Malŝalti Paralelan Apex Teston, alklaku OK.

Malŝalti Paralelan Apeksan Testadon

Dungu profesiulon por la laboro, ĉar li havos la sperton kaj trejnadon necesajn por fari bonan teston, kio ankaŭ donas al vi trankvilon. Dungi profesiulon permesas vin koncentriĝi pri via kerna komerco. Ĝi ankaŭ ŝparas al vi monon, ĉar vi ne bezonos internan teamon por la laboro.

Kion vi pensas?

Ĉi tiu retejo uzas Akismeton por redukti spamon. Lernu, kiel via komento datiĝas.