គំរូគំរូនៃការធ្វើតេស្តរបស់ Agile

យុទ្ធសាស្រ្តសាកល្បងរហ័សរហួន

នៅក្នុងបរិយាកាសដែលមានភាពរហ័សរហួនដែលយើងធ្វើការក្នុងរនាំងខ្លីរឺក៏រនាំងខ្លីៗនីមួយៗផ្តោតលើតំរូវការរឺរឿងរបស់អ្នកប្រើតិចតួចប៉ុណ្ណោះដូច្នេះវាជារឿងធម្មតាទេដែលឯកសារប្រហែលជាមិនទូលំទូលាយទេបើនិយាយពីលេខនិងមាតិកា។

គោលបំណងនៃឯកសារយុទ្ធសាស្រ្តសាកល្បងដែលមានភាពរហ័សរហួនគឺដើម្បីចុះបញ្ជីការអនុវត្តល្អ ៗ និងទម្រង់មួយចំនួននៃរចនាសម្ព័ន្ធដែលក្រុមអាចធ្វើបាន។ សូមចាំថាភាពរហ័សរហួនមិនមែនមានន័យថាគ្មានរចនាសម្ព័ន្ធទេ។

នៅទីនេះយើងក្រឡេកមើលយុទ្ធសាស្រ្តនៃការសាកល្បង Agile គំរូនិងអ្វីដែលត្រូវបញ្ចូលក្នុងឯកសារ។

យុទ្ធសាស្រ្តសាកល្បងជាធម្មតាមានសេចក្តីថ្លែងការណ៍បេសកកម្មមួយដែលអាចទាក់ទងទៅនឹងគោលដៅនិងគោលបំណងអាជីវកម្មកាន់តែទូលំទូលាយ។

សេចក្តីថ្លែងការណ៍បេសកកម្មធម្មតាអាចជាៈ

ផ្តល់ជូននូវកម្មវិធីការងារដែលត្រូវនឹងតំរូវការរបស់អតិថិជន - មធ្យោបាយនៃ _ ការផ្តល់យោបល់លឿន _ និងការការពារជម្ងឺជាជាងការរកឃើញនូវការធ្វើឱ្យខូច។



គាំទ្រដោយ៖


  • គ្មានលេខកូដណាមួយអាចត្រូវបានសរសេរសម្រាប់រឿងមួយទេរហូតដល់យើងកំណត់លក្ខណៈវិនិច្ឆ័យ / ការទទួលយកការធ្វើតេស្តរបស់វាជាមុនសិន

  • រឿងមួយប្រហែលជាមិនត្រូវបានគេចាត់ទុកថាពេញលេញទេរហូតដល់ការធ្វើតេស្តទទួលយកទាំងអស់ឆ្លងកាត់

នៅក្នុងឯកសារយុទ្ធសាស្រ្តតេស្ត៍ Agile ខ្ញុំក៏នឹងបញ្ចូលការរំលឹកដល់អ្នករាល់គ្នាអំពីការធានាគុណភាព


  • QA គឺជាសំណុំនៃសកម្មភាពដែលមានគោលបំណងដើម្បីធានាថាផលិតផលអាចបំពេញតាមតម្រូវការរបស់អតិថិជនតាមរបៀបដែលមានលក្ខណៈជាប្រព័ន្ធនិងអាចទុកចិត្តបាន។


  • នៅក្នុង SCRUM (រហ័សរហួន) QA គឺជាទំនួលខុសត្រូវរបស់មនុស្សគ្រប់គ្នាមិនត្រឹមតែអ្នកសាកល្បងប៉ុណ្ណោះទេ។ QA គឺជាសកម្មភាពទាំងអស់ដែលយើងធ្វើដើម្បីធានាបាននូវគុណភាពត្រឹមត្រូវក្នុងកំឡុងពេលអភិវឌ្ឍផលិតផលថ្មី។

កំរិតតេស្ត

ការធ្វើតេស្តឯកតា

មូលហេតុ៖ ដើម្បីធានាថាលេខកូដត្រូវបានអភិវឌ្ឍត្រឹមត្រូវ

WHO: អ្នកអភិវឌ្ឍន៍ / ស្ថាបត្យករបច្ចេកទេស

អ្វី៖ លេខកូដថ្មីទាំងអស់ + បញ្ចូលកត្តាឡើងវិញនៃលេខកូដមរតកក៏ដូចជាតេស្តអង្គភាព Javascript

ពេលណា​: ដរាបណាកូដថ្មីត្រូវបានសរសេរ

កន្លែងណា៖ ឌឹដេអរ + ស៊ីអាយ (ផ្នែកនៃការស្ថាបនា)

វិធី៖ ស្វ័យប្រវត្តិកម្ម, Junit, TestNG, PHPUnit

API / សេវាកម្មសាកល្បង

មូលហេតុ៖ ដើម្បីធានាបាននូវការប្រាស្រ័យទាក់ទងរវាងសមាសធាតុកំពុងដំណើរការ

WHO: អ្នកអភិវឌ្ឍន៍ / ស្ថាបត្យករបច្ចេកទេស

អ្វី៖ សេវាកម្មគេហទំព័រថ្មីសមាសធាតុឧបករណ៍បញ្ជា។ ល

ពេលណា​: ដរាបណា API ថ្មីត្រូវបានបង្កើតនិងត្រៀមរួចរាល់

កន្លែងណា៖ ឌឹដេអរ + ស៊ីអាយ (ផ្នែកនៃការស្ថាបនា)

វិធី៖ ស្វ័យប្រវត្តិកម្ម, សាប៊ូ UI, ម៉ាស៊ីនភ្ញៀវសម្រាក

ការធ្វើតេស្តទទួលយក

មូលហេតុ៖ ដើម្បីធានាបាននូវការរំពឹងទុករបស់អតិថិជន

WHO: អ្នកអភិវឌ្ឍន៍ / SDET / សៀវភៅដៃ QA

អ្វី៖ ផ្ទៀងផ្ទាត់ការទទួលយកការធ្វើតេស្តលើរឿងរ៉ាវការផ្ទៀងផ្ទាត់លក្ខណៈពិសេស

ពេលណា​: នៅពេលដែលលក្ខណៈពិសេសរួចរាល់ហើយអង្គភាពត្រូវបានសាកល្បង

កន្លែងណា៖ ស៊ីអ៊ី / បរិស្ថានសាកល្បង

វិធី៖ ស្វ័យប្រវត្តិកម្ម (ត្រសក់)

ការធ្វើតេស្តប្រព័ន្ធ / ការធ្វើតេស្តតំរែតំរង់ / យូ

មូលហេតុ៖ ដើម្បីធានាថាប្រព័ន្ធទាំងមូលដំណើរការនៅពេលបញ្ចូលគ្នា

WHO: អេសឌីធី / សៀវភៅដៃ QA / អ្នកវិភាគអាជីវកម្ម / ម្ចាស់ផលិតផល

អ្វី៖ ការសាកល្បងសេណារីយ៉ូលំហូរអ្នកប្រើនិងដំណើរអ្នកប្រើធម្មតាការអនុវត្តន៍និងការធ្វើតេស្តសុវត្ថិភាព

ពេលណា​: នៅពេលការធ្វើតេស្តការទទួលយកត្រូវបានបញ្ចប់

កន្លែងណា៖ បរិស្ថានដំណាក់កាល

វិធី៖ ការសាកល្បងធ្វើអាជីវកម្មស្វ័យប្រវត្តិកម្ម (Webdriver)

លេខកូដផលិតផល

មូលហេតុទូទៅបំផុតនៃការបរាជ័យផ្នែកទន់គឺដោយសារតែតម្រូវការមិនច្បាស់លាស់និងការបកស្រាយខុសគ្នានៃតម្រូវការដោយសមាជិកក្រុមផ្សេងៗគ្នា។

រឿងអ្នកប្រើគួរតែមានលក្ខណៈសាមញ្ញសង្ខេបនិងមិនច្បាស់។ ជាការណែនាំល្អវាជាការល្អបំផុតក្នុងការធ្វើតាមគំរូ INVEST សម្រាប់សរសេររឿងអ្នកប្រើ។

រឿងអ្នកប្រើល្អគួរតែជា៖

ខ្ញុំ ភាពខ្វះខាត (ក្នុងចំណោមអ្នកដទៃទៀត)

អិន egotiable (មិនមែនកិច្ចសន្យាជាក់លាក់សម្រាប់លក្ខណៈពិសេសទេ)

វី មានតម្លៃ (ឬ បញ្ឈរ )

គឺ អាចរំញោចបាន (ដល់ការប៉ាន់ស្មានល្អ)

ផ្សារទំនើប (ដើម្បីឱ្យសមទៅនឹងការនិយាយឡើងវិញ)

ធី អាចជឿទុកចិត្តបាន (ជាគោលការណ៍ទោះបីមិនទាន់មានការសាកល្បងក៏ដោយ)

ទម្រង់ខាងក្រោមគួរតែត្រូវបានប្រើដើម្បីសរសេររឿងរ៉ាវរបស់អ្នកប្រើ

As a [role] I want [feature] So that [benefit]

វាជាការសំខាន់ណាស់ដែលមិនត្រូវភ្លេចផ្នែក“ អត្ថប្រយោជន៍” ព្រោះថាអ្នករាល់គ្នាគួរតែដឹងថាតើពួកគេកំពុងបន្ថែមតម្លៃអ្វីតាមរយៈការអភិវឌ្ឍរឿង។

លក្ខណៈវិនិច្ឆ័យនៃការទទួលយក

រឿងរបស់អ្នកប្រើនីមួយៗត្រូវមានលក្ខណៈវិនិច្ឆ័យទទួលយក។ នេះអាចជាធាតុសំខាន់បំផុតដែលជំរុញឱ្យមានការប្រាស្រ័យទាក់ទងជាមួយសមាជិកក្រុមផ្សេងៗគ្នា។

លក្ខណៈវិនិច្ឆ័យនៃការទទួលយកគួរតែត្រូវបានសរសេរក្នុងពេលតែមួយរឿងអ្នកប្រើត្រូវបានបង្កើតហើយគួរតែត្រូវបានបង្កប់នៅក្នុងតួនៃសាច់រឿង។ លក្ខណៈវិនិច្ឆ័យនៃការទទួលយកទាំងអស់គួរតែត្រូវបានសាកល្បង។

លក្ខណៈវិនិច្ឆ័យនៃការទទួលយកនីមួយៗគួរមានចំនួននៃការទទួលយកដែលត្រូវបានបង្ហាញជាសេណារីយ៉ូដែលបានសរសេរជាទម្រង់ហ្គ្រិនគីនឧ។

Scenario 1: Title Given [context] And [some more context]... When  [event] Then  [outcome] And [another outcome]...

សិក្ខាសាលារឿង / ផែនការ Sprint

នៅក្នុងសិក្ខាសាលារឿងនិមួយៗមនុស្សគ្រប់រូបនៅក្នុងក្រុមសិក្សាអំពីព័ត៌មានលំអិតនៃរឿងរ៉ាវដូច្នេះអ្នកអភិវឌ្ឍន៍និងឃាបានដឹងពីវិសាលភាពការងារ។ មនុស្សគ្រប់គ្នាគួរតែមានការយល់ដឹងដូចគ្នាអំពីរឿងរ៉ាវ។

អ្នកអភិវឌ្ឍន៍គួរតែមានការយល់ដឹងល្អអំពីព័ត៌មានលម្អិតបច្ចេកទេសដែលពាក់ព័ន្ធនឹងការចែកចាយរឿងហើយ QA គួរតែដឹងពីរបៀបដែលរឿងនេះនឹងត្រូវបានសាកល្បងហើយប្រសិនបើមានឧបសគ្គរារាំងការសាកល្បងរឿង។

ការការពារពិការភាព

នៅក្នុងសិក្ខាសាលារឿង។ PO, BA, Dev និង QA ត្រូវតែចូលរួម។

សេណារីយ៉ូ (ករណីត្រឹមត្រូវមិនត្រឹមត្រូវនិងគែម) គួរតែត្រូវបានគេគិត (QA អាចបន្ថែមតម្លៃដ៏ធំនៅទីនេះដោយគិតដោយមិនគិតពីរឿងរ៉ាវ) និងសរសេរជាឯកសារលក្ខណៈ។

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

ដោយសារតែភាពខ្វះចន្លោះភាគច្រើនគឺដោយសារតែតម្រូវការមិនច្បាស់លាស់និងមិនច្បាស់លាស់សកម្មភាពនេះក៏នឹងជួយទប់ស្កាត់ការអនុវត្តអាកប្បកិរិយាមិនត្រឹមត្រូវដូចដែលមនុស្សគ្រប់គ្នាគួរតែមានការយល់ដឹងអំពីសាច់រឿងដូចគ្នា។

ដូចគ្នានេះដែរនៅក្នុងការប្រជុំរៀបចំផែនការពន្លកការប៉ាន់ស្មានដែលបានផ្តល់ឱ្យសម្រាប់រឿងមួយគួរតែរួមបញ្ចូលការខិតខំសាកល្បងក៏ដូចជាមិនត្រឹមតែការខិតខំសរសេរកូដប៉ុណ្ណោះទេ។ QA (ដោយដៃនិងស្វ័យប្រវត្តិកម្ម) ក៏ត្រូវតែមានផងដែរ នៅក្នុងការប្រជុំធ្វើផែនការពន្លឿនដើម្បីផ្តល់ការប៉ាន់ស្មានសម្រាប់ការសាកល្បងរឿង។

ការអភិវឌ្ឍន៍

នៅពេលការអភិវឌ្ឍចាប់ផ្តើមកូដផលិតកម្មថ្មីនិង / ឬការកែប្រែលេខកូដមរតកគួរតែត្រូវបានគាំទ្រដោយ ការធ្វើតេស្តឯកតាដែលសរសេរដោយអ្នកអភិវឌ្ឍន៍ និងការពិនិត្យមើលឡើងវិញដោយអ្នកអភិវឌ្ឍន៍ម្នាក់ទៀតឬ SDET ជំនាញ។

រាល់ការប្តេជ្ញាចិត្តចំពោះឃ្លាំងកូដគួរតែកេះការប្រតិបត្តិនៃការធ្វើតេស្តឯកតាពីម៉ាស៊ីនមេស៊ីអាយអេស។ នេះផ្តល់នូវយន្តការផ្តល់យោបល់ត្រឡប់យ៉ាងឆាប់រហ័សដល់ក្រុមអភិវឌ្ឍន៍។

ការធ្វើតេស្តឯកតាធានាថាប្រព័ន្ធដំណើរការនៅកម្រិតបច្ចេកទេសហើយមិនមានកំហុសក្នុងតក្កវិជ្ជាទេ។

ការសាកល្បងអ្នកអភិវឌ្ឍន៍

ក្នុងនាមជាអ្នកអភិវឌ្ឍន៍សូមប្រព្រឹត្ដដូចជាអ្នកមិនមាន QA ណាមួយនៅក្នុងក្រុមឬអង្គការ។ វាជាការពិតដែលថា QAs មានផ្នត់គំនិតខុសគ្នាប៉ុន្តែអ្នកគួរតែសាកល្បងឱ្យអស់ពីសមត្ថភាពរបស់អ្នក។

អ្នកគិតថាអ្នកសន្សំសំចៃពេលវេលាដោយការបន្តទៅរឿងបន្ទាប់ទៀតប៉ុន្តែតាមពិតនៅពេលរកឃើញកំហុសហើយត្រូវរាយការណ៍វាត្រូវការពេលយូរដើម្បីកែសំរួលបញ្ហានេះជាងការចំណាយពេលពីរបីនាទីដើម្បីប្រាកដថាមុខងារនេះល្អ។

លេខកូដថ្មីណាមួយនិង / ឬការកែលេខកូដមរតកគួរតែមានការធ្វើតេស្តឯកតាសមស្របដែលនឹងជាផ្នែកមួយនៃតេស្តតំរែតំរង់ឯកតា។

ការធ្វើតេស្តទទួលយកដោយស្វ័យប្រវត្តិនិងការធ្វើតេស្តមិនមានមុខងារ

ការធ្វើតេស្តទទួលយកដោយស្វ័យប្រវត្តិរួមមានតេស្តសមាហរណកម្មនិងតេស្តសេវាកម្មនិងតេស្ត UI ដែលមានគោលបំណងដើម្បីបញ្ជាក់ថាកម្មវិធីដំណើរការនៅកម្រិតមុខងារហើយវាឆ្លើយតបនឹងតម្រូវការនិងលក្ខណៈជាក់លាក់របស់អ្នកប្រើប្រាស់។

ការធ្វើតេស្តទទួលយកដោយស្វ័យប្រវត្តិត្រូវបានសរសេរជាភាសា Gherkin ហើយប្រតិបត្តិដោយប្រើឧបករណ៍ BDD ដូចជាត្រសក់។

ចងចាំមិនមានការធ្វើតេស្តទាំងអស់មិនចាំបាច់ធ្វើស្វ័យប្រវត្តិកម្មទេ!

ដោយសារតែការធ្វើតេស្តទាំងនេះទាមទារការប្រាស្រ័យទាក់ទងជាញឹកញាប់ HTTP ពួកគេត្រូវការប្រតិបត្តិតាមពាក្យសុំដែលដាក់ពង្រាយជាជាងដំណើរការជាផ្នែកនៃសំណង់។

ការធ្វើតេស្តមិនមានមុខងារ ដូចជាការធ្វើតេស្តសមិទ្ធផលនិងសន្តិសុខមានសារៈសំខាន់ដូចការធ្វើតេស្តមុខងារដូច្នេះចាំបាច់ត្រូវតែប្រតិបត្តិលើការដាក់ពង្រាយនីមួយៗ។

តេស្តសមិទ្ធផលនានាគួរតែត្រួតពិនិត្យលើលទ្ធផលនៃការអនុវត្តនីមួយៗដើម្បីធានាថាគ្មានការចុះខ្សោយនៃដំណើរការ។

តេស្តសុវត្ថិភាពគួរតែពិនិត្យរកភាពងាយរងគ្រោះផ្នែកសុវត្ថិភាពមូលដ្ឋានដែលបានមកពី OWASP

វាចាំបាច់ណាស់ដែលនេះគួរតែជាដំណើរការស្វ័យប្រវត្តិកម្មទាំងស្រុងជាមួយនឹងការថែទាំតិចតួចបំផុតដើម្បីទទួលបានអត្ថប្រយោជន៍ច្រើនបំផុតពីការដាក់ពង្រាយស្វ័យប្រវត្តិ។ នេះមានន័យថាមិនគួរមានការខកខានក្នុងការសាកល្បងមិនទៀងទាត់បញ្ហាស្គ្រីបសាកល្បងនិងបរិស្ថានដែលខូច។

ការបរាជ័យគួរតែកើតឡើងដោយសារតែកំហុសកូដពិតប្រាកដជាជាងបញ្ហាស្គ្រីបដូច្នេះរាល់ការបរាជ័យដែលមិនកើតឡើងដោយសារការបរាជ័យពិតប្រាកដគួរតែត្រូវបានជួសជុលភ្លាមៗឬដកចេញពីកញ្ចប់ស្វ័យប្រវត្តិកម្មដើម្បីអាចទទួលបានលទ្ធផលជាប់លាប់។

ការធ្វើតេស្តតំរែតំរង់

មិនរំពឹងថានឹងរកឃើញពិការភាពជាច្រើន។ គោលបំណងរបស់ពួកគេគឺគ្រាន់តែផ្តល់នូវមតិប្រតិកម្មដែលយើងមិនបានធ្វើឱ្យខូចមុខងារសំខាន់ៗ។ វាគួរតែមានចំនួនតិចតួចនៃការធ្វើតេស្តតំរែតំរង់ដោយដៃ។

កញ្ចប់ផ្សែង - មិនគួរលើសពី 15 នាទី

កញ្ចប់នេះមានតែមុខងារកម្រិតខ្ពស់ប៉ុណ្ណោះដើម្បីប្រាកដថាកម្មវិធីមានស្ថេរភាពគ្រប់គ្រាន់សម្រាប់ការអភិវឌ្ឍឬការសាកល្បងបន្តទៀត។

ឧទាហរណ៍សម្រាប់គេហទំព័រអេឡិចត្រូនិកការធ្វើតេស្តដែលបានបញ្ចូលក្នុងកញ្ចប់នេះអាចជាៈ

  • ស្វែងរកផលិតផល,
  • ការពិនិត្យផលិតផល
  • ទិញរបស់របរ
  • ការបង្កើតគណនី / ចូលគណនី

កញ្ចប់តំរែតំរង់ពេញលេញ - គួរតែមិនលើសពី 1 ម៉ោង

កញ្ចប់នេះមានឈុតសាកល្បងតំរែតំរង់ពេញលេញនិងមានអ្វីៗផ្សេងទៀតដែលមិនមាននៅក្នុងកញ្ចប់ផ្សែង។

នៅទីនេះគោលដៅគឺដើម្បីទទួលបានមតិប្រតិកម្មរហ័សជាមួយនឹងការធ្វើតេស្តធំ ៗ ។ ប្រសិនបើមតិប្រតិកម្មចំណាយពេលលើសពី 1 ម៉ោងវាមិនលឿនទេ។ កាត់បន្ថយចំនួនតេស្តដោយប្រើបច្ចេកទេសតេស្តគូគូបង្កើតកញ្ចប់តេស្តដោយផ្អែកលើហានិភ័យឬដំណើរការតេស្តដំណាលគ្នា។

ការធ្វើតេស្ត UAT និងការរុករក

គ្មានហេតុផលណាដែល UAT និងការសាកល្បងរុករកមិនអាចដំណើរការស្របគ្នានឹងការធ្វើតេស្តទទួលយកដោយស្វ័យប្រវត្តិ។ យ៉ាងណាមិញពួកគេគឺជាសកម្មភាពខុសគ្នាហើយមានគោលបំណងស្វែងរកបញ្ហាផ្សេងៗគ្នា។ គោលបំណងរបស់យូតាគឺដើម្បីធានាថាលក្ខណៈពិសេសដែលបានអភិវឌ្ឍធ្វើឱ្យមានអារម្មណ៍អាជីវកម្មនិងមានប្រយោជន៍ដល់អតិថិជន។

PO (ម្ចាស់ផលិតផល) គួរតែដំណើរការសាកល្បងការទទួលយកអ្នកប្រើ ឬការធ្វើតេស្តទទួលយកអាជីវកម្មដើម្បីបញ្ជាក់ផលិតផលដែលបានសាងសង់គឺជាអ្វីដែលបានរំពឹងទុកហើយវាឆ្លើយតបទៅនឹងការរំពឹងទុករបស់អ្នកប្រើប្រាស់។

ការសាកល្បងរុករកគួរតែផ្តោតលើសេណារីយ៉ូអ្នកប្រើហើយគួរតែរកឃើញកំហុសដែលស្វ័យប្រវត្តិកម្មខកខាន។ ការសាកល្បងរុករកមិនគួររកឃើញកំហុសតូចតាចទេផ្ទុយទៅវិញវាគួរតែរកឃើញបញ្ហាមិនច្បាស់។

លក្ខណៈវិនិច្ឆ័យរួចរាល់

នៅពេលសកម្មភាពទាំងអស់ខាងលើត្រូវបានបញ្ចប់ហើយមិនមានបញ្ហាអ្វីត្រូវបានរកឃើញនោះទេ រួចរាល់ហើយ!

ខាងលើនេះគឺជាគោលការណ៍ណែនាំមួយចំនួនស្តីពីអ្វីដែលអាចដាក់បញ្ចូលក្នុងឯកសារយុទ្ធសាស្រ្តតេស្តរបស់ Agile ។ ជាក់ស្តែងវាចាំបាច់ត្រូវតាមតំរូវការរបស់អង្គភាពរបស់អ្នកប៉ុន្តែសង្ឃឹមថាគំរូនេះនឹងជួយអ្នកក្នុងការបង្កើតឯកសារយុទ្ធសាស្រ្តតេស្ត៍ Agile ផ្ទាល់ខ្លួនរបស់អ្នក។