ඔබගේ ලැප්ටොප් එකේ පරීක්ෂා කරන බ්රවුසර ටෙස්ට් එක සියල්ලේම සාර්ථකයි, නමුත් CI (Continuous Integration) පද්ධතියේ පාරිභෝගික පරිසරයක එය අසාර්ථක වුවහොත්, එය බොහෝ කාලයක් ගත කරන ගැටලුවක් වේ. මෙවැනි තත්වය “flaky” කියන නාමයෙන් හැඳින්වෙන, නිතර වැරදි පෙන්වන ටෙස්ට් කට්ටලයක් බවට පත්වේ.
මෙම ගැටලුවේ මූලික හේතුව සාමාන්යයෙන් CI පද්ධතිය “අහඹු” නොව, ඔබේ දේශීය වැඩ පරිසරය හා CI පරිසරය අතර ඇති වෙනස්කම් වේ. ඒ වෙනස්කම් අතර:
- වෙනස් Build සංස්කරණයක්
- වෙනස් Dependency ග්රාෆ් එකක්
- වෙනස් API Base URL එකක් හෝ Feature Flag ගොනු
- වෙනස් Network අනුක්රමයක්
- වෙනස් Browser Lifecycle (headless vs. UI mode)
- වෙනස් Rendering Path එකක්
ඒ නිසා පරීක්ෂකයාට පළමුව පරීක්ෂණය සිදු වන පරිසරයේ සියලු තොරතුරු (URL, build id, commit SHA, enabled flags, API host, browser version, viewport) ලොග් කරගන්නා ලෙස උපදෙස් දෙනවා. Screenshot එකක් පමණක් නොව, එම පිටුව කුමන JavaScript bundle එකක් භාරගන්නවාද, කුමන සේවා සමඟ සම්බන්ධ වෙයිද යන තොරතුරුත් වැදගත්.
දෙවන වැදගත් කරුණක් නම්, Development mode එකේ පරීක්ෂා කිරීම CI එකේ Production Build එකේ පරීක්ෂා කිරීමෙන් වෙනස් බවයි. Development build එකේ function names කියවීමට පහසු, source map ගොනු සපයන අතර, CI එකේ minified, compressed bundle එකේ stack trace අඩු වේ. DevTools එක විවෘත කර ඇත්තේ කාලය වෙනස් කර, දෝෂ පණිවුඩ වඩා පැහැදිලි කර දෙනවා, නමුත් මූලික ගැටලුව වෙනස් නොවේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ තාක්ෂණික සමාජය, විශ්වවිද්යාල සිසුන්, ස්ථානීය සොෆ්ට්වෙයා සමාගම් සඳහා මෙම අවධාරණය විශාල ප්රයෝජන දෙයි. ප්රථමයෙන්, CI පද්ධතියේ අසාර්ථක ටෙස්ට් හඳුනා ගැනීමෙන් ඉදිරි ගතවන වියදම අඩු කරයි. දෙවැනි වශයෙන්, නිවැරදි Build එකක්, ඒකක පරීක්ෂණයක්, සහ ඒකක පරිසරයේ ලොග් කිරීමෙන් සිසුන්ට ඉගෙනීමේ පදනම වඩා හොඳින් තේරුම්ගත හැක. තෙවැනි වශයෙන්, ස්ථානීය ව්යාපාර සඳහා තද CI/CD පද්ධතියක් ඇතිවීම, නිෂ්පාදන ගුණාත්මකතාවය ඉහළ ගෙනයයි, ගනුදෙනුකරුවන්ගේ විශ්වාසය වැඩි කරයි.
අවසන් වශයෙන්, ටෙස්ට් එකක් “අසාර්ථක” වීමට හේතුව කාලය හෝ UI state එකේ වෙනස්කමක් විය හැක. ඒ සඳහා “අහඹු sleep” එකක් නොදමන්න, ඒ වෙනුවට UI එකේ අවශ්ය state එක පෙන්වන ලකුණක් (notification ID, counter change, loading spinner disappearance) පරීක්ෂා කරන්න. එවිට ඔබේ පරීක්ෂණ කට්ටලය ස්ථාවර, විශ්වාසදායක, සහ CI පද්ධතියේ නිරවද්යත්වය වැඩි කරයි.