TDD និង BDD ក្នុងយុគសម័យ AI៖ ហេតុអ្វី AI Agent ទាមទារការអភិវឌ្ឍដោយសរសេរតេស្តជាមុន ១០០% ច្រើនជាងមុន

ទិដ្ឋភាពនៃការអភិវឌ្ឍកម្មវិធីបានផ្លាស់ប្តូរជាមូលដ្ឋាន។ AI agent មិនត្រឹមតែសរសេរកូដប៉ុណ្ណោះទេ ពួកវាកំពុងក្លាយជាអ្នកអភិវឌ្ឍចម្បងក្នុងក្រុមការងាររបស់យើង។ ការប្តូរគំរូនេះតម្រូវឱ្យគិតឡើងវិញយ៉ាងធ្ងន់ធ្ងរអំពីរបៀបធ្វើតេស្ត។ ការអភិវឌ្ឍដោយបើកដោយតេស្ត (Test-Driven Development ឬ TDD) និងការអភិវឌ្ឍដោយផ្អែកលើឥរិយាបថ (Behavior-Driven Development ឬ BDD) ដែលកាលពីមុនត្រូវបានចាត់ទុកជាការអនុវត្តល្អដែលអាចជ្រើសរើសបាន ឥឡូវបានក្លាយជាវិន័យដ៏សំខាន់បំផុតក្នុងយុគសម័យនៃការអភិវឌ្ឍដោយ AI។

ភាគហ៊ុនមិនដែលខ្ពស់ដូចសព្វថ្ងៃទេ។ ការសិក្សាបង្ហាញថា ៦០-៨០% នៃថ្លៃដើមអភិវឌ្ឍកម្មវិធីបណ្តាលមកពីការធ្វើឡើងវិញ ហើយការគ្រប់គ្រងតម្រូវការប្រកបដោយប្រសិទ្ធភាពអាចលុបបំបាត់បាន ៥០-៨០% នៃកំហុសក្នុងគម្រោង។ ជាមួយ AI agent ដែលបង្កើតកូដក្នុងល្បឿនមិនធ្លាប់មាន ថ្លៃដើមនៃការយល់ខុសអំពីតម្រូវការកើនឡើងជាអិចស្ប៉ូណង់ស្យែល។ TDD និង BDD ផ្តល់នូវរបងការពារដែលរក្សាការអភិវឌ្ឍដោយ AI ឱ្យនៅលើផ្លូវត្រូវ។

ហេតុអ្វី AI Agent ធ្វើឱ្យ TDD ក្លាយជាកាតព្វកិច្ចដែលមិនអាចចរចា

Traditional vs AI-Powered TDD comparison chart with features listed.

 

បញ្ហានៃភាពមិនកំណត់ច្បាស់លាស់

ការអភិវឌ្ឍដោយ AI នាំមកនូវបញ្ហាប្រឈមជាមូលដ្ឋានមួយ គឺភាពមិនកំណត់ច្បាស់លាស់ (non-determinism)។ មិនដូចការអភិវឌ្ឍបែបប្រពៃណីដែលធាតុចូលដូចគ្នាផ្តល់លទ្ធផលដូចគ្នា AI agent អាចបង្កើតដំណោះស្រាយកូដខុសគ្នាស្រឡះសម្រាប់ prompt ដូចគ្នា។ ភាពប្រែប្រួលនេះ ទោះបីជួយឱ្យដោះស្រាយបញ្ហាបានយ៉ាងច្នៃប្រឌិតក៏ដោយ ក៏បង្កើតជាសុបិនអាក្រក់នៃការត្រួតពិនិត្យគុណភាព ប្រសិនបើគ្មានហេដ្ឋារចនាសម្ព័ន្ធធ្វើតេស្តត្រឹមត្រូវ។

ដូចដែល Eric Elliott បានកត់សម្គាល់ក្នុងការងាររបស់គាត់អំពីការអភិវឌ្ឍដោយ AI៖ «AIDD មិនកំណត់ច្បាស់លាស់ ហើយ prompt ខុសគ្នាអាចនាំទៅរកលទ្ធផលខុសគ្នាស្រឡះ។ នេះជារឿងល្អ ព្រោះវាអនុញ្ញាតឱ្យអ្នកស្វែងរកវិធីសាស្ត្រផ្សេងៗចំពោះបញ្ហាតែមួយ ដើម្បីរកដំណោះស្រាយល្អបំផុត។ ទោះយ៉ាងណា វាក៏អាចជាបញ្ហាប្រឈមក្នុងការធានាថាកូដដែលបង្កើតឡើងគឺត្រឹមត្រូវ»។

រង្វិលតបស្នងលឿនជាសំណាញ់សុវត្ថិភាព

TDD ផ្តល់លក្ខណៈវិនិច្ឆ័យបញ្ចប់ដែលកំណត់ច្បាស់លាស់សម្រាប់ AI agent។ ជំនួសឱ្យការពឹងលើការវិនិច្ឆ័យរបស់ AI ថាពេលណាកូដ «ហើយ» តេស្តបង្ខំឱ្យ agent ធ្វើម្តងទៀតរហូតដល់តម្រូវការទាំងអស់ជាប់។ នេះបង្កើតជារង្វិលតបស្នងបន្តបន្ទាប់ ដែលតេស្តដឹកនាំ AI ឆ្ពោះទៅរកការអនុវត្តត្រឹមត្រូវ ដោយចាប់បានភាពភ្លាំងភ្លាត់ (hallucination) និងកំហុសតក្កវិជ្ជា មុនពេលវាកកកុញ។

Simon Willison ដែលជាសំឡេងលេចធ្លោក្នុងវិស័យអភិវឌ្ឍដោយ AI បានសង្កត់ធ្ងន់ថា៖ «តេស្តផ្តល់ឱ្យយើងនូវលក្ខណៈវិនិច្ឆ័យបញ្ចប់ដែលអាចទុកចិត្តបាន។ យើងមិនពឹងលើចិត្តចង់របស់ AI agent ទេ ប៉ុន្តែយើងបង្ខំវាឱ្យធ្វើម្តងទៀតរហូតដល់តេស្តដែលធ្លាប់ខុសមុនជាប់»។

ក្របខ័ណ្ឌ TDD សម្រាប់យុគ AI៖ Test → Drive → Develop

 

TEST, DRIVE, DEVELOP cycle graphic with red, yellow, green circles.

វដ្ត Red-Green-Refactor បែបប្រពៃណីរបស់ TDD បានវិវត្តសម្រាប់យុគ AI។ នេះជាគំរូថ្មីដែលធ្វើឱ្យ AI agent មានផលិតភាព និងគួរឱ្យទុកចិត្ត៖

  • TEST (តេស្ត)៖ បំប្លែង PRD ទៅជាតេស្តទទួលយកស្វ័យប្រវត្តិជាមុនសិន
    • សរសេរតេស្តព្រាងពីការបញ្ជាក់ក្នុង PRD៖ AI agent ពូកែបំប្លែងតម្រូវការជាភាសាធម្មជាតិទៅជាគ្រោងតេស្ត។ ឧទាហរណ៍ ផ្នែក PRD ដែលថា «ការចូលគណនីអ្នកប្រើត្រូវតែគាំទ្រ 2FA» AI អាចបង្កើតករណីតេស្តទូលំទូលាយ ដែលគ្របដណ្តប់ផ្លូវធម្មតា ករណីពិសេស និងលក្ខខណ្ឌកំហុស។
    • ការកែលម្អដោយមនុស្ស៖ អ្នកអភិវឌ្ឍ និងវិស្វករ QA ពិនិត្យតេស្តដែល AI បង្កើត ដើម្បីភាពពេញលេញ ភាពត្រឹមត្រូវនៃតក្កវិជ្ជាអាជីវកម្ម និងការពិចារណាអំពីសុវត្ថិភាពដែល AI អាចខកខាន។
    • ប្រើទម្រង់ Given-When-Then៖ សរសេរលក្ខណៈវិនិច្ឆ័យទទួលយកតាមរបៀប BDD ដើម្បីភាពច្បាស់លាស់។
  • DRIVE (ដឹកនាំ)៖ ដំណើរការអភិវឌ្ឍដែលដឹកនាំដោយតេស្ត
    • AI agent ទទួលបាន test suite ជាធាតុចូលចម្បង ជំនួសឱ្យ prompt ស្រពេចស្រពិល។
    • ការកែលម្អម្តងហើយម្តងទៀតដោយ AI ជាមួយឧបករណ៍ដូចជា Cursor, Claude Code និង GitHub Copilot ដើម្បីអនុវត្តរង្វិលនេះដោយស្វយ័ត។
    • សមត្ថភាពជួសជុលខ្លួនឯង៖ agent កម្រិតខ្ពស់ធ្វើបច្ចុប្បន្នភាពតេស្តដោយស្វ័យប្រវត្តិ ឱ្យត្រូវនឹងការផ្លាស់ប្តូរ UI។
  • DEVELOP (អភិវឌ្ឍ)៖ ឈប់នៅពេលតេស្តទាំងអស់ជាប់
    • តេស្តឯកតាស្វ័យប្រវត្តិ៖ ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនៃមុខងារនីមួយៗ និងតក្កវិជ្ជាអាជីវកម្ម។
    • តេស្តទទួលយកមុខងារ៖ ផ្ទៀងផ្ទាត់លំហូរអ្នកប្រើពីដើមដល់ចប់ និងការរួមបញ្ចូលប្រព័ន្ធ។
    • តេស្តតំរែតំរង់ដែលមើលឃើញ (visual regression)៖ ឧបករណ៍ AI ចាប់ភាពមិនស៊ីសង្វាក់នៃ UI ដោយប្រើ computer vision។
    • ការអនុម័តចុងក្រោយដោយ QA/QC មនុស្ស៖ ការផ្ទៀងផ្ទាត់ចុងក្រោយនៃបទពិសោធន៍អ្នកប្រើ និងករណីពិសេស ដោយ QA ជាមនុស្ស។

 

BDD៖ ពីការសន្យាដែលបាក់បែក ទៅជាការពិតដែលដំណើរការដោយ AI

បញ្ហាប្រឈមក្នុងប្រវត្តិសាស្ត្រ

ការអភិវឌ្ឍដោយផ្អែកលើឥរិយាបថបានសន្យាថានឹងមានភាសារួមមួយ ដែលភ្ជាប់ក្រុមផលិតផល ក្រុមអភិវឌ្ឍ និងក្រុម QA ចូលគ្នា។ ក្នុងការអនុវត្តជាក់ស្តែង វាតែងតែធ្លាក់ទៅជាសកម្មភាព QA ដាច់ដោយឡែក។ ការសរសេរសេណារីយ៉ូ Gherkin តម្រូវឱ្យមានជំនាញបច្ចេកទេស ការថែទាំ step definition ក្លាយជាបន្ទុកធ្ងន់ ហើយអត្ថប្រយោជន៍នៃការសហការមិនដែលកើតឡើងពិតប្រាកដទេ។

AI ផ្លាស់ប្តូរអ្វីៗទាំងអស់

AI លុបបំបាត់របាំងបច្ចេកទេសដែលធ្លាប់រារាំង BDD។ ឥឡូវនេះអ្នកគ្រប់គ្រងផលិតផលអាចសរសេរសេណារីយ៉ូជាភាសាធម្មជាតិ ហើយ AI បកប្រែវាទៅជាតេស្តដែលអាចដំណើរការបានដោយស្វ័យប្រវត្តិ។ ការសហការ «three amigos» (ផលិតផល អ្នកអភិវឌ្ឍ QA) ទីបំផុតអាចកើតឡើងដោយគ្មានអ្នកយាមទ្វារខាងបច្ចេកទេស។

  • ពីភាសាធម្មជាតិទៅតេស្ត៖ AI អាចបង្កើត test suite ពេញលេញពីសេណារីយ៉ូជាភាសាអង់គ្លេសធម្មតា ដោយមានភាពត្រឹមត្រូវខ្ពស់។
  • ការយល់ដឹងតាមន័យ៖ កម្មវិធីរត់តេស្តដែលដំណើរការដោយ AI រកឃើញធាតុ UI តាមបរិបទ ជំនួសឱ្យ CSS selector ដែលងាយបែក។
  • ឯកសារដែលនៅរស់៖ សេណារីយ៉ូ BDD ដើរតួជាឯកសារដែលទាន់សម័យជានិច្ច ដែលទាំងដំណើរការ និងកត់ត្រាឥរិយាបថរបស់ប្រព័ន្ធ។

ការអនុវត្ត TDD/BDD ដែលដំណើរការដោយ AI៖ មគ្គុទ្ទេសក៍ជាក់ស្តែង

ដំណាក់កាលទី ១៖ ការរៀបចំមូលដ្ឋាន

  • ជ្រើសរើសក្របខ័ណ្ឌតេស្តរបស់អ្នក
    • តេស្តឯកតា៖ Jest, Pytest, JUnit
    • តេស្ត BDD៖ Cucumber, SpecFlow, Behave
    • តេស្តដែលមើលឃើញ៖ Percy, Applitools, Chromatic
    • តេស្ត E2E៖ Playwright, Cypress
  • រួមបញ្ចូលឧបករណ៍ AI
    • ប្រើជំនួយការសរសេរកូដ AI ដូចជា Cursor, Claude Code ឬ GitHub Copilot។
    • កំណត់រចនាសម្ព័ន្ធ AI agent ជាមួយបរិបទអំពីក្របខ័ណ្ឌតេស្ត និងសន្ធិសញ្ញារបស់អ្នក។
    • រៀបចំ CI/CD pipeline ឱ្យរត់តេស្តដោយស្វ័យប្រវត្តិរាល់ពេល commit។

ដំណាក់កាលទី ២៖ លំហូរការងារ TDD

  • ជំហានទី ១៖ ពី PRD ទៅតេស្ត
    • ឧទាហរណ៍៖ ការបង្កើតមុខងារកន្ត្រកទិញទំនិញ
  • ជំហានទី ២៖ ការពិនិត្យ និងកែលម្អដោយមនុស្ស
    • ធានាភាពត្រឹមត្រូវនៃតក្កវិជ្ជាអាជីវកម្ម ការពិចារណាអំពីសុវត្ថិភាព ករណីពិសេស និងស្តង់ដារដាក់ប្រៀបធៀបប្រសិទ្ធភាព។
  • ជំហានទី ៣៖ ការអនុវត្តដោយ AI
    • ណែនាំ AI ឱ្យអនុវត្តមុខងារ ហើយធ្វើម្តងទៀតរហូតដល់តេស្តជាប់។
  • ជំហានទី ៤៖ ការផ្ទៀងផ្ទាត់បន្តបន្ទាប់
    • រួមមានការរត់ test suite ស្វ័យប្រវត្តិ ការប្រៀបធៀប visual regression ការដាក់ប្រៀបធៀបប្រសិទ្ធភាព និងអ្វីៗជាច្រើនទៀត។

ការវាស់វែងភាពជោគជ័យ៖ ឥទ្ធិពលនៃ TDD ដែលដំណើរការដោយ AI

ទិន្នន័យនិយាយដោយខ្លួនឯង

ការស្រាវជ្រាវ និងរបាយការណ៍ឧស្សាហកម្មបង្ហាញភស្តុតាងដ៏ទាក់ទាញសម្រាប់ការអភិវឌ្ឍដោយសរសេរតេស្តជាមុនជាមួយ AI៖

  • ការកាត់បន្ថយកំហុស
    • TDD បង្កើតកំហុសតិចជាង ៤០-៨០% បើធៀបនឹងការសរសេរតេស្តក្រោយ។
    • TDD ដែលដំណើរការដោយ AI ចាប់បាន regression នៅពេល commit ដោយរក្សាបាន main branch ឱ្យអាចចេញផ្សាយបានជានិច្ច។
  • ល្បឿនអភិវឌ្ឍ
    • AI អាចបង្កើត test suite លឿនជាងការសរសេរដោយដៃ ១០ដង។
  • ផលិតភាពក្រុម
    • អ្នកអភិវឌ្ឍចំណាយពេលតិចជាងលើការស្វែងរកកំហុស និងច្រើនជាងលើការបង្កើតមុខងារ។

ការជៀសវាងអន្ទាក់ទូទៅ

ទោះបី TDD/BDD ដែលដំណើរការដោយ AI ផ្តល់អត្ថប្រយោជន៍ដ៏ធំធេង ក្រុមជាច្រើនតែជួបបញ្ហាប្រឈមទាំងនេះ៖

  • អន្ទាក់ទី ១៖ ការទុកចិត្តតេស្តដែល AI បង្កើតហួសហេតុ
    • ដំណោះស្រាយ៖ ត្រូវឱ្យអ្នកអភិវឌ្ឍមានបទពិសោធន៍ពិនិត្យតេស្តដែល AI បង្កើតជានិច្ច។
  • អន្ទាក់ទី ២៖ ការធ្វើតេស្តលើការអនុវត្ត ជំនួសឱ្យឥរិយាបថ
    • ដំណោះស្រាយ៖ ផ្តោតតេស្តលើឥរិយាបថ និងលទ្ធផលដែលអាចសង្កេតបាន។
  • អន្ទាក់ទី ៣៖ ការរំលងវដ្តពិនិត្យដោយមនុស្ស
    • ដំណោះស្រាយ៖ QA ជាមនុស្សត្រូវតែផ្ទៀងផ្ទាត់បទពិសោធន៍អ្នកប្រើ ភាពអាចចូលប្រើបាន និងសេណារីយ៉ូ។
  • អន្ទាក់ទី ៤៖ ការធ្វេសប្រហែសក្នុងការថែទាំតេស្ត
    • ដំណោះស្រាយ៖ ប្រើសមត្ថភាពជួសជុលខ្លួនឯងរបស់ AI ដើម្បីធ្វើបច្ចុប្បន្នភាពតេស្តដោយស្វ័យប្រវត្តិនៅពេលមានការផ្លាស់ប្តូរ។

ប្រព័ន្ធអេកូ AI-TDD៖ ឧបករណ៍សំខាន់ៗ

  • ជំនួយការសរសេរកូដ AI
    • Cursor
    • Claude Code
    • GitHub Copilot
  • ក្របខ័ណ្ឌ BDD
    • Cucumber
    • SpecFlow
    • Behave
  • វេទិកាតេស្តដែលមើលឃើញ
    • Percy (BrowserStack)
    • Applitools
    • Chromatic
  • វេទិកាស្វ័យប្រវត្តិកម្មតេស្ត
    • Playwright
    • Cypress
    • TestRigor
  • វេទិកាតេស្ត AI
    • Functionize
    • Momentic
    • Agentforce Testing Center

អនាគតគឺសរសេរតេស្តជាមុន

ការរួមគ្នានៃ AI agent និងការអភិវឌ្ឍដោយបើកដោយតេស្ត តំណាងឱ្យការផ្លាស់ប្តូរជាមូលដ្ឋានក្នុងរបៀបដែលកម្មវិធីត្រូវបានបង្កើត។ TDD និង BDD មិនមែនជាការអនុវត្តល្អដែលអាចជ្រើសរើសបានទៀតទេ វាជាវិន័យចាំបាច់ដើម្បីទាញយកថាមពលរបស់ AI ខណៈរក្សាគុណភាព និងភាពអាចទុកចិត្តបាន។

ចំណុចសំខាន់ៗ៖

  • ភាពមិនកំណត់ច្បាស់លាស់របស់ AI ធ្វើឱ្យតេស្តជាអ្វីដែលចាំបាច់។
  • ដំណើរការ Test → Drive → Develop៖ បំប្លែង PRD ទៅជាតេស្តជាមុនសិន ប្រើតេស្តដើម្បីដឹកនាំការអភិវឌ្ឍ។
  • ការសន្យារបស់ BDD ក្លាយជាការពិត៖ AI លុបបំបាត់របាំងបច្ចេកទេស ធ្វើឱ្យ BDD អាចចូលប្រើបាន។
  • ស្វ័យប្រវត្តិកម្មក្នុងមាត្រដ្ឋានធំ៖ AI អាចបង្កើត និងថែទាំតេស្តបានលឿនជាងមុន ប៉ុន្តែការវិនិច្ឆ័យរបស់មនុស្សនៅតែជាកត្តាសំខាន់។
  • ការគ្របដណ្តប់ទូលំទូលាយ៖ ផ្សំតេស្តឯកតា តេស្តមុខងារ តេស្ត visual regression និង QA ជាមនុស្ស។

ដូចដែល Kent Beck បានមានប្រសាសន៍ថា៖ «កូដស្អាតដែលដំណើរការ គឺជាគោលដៅ។ TDD គ្រាន់តែជាវិន័យដែលនាំយើងទៅដល់ទីនោះ»។ ក្នុងយុគ AI វិន័យនោះមិនដែលសំខាន់ដូចសព្វថ្ងៃទេ។ តាមរយៈការទទួលយកការអភិវឌ្ឍដោយសរសេរតេស្តជាមុន សក្តានុពលរបស់ AI ត្រូវបានដោះសោ ខណៈរក្សាគុណភាព ភាពអាចទុកចិត្តបាន និងទំនុកចិត្តដែលកម្មវិធីសម័យទំនើបទាមទារ។

ចាប់ផ្តើម

  • ចាប់ផ្តើមពីតូច៖ ជ្រើសរើសមុខងារមួយ ហើយប្រើជំនួយ AI សម្រាប់ការអភិវឌ្ឍដោយសរសេរតេស្តជាមុន។
  • វិនិយោគលើការបណ្តុះបណ្តាល៖ ធានាថាក្រុមយល់ពីគោលការណ៍ TDD និងសមត្ថភាពរបស់ឧបករណ៍ AI។
  • កសាងបន្តិចម្តងៗ៖ បន្ថែមស្វ័យប្រវត្តិកម្មតេស្តទៅក្នុង CI/CD pipeline ម្តងមួយផ្នែក។
  • វាស់ឥទ្ធិពល៖ តាមដានអត្រាកំហុស ល្បឿនអភិវឌ្ឍ និងការពេញចិត្តរបស់ក្រុម។
  • ធ្វើម្តងទៀត៖ កែលម្អដំណើរការតាមតម្រូវការរបស់ក្រុម និងដែនការងារ។
Person at laptop with robot, words TDD, BDD, and a checkmark.

អនាគតនៃការអភិវឌ្ឍកម្មវិធីគឺសរសេរតេស្តជាមុន។ ឧបករណ៍មានរួចហើយ។ អត្ថប្រយោជន៍ត្រូវបានបញ្ជាក់ច្បាស់។ ពេលវេលាសម្រាប់ចាប់ផ្តើមគឺឥឡូវនេះ។

វាលែងដូចនេះទៀតហើយ

Venn diagram with overlapping circles labeled Automated Tests, Executable Specifications, Living Documentation.

វាប្រៀបដូចជារង្វង់កាន់តែច្រើនជាង

Overlapping pastel colored circles in a Venn diagram.
Overlapping pastel colored circles in a Venn diagram.

 

 

 

 

 

 

 

 

 

Overlapping pastel colored circles in a Venn diagram.