ព័ត៌មានជំនួយនិងការអនុវត្តល្អបំផុតសម្រាប់ការធ្វើតេស្តសមាហរណកម្មកម្លាំងលក់

សមាហរណកម្មកម្លាំងលក់

ការសាកល្បងការលក់នឹងជួយអ្នកឱ្យមានសុពលភាពតាមតម្រូវការរបស់អ្នក សមាហរណកម្មកម្លាំងលក់ និងមុខងារជាមួយកម្មវិធីសហគ្រាសផ្សេងទៀត។ ការធ្វើតេស្តដ៏ល្អមួយគ្របដណ្តប់លើម៉ូឌែល Salesforce ទាំងអស់ពីគណនីទៅការនាំមុខពីឱកាសទៅរបាយការណ៍និងពីយុទ្ធនាការទៅទំនាក់ទំនង។ ដូចគ្នានឹងការធ្វើតេស្តទាំងអស់ដែរមានវិធីល្អ (មានប្រសិទ្ធភាពនិងប្រសិទ្ធភាព) ក្នុងការធ្វើតេស្តិ៍ Salesforce និងផ្លូវអាក្រក់។ ដូច្នេះតើ Salesforce កំពុងអនុវត្តការអនុវត្តល្អយ៉ាងដូចម្តេច?

  • ប្រើឧបករណ៍តេស្តត្រឹមត្រូវ - ការធ្វើតេស្តិ៍កំលាំងលក់កើតឡើងនៅក្នុងប្រូសឺររឺក្នុងបរិយកាសដែលមានមូលដ្ឋាននៅគ្រាស។ ទាំងកម្មវិធីរុករកចុងក្រោយបំផុតនិងសូរ្យ៉ែមានឧបករណ៍បំបាត់កំហុសដ៏អស្ចារ្យហើយអ្នកអាចបញ្ចូលវាជាមួយថ្នាក់សាកល្បងដើម្បីទទួលបានលទ្ធផលល្អ។ ទោះយ៉ាងណាក៏ដោយប្រសិនបើអ្នកត្រូវការច្រើនជាងនេះកម្មវិធីអេផិចអន្តរកម្មបំបាត់កំហុស (ឬសាមញ្ញអេផិច) ដោយ Force.com គួរតែត្រូវបានប្រើ។ ចំណាំអ្នកក៏អាចប្រើអធិការកិច្ចរន្ទះដែលជាផ្នែកបន្ថែមក្រាហ្វិចដើម្បីធ្វើតេស្ត៍ពិសេសសម្រាប់កម្លាំងរន្ទះ។ អេផិចគឺជាក Force.com ភាសាសរសេរកម្មវិធីមានកម្មសិទ្ធិដែលមានភាពស្រដៀងគ្នាខ្លាំងជាមួយចាវ៉ា។ វាជាវត្ថុតម្រង់ទិសករណីមិនស៊ីជម្រៅប្រភេទភាសាសរសេរកម្មវិធីដែលធ្វើតាមវណ្ណយុត្តិអង្កាញ់និងសញ្ញាសម្គាល់។ អ្នកអាចប្រើអាផិចដើម្បីប្រតិបត្តិមុខងារកម្មវិធីក្នុងកំឡុងពេលដំណើរការរបស់ Force.com ភាគច្រើនរួមមានតំណភ្ជាប់និងប៊ូតុងផ្ទាល់ខ្លួនការធ្វើបច្ចុប្បន្នភាពការលុបនិងកម្មវិធីដោះស្រាយព្រឹត្តិការណ៍បញ្ចូលតាមរយៈឧបករណ៍បញ្ជាឬរៀបចំតារាងទំព័រ។
  • ប្រើអនុសញ្ញាដាក់ឈ្មោះត្រឹមត្រូវ - ការដាក់ឈ្មោះវិធីសាស្រ្តធ្វើតេស្ត៍របស់អ្នកអោយបានត្រឹមត្រូវមុនពេលអ្នកចាប់ផ្តើមសរសេរតេស្តមានសារសំខាន់ណាស់។ ឈ្មោះវិធីសាស្ត្រនៃការធ្វើតេស្តគួរតែមានបីផ្នែក។ ទាំងនេះគឺជា nameOfMethod (ឈ្មោះនៃវិធីសាស្ត្រនីមួយៗដែលអ្នកកំពុងសាកល្បងដូចជាបញ្ចូល / ធ្វើបច្ចុប្បន្នភាព / លុប / មិនលុបនៅពេលសាកល្បងគន្លឹះព័ត៌មានអំពីតេស្តផាតដែលអាចបត់បែនបានដូចជាទំនាក់ទំនងទទេប្រសិនបើអ្នកកំពុងធ្វើតេស្ត៍ថាទំនាក់ទំនងមិនមានភាពត្រឹមត្រូវនិងត្រឹមត្រូវនៅពេលសាកល្បង ផ្លូវវិជ្ជមាន / អវិជ្ជមាន។
  • ធានាបាន ១០០% - ទោះបីជាបទបញ្ជាស្តង់ដាររបស់ Salesforce គឺថាតេស្តឯកតាគួរតែមានការគ្របដណ្ដប់ ៧៥% នៃលេខកូដរបស់អ្នក (ថ្នាក់ដកដកការហៅទៅ System.debug និងវិធីសាស្ត្រសាកល្បង) ហើយអ្នកនឹងមិនអាចដាក់លេខកូដអេផិចរឺកញ្ចប់កម្មវិធីផ្លាស់ប្តូរទេអ្នកគួរតែ សូមកត់សម្គាល់ថានេះគ្រាន់តែជាស្តង់ដារមួយហើយគោលបំណងរបស់អ្នកគួរតែគ្របដណ្ដប់ ១០០ ភាគរយ។ សាកល្បងរាល់ករណីវិជ្ជមាន / អវិជ្ជមាននិងសម្រាប់ទិន្នន័យដែលមានហើយមិនមាន។ គន្លឹះសំខាន់ផ្សេងទៀតនៅពេលនិយាយអំពីការគ្របដណ្តប់លេខកូដគឺ៖
    • អ្នកគួរតែតេស្តដើម្បីធ្វើឱ្យលេខកូដគ្របដណ្ដប់ឡើងវិញពីព្រោះលេខទាំងនេះមិនត្រូវបានធ្វើឱ្យស្រស់នៅពេលដែលកូដអេផិចត្រូវបានធ្វើបច្ចុប្បន្នភាពរហូតដល់ការធ្វើតេស្តត្រូវបានដំណើរការឡើងវិញ។
    • ប្រសិនបើមានការធ្វើបច្ចុប្បន្នភាពនៅក្នុងអង្គការចាប់តាំងពីការប្រលងចុងក្រោយមានហានិភ័យដែលលេខកូដគ្របដណ្តប់នឹងមិនត្រឹមត្រូវ។ Rerun ការធ្វើតេស្តសម្រាប់ការប៉ាន់ស្មានត្រឹមត្រូវ។
    • ភាគរយគ្របដណ្តប់លេខកូដមិនរាប់បញ្ចូលការគ្របដណ្តប់កូដពីការធ្វើតេស្តកញ្ចប់គ្រប់គ្រងដោយមានករណីលើកលែងតែមួយគត់នៅពេលដែលការធ្វើតេស្តទាំងនេះបណ្តាលឱ្យបង្កឱ្យឆេះ។
    • ការធានារ៉ាប់រងអាស្រ័យលើចំនួនកូដសរុប។ ប្រសិនបើអ្នកបន្ថែមឬលុបបន្ទាត់កូដអ្នកនឹងប៉ះពាល់ភាគរយ។
  • ករណីធ្វើតេស្តនៅក្នុងថ្នាក់និងអ្នកត្រួតពិនិត្យ - នៅក្នុងការអភិវឌ្ឍផ្នែកលក់សឺវីសអ្នកអភិវឌ្ឍន៍ភាគច្រើនបង្កើតថ្នាក់និងឯកសារបញ្ជាសម្រាប់មុខងារនីមួយៗ។ នេះត្រូវបានធ្វើដើម្បីធ្វើឱ្យការសរសេរកូដកាន់តែមានភាពងាយស្រួលប្រើឡើងវិញនិងអាចយកតាមខ្លួនបាន។ ទោះជាយ៉ាងណាក៏ដោយអ្នកគួរកត់សម្គាល់ថាខណៈពេលដែលវាងាយស្រួលជាងនេះវាមិនមានប្រសិទ្ធភាពទេ។ អ្នកនឹងទទួលបានភាពងាយស្រួលប្រសិនបើកូដសាកល្បងស្ថិតនៅក្នុងថ្នាក់មេនិងលេខកូដឧបករណ៍បញ្ជាដោយខ្លួនឯងព្រោះអ្នកនឹងមិនខកខានថ្នាក់សាកល្បងណាមួយទេនៅពេលដែលផ្លាស់ពី sandbox ទៅផលិតកម្ម។
  • ប្រើ System.assert () - នៅអេផិច System.assert() ត្រូវបានប្រើដើម្បីពិនិត្យលក្ខខណ្ឌ។ នេះគឺជាមុខងារសំខាន់ព្រោះវាអនុញ្ញាតឱ្យអ្នកកំណត់ថាតើមុខងារជាក់លាក់មួយត្រូវបានអនុវត្តដោយវិធីសាស្ត្រដូចដែលបានរំពឹងទុក។ អ្នកគួរតែប្រើ System.assertEquals () និង System.assertNotEquals () រវាងមុខងារសំខាន់ៗមិនត្រឹមតែជួយអ្នកក្នុងការកំណត់ថាតើកូដត្រូវបានប្រតិបត្តិដូចដែលវាគួរធ្វើនោះទេប៉ុន្តែថែមទាំងធានាថាមិនមានទិន្នន័យណាមួយត្រូវបានសរសេរខុសប្រសិនបើកូដខុស។
  • ComprehensiveTest - តេស្តគួរតែគ្របដណ្តប់លើអ្វីៗទាំងអស់។ អ្នកគួរតែធ្វើការតេស្តិ៍មុខងារតេស្តបន្ទុកការធ្វើតេស្តសុវត្ថិភាពនិងការដាក់ពង្រាយ។
  • ការធ្វើតេស្តឯកតា - អ្នកគួរតែមានការធ្វើតេស្តឯកតាដើម្បីផ្ទៀងផ្ទាត់ថាកំណត់ត្រាបុគ្គលបង្កើតលទ្ធផលត្រឹមត្រូវនិងរំពឹងទុក។ នៅពេលប្រើតេស្តយក្សដែលគ្របដណ្តប់លេខកូដទាំងមូលហាក់ដូចជាគំនិតល្អសូមកត់សម្គាល់ថាលទ្ធផលដែលបានបង្កើតនឹងពិបាកក្នុងការបំបាត់កំហុសហើយការបរាជ័យនឹងពិបាកយល់។ ការធ្វើតេស្តឯកតាគួរតែគ្របដណ្តប់លើផ្នែកតូចៗនៃមុខងារដែលត្រូវបានសាកល្បង។
  • ករណីសាកច្រើន - លេខកូដតេស្តល្អ (កេះការលើកលែងឬថ្នាក់) អាចមានរហូតដល់ទៅរាប់រយកំណត់ត្រា (២០០ សន្លឹកសម្រាប់អេផិច) ។ អ្នកគួរតែទាញយកអត្ថប្រយោជន៍ពីនេះហើយសាកល្បងមិនត្រឹមតែកំណត់ត្រាបុគ្គលប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងករណីភាគច្រើនផងដែរ។
  • តេស្តវិជ្ជមាន - ធ្វើតេស្តដើម្បីធានាថាតើអាកប្បកិរិយាដែលរំពឹងទុកកើតឡើងតាមរយៈការអនុញ្ញាតដែលរំពឹងទុកទាំងអស់។ ការធ្វើតេស្តនេះគួរតែបញ្ជាក់ថាអ្នកប្រើប្រាស់បានបំពេញទម្រង់បែបបទយ៉ាងត្រឹមត្រូវហើយថាខ្លួនមិនបានឆ្លងកាត់ចំនួនកំណត់។
  • តេស្តអវិជ្ជមាន - សាកល្បងករណីអវិជ្ជមានដើម្បីធានាថាសារកំហុសត្រូវបានផលិតយ៉ាងត្រឹមត្រូវ។ ឧទាហរណ៏នៃករណីអវិជ្ជមានបែបនេះមិនអាចបញ្ជាក់ពីបរិមាណអវិជ្ជមាននិងមិនអាចបន្ថែមកាលបរិច្ឆេទនាពេលអនាគតបានទេ។ ការធ្វើតេស្តអវិជ្ជមានគឺមានសារៈសំខាន់ពីព្រោះការដោះស្រាយត្រឹមត្រូវនៅពេលដែលអ្វីៗនៅភាគខាងត្បូងអាចធ្វើឱ្យមានភាពខុសគ្នាទាំងអស់។
  • ការសាកល្បងស្វ័យប្រវត្តិកម្ម - ជាប្រពៃណីការធ្វើតេស្ដរបស់ Salesforce គឺជាសៀវភៅដៃ។ អ្នកគួរតែពិចារណាការធ្វើតេស្តដោយស្វ័យប្រវត្តិព្រោះនេះផ្តល់នូវគុណសម្បត្តិបន្ថែមទៀត។ ទាំងនេះ​រួម​បញ្ចូល​ទាំង:
    • ការធ្វើតេស្តដោយដៃធ្វើឱ្យអ្នកងាយនឹងមានកំហុសពីព្រោះការសាកល្បងគឺដោយមនុស្សហើយមិនមែនមនុស្សយន្តទេ។ មនុស្សយន្តពូកែធ្វើសកម្មភាពច្រំដែលខណៈពេលដែលមនុស្សធ្វើខុសដោយសារភាពធុញថប់កាត់បន្ថយការផ្តោតអារម្មណ៍និងភាពស្ថិតស្ថេរនិងទំនោរកាត់ជ្រុង។
    • ការធ្វើតេស្តដោយដៃគឺជាពាក្យដដែលៗរូបមន្តនិងនឿយហត់។ ក្រុមធ្វើតេស្តនេះគឺល្អប្រសើរក្នុងការធ្វើការងារដែលមានការរុករកកាន់តែខ្លាំង។
  • ប្រតិបត្តិសាខាឡូជីខលនីមួយៗ - នៅពេលប្រើតក្កវិជ្ជាដែលមានលក្ខខណ្ឌ (នៅពេលអ្នករួមបញ្ចូលប្រតិបត្តិករសឺណែវ) សាខានីមួយៗនៃតក្កកូដគួរតែត្រូវបានប្រតិបត្តិ។
  • ប្រើធាតុបញ្ចូលមិនត្រឹមត្រូវនិងត្រឹមត្រូវសម្រាប់ការហៅទៅវិធីសាស្ត្រ - ការអំពាវនាវរកវិធីសាស្រ្តគួរតែត្រូវបានធ្វើឡើងដោយប្រើធាតុបញ្ចូលមិនត្រឹមត្រូវនិងត្រឹមត្រូវ។
  • ការប្រលងបញ្ចប់ - ធានាថាការធ្វើតេស្តបានបញ្ចប់ដោយជោគជ័យ - ពួកគេមិនគួរឆ្លងកាត់ការលើកលែងលើកលែងតែមានកំហុសរំពឹងទុក។ ដោះស្រាយរាល់ករណីលើកលែងដែលចាប់បាន - ចាប់ពួកគេមិនល្អគ្រប់គ្រាន់ទេ។
  • ប្រើពាក្យបញ្ជាតាមពាក្យគន្លឹះ - ដើម្បីធានាថាកំណត់ត្រារបស់អ្នកត្រូវបានត្រឡប់មកវិញតាមលំដាប់ដែលអ្នករំពឹងទុកសូមប្រើពាក្យបញ្ជា ORDER BY ។
  • កុំសន្មតថាអត្តសញ្ញាណប័ណ្ណត្រូវបានរៀបចំតាមលំដាប់លំដោយ - ជៀសវាងកំហុសទូទៅនៃការសន្មតអត្តសញ្ញាណប័ណ្ណត្រូវបានរៀបចំតាមលំដាប់លំដោយ។ លេខសម្គាល់ទាំងនេះមិនស្ថិតក្នុងលំដាប់ឡើងទេលុះត្រាតែអ្នកបានបញ្ចូលកំណត់ត្រាច្រើនជាមួយសំណើដូចគ្នា។
  • ហៅ Test.startTest () និង Test.stopTest () - នៅពេលដែលអ្នកដំណើរការតេស្តិ៍អេផិចយូអេសធីអ្នកនឹងទទួលបានច្រើនជាងការគ្របដណ្តប់លេខកូដ ៧៥ ភាគរយដែលចាំបាច់នៅក្នុងការលក់។ អ្នកគួរទូរស័ព្ទទៅបញ្ឈប់មុនពេលការអះអាងបង្ខំឱ្យលេខកូដអសមកាលដែលនៅតែដំណើរការដើម្បីបញ្ចប់។ ដំណើរការសំណួរថ្មីៗសម្រាប់លទ្ធផលចុងក្រោយព្រោះលេខកូដផ្សេងទៀតអាចផ្លាស់ប្តូរទិន្នន័យ។ ការប្រើប្រាស់ Test.startTest () និង Test.stopTest () ធានាថាអ្នកធ្វើតេស្តិ៍ sandbox នៅក្នុងដែនកំណត់របស់អភិបាល។ វិធីនេះកូដតំឡើងដែលអ្នកប្រើនឹងមិនជ្រៀតជ្រែកនិងផ្តល់ឱ្យអ្នកនូវភាពអវិជ្ជមានឬភាពមិនត្រឹមត្រូវជុំវិញព័ទ្ធជុំវិញដែនកំណត់របស់អភិបាល។ Test.stopTest () ក៏ធានាថាការហៅតាមទូរស័ព្ទ @future នឹងបញ្ចប់សម្រាប់ការសាកល្បង។
  • សមត្ថភាពអាន - សមត្ថភាពអានគឺមានសារៈសំខាន់ខ្លាំងណាស់នៅក្នុងការធ្វើតេស្តឯកតា។ ឈ្មោះតេស្តគួរតែមានសកម្មភាពជាក់លាក់ដែលត្រូវធ្វើនិងលទ្ធផលរំពឹងទុក។ វិធីសាស្រ្តគួរតែមានការពិពណ៌នានិងខ្លី។ វិធីសាស្រ្តគួរតែដូចជាវាអាចប្រើម្តងទៀតឆ្លងកាត់ការធ្វើតេស្តផ្សេងៗគ្នា។
  • បង្កើតសំណុំទិន្នន័យសាកល្បងធំមុនពេលចាប់ផ្តើម - ដោយសារតេស្តរបស់អ្នកនឹងដំណើរការនៅក្នុងប្រអប់ខ្សាច់និងបរិដ្ឋានផលិតកម្មផ្សេងៗគ្នាបង្កើតសំណុំទិន្នន័យសាកល្បងធំ ៗ មុនពេលដែលអ្នកហៅទូរស័ព្ទមកធ្វើតេស្តដើម្បីធានាថាតេស្តនេះមានកំរិតប្រតិបត្តិពេញលេញ។ តាម​លំនាំដើម, Salesforce Github ដំណើរការតេស្តដាច់ឆ្ងាយពីទិន្នន័យផលិតកម្ម។ នៅពេលដែលអ្នកត្រូវការទិន្នន័យប្រព័ន្ធដូចជាពត៌មានផ្ទាល់ខ្លួនសំណួរដើម្បីទទួលបានអ្វីដែលត្រឹមត្រូវសម្រាប់បរិស្ថានជាក់លាក់នោះ។
  • បង្កើតទិន្នន័យតេស្តផ្ទាល់ខ្លួនរបស់អ្នក - ទិន្នន័យតេស្តដែលអ្នកប្រើគួរតែត្រូវបានបង្កើតនៅក្នុងតេស្ត។ អ្នកអាចបង្កើតទិន្នន័យនេះដោយប្រើចំណារពន្យល់ @testSetup និងថ្នាក់ TestUtils មិនត្រឹមតែធានាថាអ្នកមានទិន្នន័យត្រឹមត្រូវប៉ុណ្ណោះទេប៉ុន្តែថែមទាំងដើម្បីធានាថាការធ្វើតេស្តទាំងអស់ដំណើរការលើប្រអប់ខ្សាច់អ្នកអភិវឌ្ឍន៍ដោយមិនចាំបាច់មានទិន្នន័យ។
  • ជៀសវាងប្រតិបត្តិការគ្មានសកម្មភាព AKA - អ្នកធ្វើតេស្ត៍ជាច្រើនប្រើប្រតិបតិ្តការមិនប្រើ AKA ។ ទាំងនេះគឺជាលេខកូដដែលគ្មានប្រយោជន៍ដែលមិនធ្វើអ្វីទាំងអស់។ ដោយសារពួកគេមាននៅក្នុងលេខកូដរបស់អ្នករួចហើយពួកគេនឹងបន្ថែមភាគរយនៃការធានារ៉ាប់រងរបស់អ្នក។
  • ការប្រតិបត្តិសាកល្បងប៉ារ៉ាឡែល - នៅពេលអ្នកចាប់ផ្តើមធ្វើតេស្តពីចំណុចប្រទាក់អ្នកប្រើ Salesforce ឬកុងសូលអ្នកអភិវឌ្ឍន៍ការធ្វើតេស្តនឹងដំណើរការស្របគ្នា។ នេះគឺជាមុខងារសំខាន់នៅពេលវាបង្កើនល្បឿនពេលវេលារត់សាកល្បង។ ទោះយ៉ាងណាអ្នកគួរកត់សំគាល់ថានេះអាចនាំឱ្យមានបញ្ហាវិវាទទិន្នន័យហើយប្រសិនបើអ្នកសង្ស័យថារឿងនេះអាចកើតឡើងសូមបិទការប្រតិបត្តិស្របគ្នា។ មូលហេតុទូទៅបំផុតនៃបញ្ហាជម្លោះទិន្នន័យដែលជារឿយៗនាំឱ្យមានកំហុស UNABLE_TO_LOCK_ROW គឺ៖
    • នៅពេលដែលការធ្វើតេស្តមានគោលបំណងធ្វើបច្ចុប្បន្នភាពកំណត់ត្រាដូចគ្នាក្នុងពេលតែមួយ។ ការធ្វើបច្ចុប្បន្នភាពកំណត់ត្រាដដែលជាធម្មតាកើតឡើងនៅពេលដែលការធ្វើតេស្តមិនបានបង្កើតទិន្នន័យផ្ទាល់ខ្លួន។
    • នៅពេលមានការជាប់គាំងនៅក្នុងការធ្វើតេស្តដែលកំពុងដំណើរការស្របគ្នាហើយពួកគេព្យាយាមបង្កើតកំណត់ត្រាដែលមានតម្លៃវាលសន្ទស្សន៍ដែលត្រូវគ្នា។ ភាពជាប់គាំងមួយនឹងកើតឡើងនៅពេលដែលការធ្វើតេស្តិ៍ចំនួន ២ កំពុងតំរៀបជួរដើម្បីទាញទិន្នន័យត្រឡប់មកវិញ (នេះកើតឡើងនៅពេលដែល ២ តេស្តកត់ត្រាបញ្ចូលដែលមានតំលៃវាលលិបិក្រមតែមួយនៅក្នុងការបញ្ជាទិញផ្សេងៗគ្នា) ។
    • ដើម្បីបិទការប្រតិបត្តិការសាកល្បងប៉ារ៉ាឡែលសូមចូលទៅកាន់ការតំឡើងបញ្ចូលអេផិចសាកល្បងចូលទៅក្នុងប្រអប់ជម្រើសប្រតិបត្តិអេផិចជ្រើសបិទដំណើរការការសាកល្បងប៉ារ៉ាឡែលចុចយល់ព្រម។

បិទការសាកល្បងប៉ារ៉ាឡែលអេប៉ិច

ជួលអ្នកជំនួយការសម្រាប់ការងារព្រោះគាត់នឹងមានបទពិសោធនិងការបណ្តុះបណ្តាលចាំបាច់ដើម្បីធ្វើតេស្តល្អដែលផ្តល់ឱ្យអ្នកនូវភាពស្ងប់ស្ងាត់។ ការជួលអ្នកជំនួយការអនុញ្ញាតឱ្យអ្នកផ្តោតអារម្មណ៍លើអាជីវកម្មស្នូលរបស់អ្នក។ វាក៏ជួយសន្សំប្រាក់អ្នកផងដែរព្រោះអ្នកនឹងមិនត្រូវការក្រុមការងារនៅក្នុងផ្ទះទេ។

តើ​អ្នក​គិត​អ្វី?

តំបន់បណ្ដាញនេះប្រើ Akismet ដើម្បីកាត់បន្ថយសារឥតបានការ។ សិក្សាអំពីរបៀបដែលទិន្នន័យរបស់អ្នកត្រូវបានដំណើរការ.