TDD និង BDD ក្នុងយុគសម័យ AI៖ ហេតុអ្វី AI Agent ទាមទារការអភិវឌ្ឍដោយសរសេរតេស្តជាមុន ១០០% ច្រើនជាងមុន
ទិដ្ឋភាពនៃការអភិវឌ្ឍកម្មវិធីបានផ្លាស់ប្តូរជាមូលដ្ឋាន។ AI agent មិនត្រឹមតែសរសេរកូដប៉ុណ្ណោះទេ ពួកវាកំពុងក្លាយជាអ្នកអភិវឌ្ឍចម្បងក្នុងក្រុមការងាររបស់យើង។ ការប្តូរគំរូនេះតម្រូវឱ្យគិតឡើងវិញយ៉ាងធ្ងន់ធ្ងរអំពីរបៀបធ្វើតេស្ត។ ការអភិវឌ្ឍដោយបើកដោយតេស្ត (Test-Driven Development ឬ TDD) និងការអភិវឌ្ឍដោយផ្អែកលើឥរិយាបថ (Behavior-Driven Development ឬ BDD) ដែលកាលពីមុនត្រូវបានចាត់ទុកជាការអនុវត្តល្អដែលអាចជ្រើសរើសបាន ឥឡូវបានក្លាយជាវិន័យដ៏សំខាន់បំផុតក្នុងយុគសម័យនៃការអភិវឌ្ឍដោយ AI។
ភាគហ៊ុនមិនដែលខ្ពស់ដូចសព្វថ្ងៃទេ។ ការសិក្សាបង្ហាញថា ៦០-៨០% នៃថ្លៃដើមអភិវឌ្ឍកម្មវិធីបណ្តាលមកពីការធ្វើឡើងវិញ ហើយការគ្រប់គ្រងតម្រូវការប្រកបដោយប្រសិទ្ធភាពអាចលុបបំបាត់បាន ៥០-៨០% នៃកំហុសក្នុងគម្រោង។ ជាមួយ AI agent ដែលបង្កើតកូដក្នុងល្បឿនមិនធ្លាប់មាន ថ្លៃដើមនៃការយល់ខុសអំពីតម្រូវការកើនឡើងជាអិចស្ប៉ូណង់ស្យែល។ TDD និង BDD ផ្តល់នូវរបងការពារដែលរក្សាការអភិវឌ្ឍដោយ AI ឱ្យនៅលើផ្លូវត្រូវ។
ហេតុអ្វី AI Agent ធ្វើឱ្យ TDD ក្លាយជាកាតព្វកិច្ចដែលមិនអាចចរចា
បញ្ហានៃភាពមិនកំណត់ច្បាស់លាស់
ការអភិវឌ្ឍដោយ 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
វដ្ត 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 ម្តងមួយផ្នែក។
- វាស់ឥទ្ធិពល៖ តាមដានអត្រាកំហុស ល្បឿនអភិវឌ្ឍ និងការពេញចិត្តរបស់ក្រុម។
- ធ្វើម្តងទៀត៖ កែលម្អដំណើរការតាមតម្រូវការរបស់ក្រុម និងដែនការងារ។
អនាគតនៃការអភិវឌ្ឍកម្មវិធីគឺសរសេរតេស្តជាមុន។ ឧបករណ៍មានរួចហើយ។ អត្ថប្រយោជន៍ត្រូវបានបញ្ជាក់ច្បាស់។ ពេលវេលាសម្រាប់ចាប់ផ្តើមគឺឥឡូវនេះ។
វាលែងដូចនេះទៀតហើយ
វាប្រៀបដូចជារង្វង់កាន់តែច្រើនជាង