সফটওয়্যার টেস্টিং সব সময়ই সময়ের বিরুদ্ধে একটি দৌড়। রিলিজ উইন্ডো ছোট হয়ে আসছে। কোডবেস বাড়ছে। টিমের কাছ থেকে আশা করা হয় যে তারা কোনো কিছু ভেঙে না ফেলে আরও দ্রুত শিপ করতে পারবে। ইদানীং, AI এই চাপের মধ্যে স্বস্তি দেওয়ার প্রতিশ্রুতি দিয়ে প্রবেশ করেছে। এটি কয়েক সেকেন্ডের মধ্যে টেস্ট কেস তৈরি করতে পারে, হাজার হাজার লাইনের কোড স্ক্যান করে অসঙ্গতি খুঁজে বের করতে পারে এবং আপনার টিম যখন ঘুমিয়ে থাকে তখন পুনরাবৃত্তিমূলক স্যুটগুলো চালাতে পারে। গতিটি বাস্তব। কিন্তু দিকনির্দেশনা ছাড়া গতি মানে কেবল দ্রুত দুর্ঘটনার দিকে এগিয়ে যাওয়া।
বাস্তবতা হলো টেস্টিংয়ে AI একটি এক্সিলারেটর হিসেবে সবচেয়ে ভালো কাজ করে, অটোপাইলট হিসেবে নয়। সঠিকভাবে ব্যবহার করলে, এটি কাজের বোঝা কমায় এবং দ্রুত বাগ শনাক্ত করে। অসাবধানতার সাথে ব্যবহার করলে, এটি অন্ধ জায়গা তৈরি করে এবং আপনাকে নিরাপত্তার একটি মিথ্যা ধারণা দেয়। AI কোথায় সাহায্য করে এবং কোথায় ব্যর্থ হয় তা বোঝা হলো স্থিতিশীল সফটওয়্যার শিপ করা এবং নির্ধারিত সময়ে ত্রুটিপূর্ণ কোড শিপ করার মধ্যে পার্থক্য।
যেখানে AI তার স্থান করে নেয়
শুরু করা যাক AI যা ভালো সামলাতে পারে তা দিয়ে। পুনরাবৃত্তিমূলক রিগ্রেশন টেস্টিং হলো এর একটি স্পষ্ট সাফল্য। ডজন ডজন ব্রাউজার এবং ডিভাইসের কম্বিনেশনে একই লগইন ফ্লো, ফর্ম ভ্যালিডেশন এবং চেকআউট ধাপগুলো চালানো মানুষের জন্য একঘেয়ে কিন্তু মেশিনের জন্য অত্যন্ত সহজ। AI-চালিত টেস্ট রানারগুলো রাতারাতি এই স্যুটগুলো চালাতে পারে এবং ভিজ্যুয়াল রিগ্রেশন বা পারফরম্যান্সের অবনতি চিহ্নিত করতে পারে যা একজন ক্লান্ত ইঞ্জিনিয়ার হয়তো খেয়াল নাও করতে পারেন।
টেস্ট ডেটা জেনারেশন হলো আরেকটি শক্তিশালী দিক। যখন আপনার বাস্তবসম্মত কিন্তু নকল নাম, ঠিকানা, লেনদেনের ইতিহাস এবং টাইম জোন সহ দশ হাজার রেকর্ডের প্রয়োজন হয়, AI তা তাৎক্ষণিকভাবে তৈরি করতে পারে। এটি তখন গুরুত্বপূর্ণ হয় যখন আপনি একটি ডেটাবেস লোড-টেস্ট করছেন বা আপনার অ্যানালিটিক্স ড্যাশবোর্ড কীভাবে হাই-কার্ডিনালিটি ডেটা হ্যান্ডেল করে তা পরীক্ষা করছেন। ম্যানুয়ালি এই পরিমাণ ডেটা তৈরি করা কেবল ধীরগতিরই নয়; এটি অবাস্তবও বটে।
AI বয়েলারপ্লেট টেস্ট স্ক্রিপ্ট লেখার গতিও বাড়িয়ে দেয়। যদি আপনার একটি নতুন API এন্ডপয়েন্টের জন্য একটি স্ট্যান্ডার্ড ইউনিট টেস্ট বা একটি পেজ লোড হচ্ছে কিনা তা যাচাই করার জন্য একটি বেসিক স্ক্রিপ্টের প্রয়োজন হয়, তবে একটি AI অ্যাসিস্ট্যান্ট সেই কাঠামোটি তৈরি করে দিতে পারে। আপনি স্ক্র্যাচ থেকে টাইপ না করেই কাঠামো, ডামি ইনপুট এবং অ্যাসারশন প্লেসহোল্ডার পেয়ে যান। এটি একটি ভালো শুরুর পয়েন্ট।
এই সুবিধাগুলো বাস্তব। বাগগুলো আরও দ্রুত ধরা পড়ে কারণ বিস্তৃত টেস্ট চালানোর খরচ কমে যায়। পুনরাবৃত্তিমূলক কাজগুলো মানুষের কাজের সময় নষ্ট করা বন্ধ করে। টিম আরও জটিল সমস্যাগুলোর দিকে মনোনিবেশ করতে পারে।
সেই অন্ধ জায়গাগুলো যা কেউ আলোচনা করে না
সমস্যাটি শুরু হয় যখন টিমগুলো বিস্তৃত কভারেজকে গভীর কভারেজের সাথে গুলিয়ে ফেলে। AI প্যাটার্ন খুঁজে পায়। এটি যে ডেটার ওপর ভিত্তি করে প্রশিক্ষিত হয়েছে তার ওপর ভিত্তি করে একটি সাধারণ বাগ দেখতে কেমন হবে তা অনুমান করে। এর মানে হলো এটি সাধারণ ক্ষেত্রে পারদর্শী কিন্তু অদ্ভুত বা অস্বাভাবিক ক্ষেত্রে বারবার ব্যর্থ হয়।
এজ কেসগুলোর কথা ভাবুন। একটি স্ট্যান্ডার্ড ইউজার জার্নিতে প্রশিক্ষিত মডেল সম্ভবত সেই বাগটি মিস করবে যা কেবল তখনই ট্রিগার হয় যখন একজন ব্যবহারকারী তিনটি মোডাল ডায়ালগ খোলে, ব্রাউজারের ব্যাক বাটন চাপে এবং একটি অ্যাসিনক্রোনাস সেভ চলাকালীন রিফ্রেশ করে। এগুলো কোনো কাল্পনিক বিষয় নয়। প্রোডাকশন ইনসিডেন্টগুলো প্রায়শই এমন সিকোয়েন্স থেকে উদ্ভূত হয় যা কোনো ট্রেনিং ডেটাসেট পর্যাপ্তভাবে উপস্থাপন করে না কারণ সেগুলো পরিসংখ্যানগতভাবে বিরল। AI বেল কার্ভের কেন্দ্র অনুসরণ করে। আপনার সবচেয়ে খারাপ বাগগুলো থাকে এর প্রান্তসীমায়।
এখানে মানুষের অন্তর্দৃষ্টি গুরুত্বপূর্ণ। একজন অভিজ্ঞ টেস্টার একটি নতুন ফিচারের দিকে তাকান এবং ব্যবসায়িক ঝুঁকির কথা চিন্তা করেন। তারা ভাবেন একজন হতাশ ব্যবহারকারী কীভাবে একটি ফর্ম অপব্যবহার করতে পারে, বা ছুটির দিনে ট্র্যাফিক বৃদ্ধির সময় একটি পেমেন্ট গেটওয়ে টাইমআউট হলে কী ঘটে। এটি হলো কনটেক্সচুয়াল থিংকিং। AI ব্যবসায়িক চাপ অনুভব করতে পারে না। এটি জানে না যে বছরের পর বছর আগের একটি লিগ্যাসি ইন্টিগ্রেশনের কারণে আপনার ইনভেন্টরি সিস্টেমটি ভঙ্গুর। এটি যা সঠিক দেখায় তা লেখে, আপনার নির্দিষ্ট ডোমেইনের জন্য যা সঠিক তা নয়।
হ্যালুসিনেশন এবং ভঙ্গুর অটোমেশনের সমস্যাও রয়েছে। AI-জেনারেটেড টেস্ট স্ক্রিপ্টগুলো দেখতে বিশ্বাসযোগ্য মনে হতে পারে কিন্তু সেগুলোতে ভুল সিলেক্টর, ভুল অ্যাসারশন, বা DOM স্ট্রাকচার সম্পর্কে ভুল ধারণা থাকতে পারে যা পরবর্তী স্প্রিন্টে পরিবর্তিত হয়ে যায়। আপনি যদি এগুলো না পড়ে চালান, তবে আপনি ফলস পজিটিভ পাবেন যা সময় নষ্ট করে অথবা ফলস নেগেটিভ পাবেন যা বাগগুলোকে ভেতরে আসতে দেয়। একটি টেস্ট ড্যাশবোর্ডে সবুজ টিক চিহ্ন অর্থহীন যদি টেস্টটি আসলে সঠিক আচরণ যাচাই না করে।
