ශ්රීමත් සංවර්ධකයෙක් DEV.to වෙතින් ලිපි ප්රතිචාර පරික්ෂා කරන ස්ක්රිප්ට් එකක් ලියලා තියෙනවා. එය දිනපතා දෙවරක් ක්රියාත්මක වෙලා, නව ප්රතිචාර අල්ලගෙන, පෙර පිළිතුරු ලියපු ඒවා නොගනී. ඒත් මේ ස්ක්රිප්ට් එකේ ‘already drafted’ කියන පරීක්ෂාවට වැරදි ලොජික් එකක් තිබුණා.
ස්ක්රිප්ට් එක reply_comments.py කියන ගොනුවේ pending() ෆංශන් එකේ, drafts/comment_replies.md ගොනුවේ සම්පූර්ණ පෙළ කියවා, එහි ඇති කොඩ් (id_code) එකක් අඩංගුද කියලා in ඔප්පු කරනවා. ඒ කියන්නේ, ගොනුවේ කොඩ් එකක් එකක් හෝ අන්තර්ගත වුවත්, එය හෙඩර් එකක්ද කියලා පරීක්ෂා නොකරන බවයි.
මෙම ලොජික් එක ප්රථමයෙන් හොඳට වැඩ කළාත්, ගොනුවේ අන්ය තොරතුරු (උදා: ප්රතිචාරයේ පණිවිඩ, දිනය) අතරින් අකුරු-අංක මිශ්ර කොඩ් එකක් (උදා: 2026) යනු අහඹු ලෙස පෙනෙන්න පුළුවන්. එම නිසා, 2026 වැනි සංඛ්යාත්මක වර්ෂයක් ගොනුවේ අන්තර්ගත වුවත්, එය ‘drafted’ කියලා වැරදි ලෙස සැලකේ.
උදාහරණයක් ලෙස, ලේඛකයාගේ comment_replies.md ගොනුවේ 2026 වසරේ සඳහන් වීමක් තිබුණා. fake_new_code = "2026" යන නව කොඩ් එකක් පරීක්ෂා කළ විට, in පරීක්ෂාව True දුන්නා, ඒත් ඇත්තටම එය හෙඩර් එකක් නොවීය. එම නිසා, එම කොඩ් එකට අදාළ නව ප්රතිචාරයක් එළඹුනොත්, ස්ක්රිප්ට් එක එය ‘already handled’ කියලා නොදැක්කා ඉවත් කරයි. මේක තවත් ගැටළුවක් නොවෙයි, එය පාරිභෝගිකයන්ට අතුරුදන් වූ ප්රතිචාරයක් ලෙස පෙනෙයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
මෙම වැරදි ලොජික් එකට සම්බන්ධ කරුණු ශ්රී ලංකාවේ තාක්ෂණික කාර්ය මණ්ඩලයට ඉතා වැදගත්:
- විකසකයන්: API සහ markdown ගොනු සමඟ වැඩ කරන විට, සරල substring පරීක්ෂාවන්ට වඩා regex හෝ set‑based පරීක්ෂා භාවිතා කිරීමේ වැදගත්කම තේරුම් ගත හැකිය.
- ඉගෙනුම් ආයතන: පාඨමාලා වලදී, දත්ත සම්භාව්යතාව සහ දෝෂ හඳුනා ගැනීමේ පියවරයන් ඉගැන්වීමේ උදාහරණයක් වශයෙන් මෙය භාවිතා කළ හැක.
- ව්යාපාර: ස්වයංක්රීය පයිප්ලයින් වල නිවැරදි දත්ත පරීක්ෂා නොකිරීමෙන්, ව්යාපාරික තීරණවලට අනිසි බලපෑමක් ඇති විය හැක. එම නිසා, කේත ගුණාත්මකභාවය තවත් අධික වශයෙන් පරීක්ෂා කිරීම අත්යවශ්යයි.
අවසන් වශයෙන්, මෙම සිදුවීම සරල කොඩ් එකක්ම නොව, නිවැරදි පරීක්ෂා ක්රමයන් පිළිබඳ අවධානයක් ලබා දෙන උදාහරණයක්. සංවර්ධකයින් සිය පයිප්ලයින් වලට නිරන්තරයෙන් unit test සහ audit ක්රියාවලි එකතු කරගත යුතුයි.