অটোমেটেড টেস্ট জেনারেশন

ইউনিট টেস্ট, ইন্টিগ্রেশন টেস্ট, E2E টেস্ট - কোড OpenClaw কে দাও, টেস্ট কেস স্বয়ংক্রিয় জেনারেট হয়

টেস্টিং লেখা - যে করে তার মাথা খারাপ

টেস্টিং সবসময় শেষে আসে

ফিচার অনলাইন হওয়ার তাড়া, টেস্টিং সবসময় "পরবর্তী ভার্সনে"। ফলে অনলাইন হলেই ফেটে যায়, তখন বুঝা যায় এজ কেস কভার করা নেই।

Mock ডেটা লিখতে লিখতে পাগল হয়ে যাচ্ছি, একটা এপিআই তিনটা সার্ভিসের উপর নির্ভর করে, শুধু mock ডেটাই আধা ঘন্টা লাগে, বিজনেস কোডের চেয়ে বেশি।

কভারেজ রিপোর্ট দেখলাম ৩০%, বসকে জিজ্ঞেস করলে বলি "কোর লজিক সব টেস্ট করেছি"। আসলে happy path পর্যন্ত টেস্ট করা নেই।

OpenClaw টেস্টিং এ কীভাবে সাহায্য করে

কোড পড়ে, নির্ভরযোগ্য টেস্ট তৈরি করে

OpenClaw এমনি গলা টেস্ট কেস বানায় না। এটা ফাংশন সিগনেচার, ব্র্যাঞ্চ লজিক, এক্সেপশন হ্যান্ডলিং পাথ বিশ্লেষণ করে, স্বয়ংক্রিয়ভাবে এজ কন্ডিশন এবং এক্সেপশন সিনারিও চিনতে পারে।

তোমার ফাংশনে null চেক আছে? এটা null ইনপুট টেস্ট বানাবে। লুপ আছে? এটা খালি অ্যারে, এক এলিমেন্ট, বিশাল ডেটা টেস্ট করবে। try-catch আছে? এক্সেপশন ট্রিগার করতে পারে এমন ইনপুট বানাবে।

এছাড়াও এটা বোঝে তোমার প্রজেক্টে কী টেস্ট ফ্রেমওয়ার্ক ব্যবহার করছো - Jest, Pytest, JUnit, Vitest - জেনারেট করা কোড সরাসরি চলে, ফরম্যাট ম্যানুয়ালি পরিবর্তন করতে হয় না।

সরাসরি ব্যবহার করা যায় এমন টেস্ট Prompt

তিনটা Prompt ইউনিট টেস্ট, E2E টেস্ট, লোড টেস্ট কভার করে। প্রয়োজন অনুযায়ী বেছে নাও।

ইউনিট টেস্ট সম্পূর্ণ কভারেজ গোল্ডেন ইন্সট্রাকশন
এই মডিউলের সব এক্সপোর্ট ফাংশন এবং ক্লাস মেথড বিশ্লেষণ করুন।

প্রতিটি ফাংশনের জন্য সম্পূর্ণ ইউনিট টেস্ট জেনারেট করুন, শর্ত:
1. কভারেজ লক্ষ্য ৯০% এর উপরে (স্টেটমেন্ট + ব্র্যাঞ্চ কভারেজ)
2. প্রতিটি ফাংশনে কমপক্ষে: সাধারণ ইনপুট, এজ ভ্যালু, এক্সেপশন ইনপুট টেস্ট
3. এক্সটার্নাল ডিপেন্ডেন্সিতে mock ব্যবহার করুন, রিয়েল ডাটাবেস বা নেটওয়ার্ক নির্ভর করবেন না
4. টেস্ট নেমিং পরিষ্কার, "should xxx when xxx" ফরম্যাট
5. প্রয়োজনীয় setup/teardown যোগ করুন

এই প্রজেক্টের বিদ্যমান টেস্ট ফ্রেমওয়ার্ক এবং assertion লাইব্রেরি ব্যবহার করুন, স্টাইল একই রাখুন।
এটাই সবচেয়ে বেশি ব্যবহৃত। একটা ফাইল ফেলে দিলে কয়েক সেকেন্ডে টেস্ট বেরিয়ে আসে। ৯০% কভারেজ কথা নয়, এটা তোমার চিন্তা করা যায় না এমন এজ কেস পর্যন্ত যোগ করবে।
E2E লগইন ফ্লো টেস্ট (Playwright) এডভান্সড টিপস
Playwright দিয়ে এই লগইন ফ্লোর জন্য E2E টেস্ট লিখুন:

টেস্ট সিনারিও:
1. সাধারণ লগইন: সঠিক ইউজারনেম পাসওয়ার্ড ইনপুট, হোম পেজে রিডিরেক্ট ভেরিফাই
2. ভুল পাসওয়ার্ড: ভুল পাসওয়ার্ড, এরর মেসেজ দেখা যায় ভেরিফাই
3. খালি ফর্ম সাবমিট: কোনো ইনপুট ছাড়াই সাবমিট, ফর্ম ভ্যালিডেশন ভেরিফাই
4. মনে রাখুন পাসওয়ার্ড: "মনে রাখুন" চেক করুন, বন্ধ করে আবার খুলুন, লগইন স্ট্যাটাস ভেরিফাই
5. লগআউট: লগইন করে এক্সিট বাটন ক্লিক, লগইন পেজে ফিরে আসা ভেরিফাই

শর্ত:
- Page Object Model প্যাটার্ন ব্যবহার করে কোড সংগঠিত করুন
- যুক্তিসংগত অপেক্ষা কৌশল যোগ করুন, sleep ব্যবহার করবেন না
- ব্যর্থ সিনারিও স্ক্রিনশট নিন ডিবাগের জন্য
Playwright E2E টেস্ট লেখা খুবই জটিল, বিশেষত অপেক্ষা কৌশল এবং সিলেক্টর। AI দিয়ে প্রথম ভার্সন লিখিয়ে, পরে পৃষ্ঠা অনুযায়ী টুইক করো, দক্ষতা দ্বিগুণ।
API লোড টেস্ট স্ক্রিপ্ট এডভান্সড টিপস
এই API এন্ডপয়েন্টের জন্য লোড টেস্ট স্ক্রিপ্ট বানান (k6 বা Artillery ব্যবহার করে):

টেস্ট কনফিগ:
1. ক্রমান্বয়ে লোড বাড়ান: ১০ কনকারেন্ট থেকে শুরু, প্রতি ৩০ সেকেন্ড ১০ বাড়ান, সর্বোচ্চ ২০০ কনকারেন্ট
2. সময়কাল: মোট ৫ মিনিট
3. রিকোয়েস্ট বিতরণ: ৭০% রিড অপারেশন, ২০% রাইট অপারেশন, ১০% আপডেট অপারেশন
4. মেট্রিক্স রেকর্ড করুন: P50/P95/P99 লেটেন্সি, এরর রেট, থ্রুপুট

ফলাফল বিশ্লেষণ স্ক্রিপ্ট জেনারেট করুন, পারফরম্যান্স বটলনেক রিপোর্ট আউটপুট করুন।
যদি P99 > ৫০০ms বা এরর রেট > ১% হয়, অপটিমাইজেশনের প্রয়োজন চিহ্নিত করুন।
লোড টেস্ট স্ক্রিপ্ট নিজে শূন্য থেকে লিখলে অর্ধ দিন লাগে। এই Prompt সরাসরি প্রোডাকশন-গ্রেড কনফিগ দেয়, ফলাফল বিশ্লেষণ স্ক্রিপ্টও আছে।

টেস্ট জেনারেশন: OpenClaw vs Copilot

দুটোই টেস্ট জেনারেট করতে পারে, কিন্তু কোয়ালিটি আলাদা।

OpenClaw
  • সম্পূর্ণ ফাংশন লজিক এবং ব্র্যাঞ্চ পাথ বিশ্লেষণ, এজ কেস কভারেজ সম্পূর্ণ
  • ক্রস-ফাইল ডিপেন্ডেন্সি বোঝে, mock জেনারেশন সঠিক
  • নির্দিষ্ট কভারেজ লক্ষ্য সেট করতে পারে, লক্ষ্য না পেলে আরও কেস যোগ করবে
  • E2E, লোড টেস্ট ইত্যাদি জটিল সিনারিওর সম্পূর্ণ স্ক্রিপ্ট জেনারেট করে
VS
Copilot
  • বর্তমান ফাইল থেকেই জেনারেট করে, ক্রস-ফাইল ডিপেন্ডেন্সি মিস করা সহজ
  • মূলত happy path টেস্ট জেনারেট করে, এজ কভারেজ পর্যাপ্ত নয়
  • Mock সাধারণত ম্যানুয়াল ঠিক করতে হয়
  • জটিল টেস্ট সিনারিও (E2E, লোড টেস্ট) সাপোর্ট সীমিত

রিয়েল সিনারিও: জরুরি অনলাইন আগে টেস্ট সাপ্লিমেন্ট

শুক্রবার বিকেল চারটা, বস বলে আজ রাত অনলাইন হতে হবে
নতুন ফিচার দুই সপ্তাহ ডেভেলপ করা হয়েছে, টেস্ট কভারেজ মাত্র ২০%। QA বলে কমপক্ষে ৭০% চাই। এখনো তিন ঘন্টা বাকি।
OpenClaw
কোর মডিউল OpenClaw কে দাও, একটা Prompt সম্পূর্ণ টেস্ট স্যুইট জেনারেট করবে। এটা স্বয়ংক্রিয়ভাবে বিশ্লেষণ করবে কোন ব্র্যাঞ্চ কভার নেই, এজ টেস্ট এবং এক্সেপশন হ্যান্ডলিং যোগ করবে। তিন ঘন্টায় ৮০% কভারেজ, QA সন্তুষ্ট।
ম্যানুয়াল টেস্ট
শুরু করে পাগলের মতো টেস্ট লিখছি, কিন্তু ডিপেন্ডেন্সি বুঝতেই এক ঘন্টা লেগে যাচ্ছে। Mock তিনবার ভুল, টেস্ট চলে না। শেষে ৪৫% কভারেজ, QA পাস করে না, রাত জেগে কাজ।

কয়েকটা প্র্যাক্টিক্যাল টিপস

💡 টেস্ট জেনারেট করার পর প্রথমে চালান, নিশ্চিত করুন পাস হচ্ছে। ব্যর্থ কেস হলে, এরর মেসেজ OpenClaw কে দেখান, এটা ঠিক করবে।
🎯 এক বারে সব টেস্ট জেনারেট না করে, মডিউল অনুযায়ী ব্যাচে করো। প্রতিবার একটা ফাইল ফোকাস করলে, টেস্ট কোয়ালিটি ভালো হয়।
টেস্ট জেনারেশন Claude Opus 4.6 এ সেরা কাজ করে, বিশেষত জটিল বিজনেস লজিকে। সাধারণ ইউটিলিটি ফাংশন টেস্ট DeepSeek V3.2 যথেষ্ট, খরচ বাঁচে।
এই কেসটা কাজে লেগেছে?