রহস্যময় রুটি

একটি QA টিমের লক্ষ্য কেবল ভালো টেস্টিং করা নয়।

সঠিক জিনিস সঠিক উপায়ে পরীক্ষা করাও এর একমাত্র লক্ষ্য নয়।

আসল লক্ষ্য হলো টিমগুলোকে এমন সফটওয়্যার তৈরিতে সাহায্য করা যা সঠিকভাবে কাজ করে। এই লক্ষ্যে পৌঁছানোর জন্য টেস্টিং হলো একটি মাধ্যম। এটি একমাত্র মাধ্যম নয়। এমনকি অনেক ক্ষেত্রে এটি সেরা মাধ্যমও নয়।

অনেক কোম্পানি কেবল টেস্টিং এবং কভারেজের ওপর গুরুত্ব দেয়। এটি একটি ভুল।

টেস্্টিংয়ের নির্দিষ্ট কিছু ব্যবহার রয়েছে:

  • অটোমেটেড টেস্ট গুরুত্বপূর্ণ ফাংশনগুলোর ওপর দ্রুত ফিডব্যাক প্রদান করে।
  • এক্সপ্লোরেটরি টেস্টিং আপনাকে সফটওয়্যারটি কীভাবে আচরণ করে তা বুঝতে সাহায্য করে।

তবে, অনেক টিম সবকিছু ঠিক করার জন্য টেস্টিং ব্যবহার করে। দুর্বল পরিকল্পনার কারণে তৈরি হওয়া ফাঁকগুলো পূরণ করতে তারা টেস্টিং ব্যবহার করে। মনিটরিং এবং অবজারভেবিলিটির (observability) বিকল্প হিসেবেও তারা টেস্টিং ব্যবহার করে।

আপনার মূল কোয়ালিটি সিগন্যাল হিসেবে টেস্ট কভারেজের ওপর নির্ভর করা অনেকটা ওভেন থেকে রুটি বের করার পর সেটিকে আকার দেওয়ার চেষ্টা করার মতো।

আপনার সফটওয়্যারকে একটি রুটির সাথে তুলনা করুন। কোড লেখার আগে আপনার যা যা প্রয়োজন তা হলো এর উপকরণ:

  • সফটওয়্যারটিকে কী করতে হবে তার একটি স্পষ্ট সংজ্ঞা।
  • কোয়ালিটি বা মান কেমন হবে সে বিষয়ে সবার ঐক্যমত।
  • ঝুঁকি এবং সীমাবদ্ধতা সম্পর্কে ধারণা।

আপনি যদি ভুল ময়দা ব্যবহার করেন বা লবণ দিতে ভুলে যান, তবে যতবারই আকার পরিবর্তন করুন না কেন, খামিরটি ঠিক হবে না।

সফটওয়্যার যখন খামিরের মতো থাকে, তখন সেটিকে আকার দেওয়া সহজ। এর মানে হলো ডেভেলপমেন্টের শুরুর দিকে। একবার কোড লেখা হয়ে গেলে, খামিরটি শক্ত হয়ে যায়। তখন পরিবর্তন করতে অনেক বেশি সময় এবং শ্রমের প্রয়োজন হয়।

টেস্ট কভারেজ আপনাকে বলে আপনি কোথায় পরীক্ষা করেছেন। কিন্তু আপনি যা পরীক্ষা করেছেন তা গুরুত্বপূর্ণ কি না, তা এটি বলে না। ৮০% কভারেজ মানেই এই নয় যে আপনার সফটওয়্যারটি উচ্চমানের। এর মানে হতে পারে আপনার অনেক অপ্রয়োজনীয় টেস্ট রয়েছে।

কভারেজ নম্বরের পেছনে ছোটা বন্ধ করুন। পরিবর্তে, এই প্রশ্নগুলো করুন:

  • আমাদের সফটওয়্যারের কোন আচরণটি এখনও অজানা?
  • এটি জানার দ্রুততম উপায় কী?

কখনও কখনও উত্তরটি একটি টেস্ট হতে পারে। প্রায়শই, উত্তরটি একটি আলোচনার মাধ্যমে পাওয়া সম্ভব। আপনাকে সেই প্রশ্নগুলো করতে হবে যা সবাই খুব সাধারণ বা স্পষ্ট বলে ধরে নেয়।

বেশিরভাগ সফটওয়্যারই শেষ পর্যন্ত কোনো না কোনোভাবে ভেঙে পড়ে বা কাজ করা বন্ধ করে দেয়। যখন এটি ঘটে, আপনার দ্রুত তা জানা প্রয়োজন। প্রোডাকশন মনিটরিং ব্যবহারকারীদের জানার আগেই আপনাকে জানিয়ে দেয় যে কিছু একটা ভুল হচ্ছে। টেস্টিং খুব কম খরচে এটি করতে পারে না।

AI এই কাজটিকে আরও কঠিন করে তুলেছে। এখন আপনি কোনো প্রকৃত ধারণা ছাড়াই কোড এবং টেস্ট তৈরি করতে পারেন। এতে কভারেজ নম্বর বাড়লেও কোয়ালিটি বা মান কম থেকে যায়। আপনি খামির তৈরির ধাপটি বাদ দিয়ে সরাসরি ওভেনে চলে যাচ্ছেন।

টেস্্টিং হলো একটি লক্ষ্যের মাধ্যম মাত্র। কভারেজ হলো কেবল একটি প্রক্সি। আসল কাজটি ঘটে খামির তৈরির পর্যায়ে। এটি বাদ দেবেন না।

Source: https://dev.to/susanne_abdelrahman/mystery-bread-2526

Optional learning community: https://t.me/GyaanSetuAi