Salesforce интеграциясын тестілеуге арналған кеңестер мен үздік тәжірибелер

сату күштерін біріктіру

Salesforce сынағы сізге теңшелгенді растауға көмектеседі Salesforce интеграциясы және басқа кәсіптік қосымшалармен функционалдылық. Жақсы сынақ Salesforce-тің барлық модульдерін есептік жазбалардан бастап мүмкіндіктерге, мүмкіндіктерден есептерге және кампаниялардан контактілерге дейін қамтиды. Барлық сынақтардағы сияқты, Salesforce тестін өткізудің жақсы (тиімді және тиімді) әдісі және жаман тәсілі бар. Сонымен, Salesforce жақсы тәжірибені немен тексереді?

  • Дұрыс тестілеу құралдарын қолданыңыз - Salesforce сынағы браузерде немесе тұтылуға негізделген ортада болады. Соңғы браузерлерде де, күннің тұтылуында да өте үлкен түзету құралдары бар және оларды өте пайдалы нәтижелер үшін тестілік сабақтармен біріктіруге болады. Алайда, егер сізге көбірек қажет болса, Force.com сайтынан Apex Interactive Debugger (немесе жай Apex) қолданылуы керек. Salesforce Lightning инспекторын, хромдық кеңейтімді, Salesforce Lightning-ті арнайы тексеру үшін пайдалануға болатындығын ескеріңіз. Apex - бұл Force.com Java-мен ұқсастықтары бар платформалық меншікті бағдарламалау тілі. Бұл объектіге бағдарланған, регистрді ескермейтін, бағдарламалық тілді қатты жақша мен нүктелік-синтаксистік синтаксистен кейін орындайды. Сіз Apex-ті Force.com-тің көптеген процестері кезінде бағдарламаланған функцияларды орындау үшін қолдана аласыз, соның ішінде теңшелетін сілтемелер мен түймелер, жаңартулар, өшіру және Visualforce парағының реттелетін контроллері немесе жазба кірістіру оқиғаларын өңдеушілер.
  • Дұрыс ат қою туралы конвенцияларды қолданыңыз - Тест жазуды бастамас бұрын тест әдістерінің дұрыс аталуы өте маңызды. Тест әдісі атауы үш бөлімнен тұруы керек. Бұл nameOfMethod (триггерді сынау кезінде кірістіру / жаңарту / жою / жою сияқты жеке әдістің атауы, егер сіз нөлдің байланысын тексеріп жатсаңыз, нөлдік байланыс сияқты икемді TestPath туралы ақпарат және тестілеу кезінде жарамды оң / теріс жол.
  • 100% қамтуды қамтамасыз етіңіз - Стандартты Salesforce директивасы бірлік тесті сіздің кодтың 75% -ын қамтуы керек (минус тест сыныбы, System.debug-қа қоңырау шалу және тестілеу әдістері) болғанымен, сіз Apex кодын немесе AppExchange қолданбаларын орналастыра алмайсыз, бірақ бұл жай стандарт екенін және сіздің мақсатыңыз 100% қамтуды ескеріңіз. Барлық оң / теріс жағдайларды және бар және жоқ деректерді тексеріңіз. Кодты қамту туралы басқа маңызды кеңестер:
    • Кодты қамту нөмірлерін жаңарту үшін тестілерді іске қосу керек, өйткені Apex коды жаңартылған кезде бұл нөмірлер жаңартылмайды, тестілер қайталанғанша.
    • Егер ұйымда соңғы сынақ кезеңінен бастап жаңарту болса, кодты қамту сандары қате болуы мүмкін. Дұрыс бағалау үшін тестілерді қайта қосыңыз.
    • Кодты қамту пайызына басқарылатын пакеттер тестілерінің кодтық қамтуы кірмейді, тек осы тестілер триггерлердің өртенуіне себеп болатын ерекше жағдай.
    • Қамту код жолдарының жалпы санына байланысты. Егер сіз код жолдарын қоссаңыз немесе өшірсеңіз, онда пайыздық көрсеткішке әсер етесіз.
  • Сыныптардағы және контроллердегі сынақ жағдайлары - Salesforce дамытуда көптеген әзірлеушілер әр функция үшін бөлек сыныптар мен контроллер файлдарын жасайды. Бұл кодтауды неғұрлым ұйымшыл, оңай, қайта пайдалануға және портативті ету үшін жасалады. Алайда, бұл оңай болғанымен, тиімдірек емес екенін ескеру қажет. Егер сіз тест коды түпнұсқа сыныпта және контроллер кодында болса, портативтілікке қол жеткізесіз, өйткені құм жәшігінен өндіріске көшу кезінде кез-келген тест сыныбын жіберіп алмайсыз.
  • System.assert () қолданыңыз - Апексте, System.assert() шарттарды тексеру үшін қолданылады. Бұл маңызды функционалдылық, өйткені ол белгілі бір функцияның күтілгендей әдіспен орындалғанын анықтауға мүмкіндік береді. Сіз маңызды функционалдылықтар арасында System.assertEquals () және System.assertNotEquals () кодтарын қолданғаныңыз жөн, егер ол кодтың орындалған-орындалмағанын анықтап қана қоймай, сонымен қатар егер код қате болса, ешқандай деректер қате жазылмағанына сенімді болыңыз.
  • Кешенді тест - Тестілеу бәрін қамтуы керек. Сіз функционалды тестілеуді, жүктеуді тестілеуді, қауіпсіздікті тексеруді және орналастыруды тестілеуді жасауыңыз керек.
  • Бірлік сынақтары - Жеке жазбалардың дұрыс және күтілетін нәтиже беретіндігін тексеру үшін сізде бірлік сынақтары болуы керек. Бүкіл кодты қамтитын алып тестті қолдану жақсы идея болып көрінуі мүмкін, ал алынған нәтижелерді түзету қиын, ал сәтсіздікті түсіну қиын болады. Бірлік сынағы тексерілетін функционалдылықтың кіші жиынтығын қамтуы керек.
  • Жаппай сынаулар - Жақсы тест коды (триггер, ерекше жағдай немесе класс) бірнеше жүзге дейінгі жазбаларға қатыса алады (Apex үшін 200). Сіз бұл мүмкіндікті пайдаланып, тек жеке жазбаларды ғана емес, сонымен қатар жаппай жағдайларды да тексергеніңіз жөн.
  • Оң тесттер - Күтілетін мінез-құлық барлық күтілетін ауыстырулар арқылы орын алатынын тексеріңіз. Тест пайдаланушының нысанды дұрыс толтырғанын және оның шектеулерден шықпағанын тексеруі керек.
  • Теріс сынақтар - Қате туралы хабарламалардың дұрыс шығарылғандығына көз жеткізу үшін жағымсыз жағдайларды тексеріңіз. Мұндай жағымсыз жағдайлардың мысалдары теріс сомаларды көрсете алмау және болашақ күндерді қоса алмау. Теріс сынақтардың маңызы зор, өйткені оңтүстікке қарай оңтайлы өңдеу барлық өзгерісті тудыруы мүмкін.
  • Автоматтандырылған тестілеу - Дәстүр бойынша Salesforce тестілеуі қолмен болды. Автоматтандырылған тестілеуді қарастырған жөн, өйткені бұл артықшылықтар береді. Оларға мыналар жатады:
    • Қолмен тестілеу сізді қателіктерге бейім етеді, өйткені тестілеуді роботтар емес, адамдар жасайды. Роботтар қайталанатын іс-әрекеттерді жақсы орындайды, ал адамдар зеріктіру, концентрация мен дәйектіліктің төмендеуі және бұрыштарды кесу үрдісі салдарынан қателіктер жібереді.
    • Қолмен тестілеу қайталанатын, формулалық және шаршатады. Тестілеу тобы зерттеушілікпен айналысқан жөн.
  • Әрбір логикалық филиалды орындаңыз - Шартты логиканы қолданған кезде (үштік операторларды қосқанда) кодтық логиканың әр тармағы орындалуы керек.
  • Әдістерге қоңырау шалу үшін жарамсыз және жарамды кірістерді қолданыңыз - Әдістерге шақырулар жарамсыз және жарамды кірістерді қолдану арқылы жасалуы керек.
  • Толық тестілер - Тесттердің ойдағыдай аяқталғанына көз жеткізіңіз - егер қателіктер күтілмесе, олар ешқандай ерекшеліктерден өтпеуі керек. Барлық ерекше жағдайларды қолданыңыз - оларды ұстау жеткіліксіз.
  • Тапсырысты кілт сөздермен қолдану - Сіздің жазбаларыңыздың сіз күткен тәртіпте қайтарылуын қамтамасыз ету үшін, ORDER BY кілт сөздерін қолданыңыз.
  • Жазба идентификаторлары реттелген деп ойламаңыз - Жазбалық идентификаторлар дәйекті тәртіпте орналастырылған деп болжауға болатын жалпы қателіктерден аулақ болыңыз. Егер сіз бірдей сұраныспен бірнеше жазбалар енгізбеген болсаңыз, идентификаторлар өсу ретімен емес.
  • Test.startTest () және Test.stopTest () қоңырау шалыңыз - Apex бірлік тестін өткізгенде, сіз Salesforce-та міндетті болып табылатын 75% -дан астам кодты аласыз. Аяқтау үшін әлі жұмыс істеп тұрған асинхронды кодтарды мәжбүрлеу үшін бекітуге дейін stopTest шақыру керек. Соңғы нәтижелер үшін жаңа сұрауларды іске қосыңыз, себебі басқа код деректерді өзгерте алады. UseTest.startTest () және Test.stopTest () пайдалану тестілеуді басқарушы шектерінде қамтамасыз етеді. Осылайша, сіз қолданатын баптау коды кедергі жасамайды және әкімнің шектеулеріне байланысты жалған негативтер мен позитивтер береді. Test.stopTest () тестілеу үшін @ болашақ қоңыраулардың аяқталуын қамтамасыз етеді.
  • Оқу мүмкіндігі - Оқу қабілеті бірлік сынақтарында өте маңызды. Тест атаулары нақты іс-қимыл мен күтілетін нәтижені қамтуы керек. Әдіс сипаттамалық және қысқа болуы керек. Әдіс әртүрлі тестілерде қайта қолдануға болатындай болуы керек.
  • StartTest-ке дейін үлкен тестілік деректер жиынтығын құру - Сіздің тесттеріңіз әртүрлі құм жәшіктерінде және өндіріс орталарында жұмыс істейтін болғандықтан, startTest-ке қоңырау шалмас бұрын, тесттің толық орындалу шектерін қамтамасыз ету үшін үлкен деректер жиынтығын құрыңыз. Әдепкі бойынша, Salesforce Github өндірістік деректерден оқшауланған сынақтарды жүргізеді. Профиль сияқты жүйелік деректер қажет болғанда, нақты ортаға сәйкес келетін нәрсені сұраңыз.
  • Өзіңіздің тест деректеріңізді жасаңыз - Сіз қолданатын тест деректері тестте жасалуы керек. Сіз бұл деректерді @testSetup аннотациясы мен TestUtils класы арқылы тек дұрыс деректерге ие болу үшін ғана емес, сонымен қатар барлық тестілердің деректерге қажеттіліксіз әзірлеушінің құм жәшігінде орындалуын қамтамасыз ету үшін жасай аласыз.
  • Оперативті емес AKA нөлдік әрекеттерінен аулақ болыңыз - Көптеген тестерлер AKA-дан бос амалдарды қолданады. Бұл ештеңе жасамайтын пайдасыз кодтар. Олар сіздің кодтық базаңызда болғандықтан, олар сіздің қамту пайызыңызға қосылады.
  • Параллель тест орындау - Salesforce пайдаланушы интерфейсінен немесе Әзірлеуші ​​консолінен сынақтарды бастаған кезде, сынақтар параллель орындалады. Бұл маңызды функция, себебі ол сынақтың орындалу уақытын жылдамдатады. Алайда, бұл мәліметтердің қайшылықтарына әкелуі мүмкін екенін ескеруіңіз керек және егер сіз бұлай болуы мүмкін деп күдіктенсеңіз, параллель орындалуды өшіріңіз. UNABLE_TO_LOCK_ROW қателеріне әкелетін мәліметтерге қатысты даудың жиі кездесетін себептері:
    • Тесттер бірдей жазбаларды бір уақытта жаңартуға арналған кезде. Бірдей жазбаларды жаңарту, әдетте, тестілер өздерінің деректерін жасамаған кезде болады.
    • Параллель жүргізіліп жатқан тесттерде тығырыққа тірелген кезде және олар индекс өрісінің сәйкес мәндерін жазуға тырысады. Екі іске қосылған тест деректерді қайтару үшін кезекке тұрған кезде тығырық пайда болады (бұл әр түрлі тәртіптегі индекс өрісінің мәндері бірдей 2 енгізу жазбаларын тексерген кезде пайда болады).
    • Тесттің параллель орындалуын өшіру үшін Орнату бөліміне өтіп, Apex Test енгізіңіз, Apex Test Execution Options диалогтық терезесіне өтіп, Parallel Apex Testing параметрін өшіріп, ОК батырмасын басыңыз.

Parallel Apex тестілеуін өшіріңіз

Жұмысқа кәсіпқой жалдаңыз, өйткені ол жақсы сынақтан өту үшін қажетті тәжірибе мен дайындықтан өтеді, бұл сізге тыныштық береді. Про-жалдау сіздің негізгі бизнесіңізге шоғырландыруға мүмкіндік береді. Бұл сізге ақша үнемдейді, өйткені сізге жұмыс үшін ішкі команда қажет болмайды.

Сен не ойлайсың?

Бұл сайт спамның төмендеуі үшін Akismet пайдаланады. Деректеріңіздің қалай өңделетінін біліңіз.