Tue Jan 07 2025 • 3 mins read
Developer တော်တော်များများဟာ Personal Project တွေ ရေးကြတဲ့အခါ Test တွေကို ထည့်ရေးလေ့မရှိကြပါဘူး။ အဓိကတော့ အချိန်မလုံလောက်တာ၊ Testing ကို ဂရုမစိုက်နိုင်တာ ဒါမှမဟုတ် Testing က Enterprise Application တွေ၊ အရေးကြီးတဲ့ ပရောဂျက်တွေနဲ့ပဲ သက်ဆိုင်တယ်လို့ မှားယွင်စွာ ယူဆထားကြတဲ့အတွက်ကြောင့်ပါပဲ။
တကယ်တော့ Project သေးသေးလေးတွေမှာလည်း Testing ပိုင်းကို လွတ်မထားသင့်ပါဘူး။ ဘာကြောင့်လဲဆိုရင် Test တွေရေးထားခြင်းက Code အရည်သွေးကို ထိမ်းသိမ်းထားနိုင်သလို၊ Refactor လုပ်တဲ့အခါမှာလည်း မူလ Feature တွေအကုန် သေသေချာချာ အလုပ်လုပ်နေသေးသလားဆိုတာ လွယ်လွယ်နဲ့ သိရှိနိုင်မှာဖြစ်တဲ့အတွက်ကြောင့်ပါ။
နမူနာတခု စဉ်းစားကြည့်ရအောင်ပါ။ အချိန်ပိုင်း Developer တစ်ယောက်အဖြစ်နဲ့ စာဖတ်သူက Personal To-Do List Application တခုကို ဖန်တီးနေတယ်လို့ စဉ်းစားကြည့်ပါ။ Application မှာ Task Item အသစ် တခုထည့်လိုက်တာနဲ့ Local Storage ထဲသွားသိမ်းပေးမယ့် Feature လေးကို Implement လုပ်ပါမယ်၊ အဲနောက်မှာ အလုပ်ဖြစ်မဖြစ် Manual Testing နဲ့ စစ်ဆေးပြီး အပြီးသတ်လိုက်ပါမယ်။ အဲဒီလိုအပြီးသတ်လိုက်တာက လတ်တလော အခြေအနေ တစ်ချို့မှာ အဆင်ပြေနေမှာပါပဲ။ နောက်ထပ် Feature အသစ်တွေ ထပ်ထည့်တဲ့အခါမှာ အဲဒီ List Feature ကို ထိခိုက်သွားမလားဆိုတာ သိရဖို့ ခက်ခဲသွားနိုင်ပါတယ်။ ဒီပြဿနာကို ဖြေရှင်းဖို့က Test တွေ ရေးသားထားဖို့ပဲဖြစ်ပါတယ်။
▪️Test Case တွေ ဘာကြောင့် အရေးကြီးလဲ?
Test Case တွေ ရေးသားထားခြင်းက မထင်မှတ်ထားတဲ့ Bug တွေ၊ Error တွေကို စောစီးစွာ ရှာဖွေနိုင်စေပါတယ်။ Code Refactoring လုပ်တဲ့အခါမှာလည်း "မူလအလုပ်လုပ်နေတာတွေ အလုပ်မလုပ်တော့မှာ"ကို စိတ်ပူစရာ မလိုအပ်တော့တဲ့အတွက် Developer တွေ အတွက် ယုံကြည်မှုပိုတိုးလာစေနိုင်ပါတယ်။ ဥပမာ - Component တခုကို Update ပြောင်းလဲလိုက်တဲ့အခါမှာ တခြား Component တခုကို သွားထိတာမျိုး၊ Functionality တစ်ခုကို ပြင်ရင်းနဲ့ အခြားနေရာမှာ သွားထိခိုက်တာမျိုး စသည့်ဖြင့်ပါ။ တခြား Developer တယောက်က နောက်ပိုင်းမှာ Project ကို လက်ခံရယူပြီး ဆက်ရေးရတဲ့အခါမှာလည်း Test Case တွေက Project ရဲ့ Structure နဲ့ Logic တွေကို စနစ်တကျ နားလည်သွားအောင် လမ်းပြပေးနိုင်တဲ့ Guide လေးတစ်ခုအနေနဲ့ အရေးပါပါတယ်။
▪️Smaller Project တွေအတွက် Test ရေးစရာလိုသလား?
Developer တော်တော်များများက Personal Project, Portfolio Project တွေကို Testing မလုပ်ဘဲ အပြီးသတ်ကြတာ များပါတယ်။ Feature တစ်ခုချင်းစီကို Implement လုပ်ပြီးတိုင်း အဆင်ပြေမပြေ Manual Testing နဲ့ စမ်းကြည့်ပြီး အဆင်ပြေရင် နောက်ထပ် Feature အသစ်တွေ ဆက်ရေးကြပါတယ်။ "Project ကြီးလာတဲ့အခါမှ Test တွေ ရေးမယ်" ဆိုတဲ့ အတွေးနဲ့ Manual Testing ကိုပဲ အားကိုးကြပါတယ်။ နောက်ဆုံးတော့ အလုပ်တွေများလာ၊ Technical Debt တွေ များလာတဲ့အခါ "မလုပ်တော့ပါဘူးလေ" ဆိုတဲ့အခြေအနေ ဖြစ်သွားကြပါတယ်။
Testing လုပ်တာက မလိုအပ်ဘဲ အချိန်ကုန်တဲ့အလုပ် မဟုတ်ပါဘူး။ အမှန်တိုင်းပြောရရင် Project ရဲ့ ဖွဲ့စည်းပုံ ကြီးမားလာတာဖြစ်စေ၊ Refactoring ပြန်လုပ်ရတာဖြစ်စေ၊ တချိန်ချိန်မှာ Bug တွေ၊ Errorတွေ ပေါ်လာတဲ့အခါ Debug လုပ်ရတဲ့ ကြာချိန်က ထင်ထားတာထက် ပိုပြီးကြာမြင့်နိုင်ပါတယ်။ ဒါဟာ မအောင်မြင်တဲ့ Project တခုအဖြစ် လက်လွှတ်လိုက်ရတာမျိုးတွေအထိ ဖြစ်တတ်ပါတယ်။
▪️ဘာကြောင့် Test မရေးဖြစ်ကြတာလဲ?
၁။ အချိန်ကုန်တယ်လို့ထင်ခြင်း
Test တွေရေးဖို့အတွက် အချိန်ပေးရမယ်လို့ Developer တော်တော်များများက နားလည်ထားကြပါတယ်။ အစပိုင်းမှာ အချိန်ကုန်သင့်သလောက်ကုန်တယ်ဆိုပေမယ့် နောက်ပိုင်း Bug Fixing Time နဲ့ ယှဉ်ရင် သိသိသာသာ နည်းပါးလှပါတယ်။
၂။ Smaller Project တွေအတွက် မလိုအပ်ဘူးလို့ထင်ခြင်း
ဒါက လုံးဝမှားနေတဲ့ အယူအဆပါပဲ။ အကြောင်းကတော့ Application သေးပေမယ့် တကယ်တမ်း Refactoring လုပ်လိုက်တဲ့အခါမှာ မူရင်း Functionality တွေကို ထိခိုက်သွားတာမျိုးဖြစ်နိုင်လို့ပါပဲ။
ဥပမာ - To-Do List Application တခုမှာ Delete Task Feature တခုကို Implement လုပ်မယ်ဆိုပါစို့။ အဲဒီနောက်မှာ "Buy Milk", "Do Homework", "Read Book" စသည်ဖြင့် Dummies Data တွေ ထည့်ပြီး တခါစီ Delete လုပ်ကြည့်တာနဲ့ အဆင်ပြေပြီထင်ပြီး အပြီးသတ်လိုက်မယ်၊ ဒီလိုဆိုရင် လတ်တလောမှာ Delete Task Feature ဟာ အဆင်ပြေနေသလိုပဲ မြင်ရနိုင်ပါတယ်။ ဒါပေမယ့် တကယ်တမ်းမှာတော့ တူညီတဲ့ Task တခုကို နှစ်ကြိမ်ထည့်လိုက်မိတဲ့အခါ အမည်တူ Task တွေ အားလုံးကို ဖျက်ပစ်သွားမယ်ဆိုရင် မျှော်လင့်ထားတဲ့ရလဒ် မဟုတ်တဲ့အတွက် Reliability ကိုထိခိုက်စေမှာပဲဖြစ်ပါတယ်။
▪️Smaller Project တွေအတွက် Test တွေ ရေးတဲ့အခါ Application ရဲ့ Core Functionality တွေကနေ စရေးသင့်ပါတယ်။
Feature အများကြီးထဲက အရေးကြီးဆုံး တွေကိုရေးပြီးမှ တဖြည်းဖြည်း နောက် Functionality တွေကို ထပ်လည့်ပါ။ဥပမာ၊ Authentication, Form Validations, Routing စတာတွေကို ပထမဆုံး Target ထားသင့်ပါ။
Testing လုပ်ပုံလုပ်နည်းတွေကတော့ Unit Test, Integration Test စသည်ဖြင့် ရှိပြီး Front-End Application တွေအတွက်ဆိုရင် Jest, Mocha, Cypress စတဲ့ Tool တွေကို အသုံးပြုနိုင်ပါတယ်။
Personal Project လေးတွေမှာ Test Case တွေ ရေးထားခြင်းက လိုက်နာသင့်တဲ့ Best Practice တစ်ခုဖြစ်ပါတယ်။ မိမိ Project ရဲ့ Maintainability ကို အထောက်အကူပြုသလို Quality ကောင်းမွန်တဲ့ Project တစ်ခုကို ရရှိစေမှာမို့၊ ကနဦး အဆင့်ကတည်းက Testing တွေ ပြုလုပ်ရေးသားထားတာက ပိုပြီး အကျိုးရှိစေမှာပဲဖြစ်ပါတယ်။
Keep up the great work! Testing is your friend! 😊
#CodeWithThura #SoftwareDevelopment