ইউনিট
1. সফ্টওয়্যার টেস্টিং এবং QA-এ কৃত্রিম বুদ্ধিমত্তার ভূমিকা: ভূমিকা, সীমানা, নকল ঝুঁকি এবং বৈধতা 2. পরীক্ষার দৃশ্য এবং টেস্ট কেস জেনারেশন: প্রয়োজনীয়তা থেকে ব্যাপক নিয়ন্ত্রণ পর্যন্ত 3. অনুসন্ধানমূলক পরীক্ষা এবং পরীক্ষা আইডিয়া জেনারেশন: এআই সহ ক্রিয়েটিভ বাগ হান্টিং 4. UI টেস্ট অটোমেশন: AI দিয়ে সেলেনিয়াম, নাট্যকার এবং সাইপ্রেস কোড তৈরি করা 5. এপিআই টেস্ট অটোমেশন: এআই-এর সাথে চুক্তি, স্কিমা এবং এন্ড-টু-এন্ড ভ্যালিডেশন 6. ইউনিট টেস্ট জেনারেশন এবং টেস্টিবিলিটি: এআই সহ শক্তিশালী টেস্টিং 7. ত্রুটি রিপোর্ট লেখা এবং অগ্রাধিকার: পরিষ্কার, এআই সহ পুনরুত্পাদনযোগ্য রেকর্ড 8. পরীক্ষার কভারেজ বিশ্লেষণ এবং ঝুঁকি-ভিত্তিক পরীক্ষা: AI এর সাথে সঠিক লক্ষ্য করা 9. রিগ্রেশন টেস্টিং, টেস্ট রক্ষণাবেক্ষণ, এবং ভঙ্গুর পরীক্ষাগুলির বিরুদ্ধে লড়াই করা 10. মিথ্যা-বিশ্বাসের ঝুঁকি, পরীক্ষার গুণমান এবং মিউটেশন পরীক্ষা: টেস্টিং পরীক্ষা 11. এন্ড-টু-এন্ড ওয়ার্কফ্লো, সিআই/সিডি ইন্টিগ্রেশন, এথিক্স এবং সিকিউরিটি: দায়িত্বশীলভাবে এআই ব্যবহার করা
ইউনিট 10 / 11

মিথ্যা-বিশ্বাসের ঝুঁকি, পরীক্ষার গুণমান এবং মিউটেশন পরীক্ষা: টেস্টিং পরীক্ষা

লাভ:

  • ছদ্ম-বিশ্বাসের তিনটি মুখ সনাক্ত করার ক্ষমতা (অ-প্রত্যয়মূলক, স্ব-প্রত্যয়কারী, তুচ্ছ দাবি) এবং প্রতিষেধক প্রয়োগ করার ক্ষমতা
  • টুল বা হাত দ্বারা শতাংশ কভারেজের চেয়ে গুণমানের আরও সঠিক পরিমাপ হিসাবে মিউটেশন পরীক্ষা এবং মিউটেশন স্কোর ব্যবহার করার ক্ষমতা
  • AI-কে পরীক্ষার বিরুদ্ধে একটি লাল দল হিসাবে অবস্থান করার ক্ষমতা এবং প্রশংসার ফাঁদে না পড়ে ত্রুটিগুলি পরীক্ষা করার জন্য অনুসন্ধান করার ক্ষমতা

এই মডিউলটির কেন্দ্রস্থলে একটি পুনরাবৃত্তিমূলক সতর্কতা রয়েছে: একটি সবুজ উজ্জ্বল পরীক্ষা প্যানেল গুণমানের প্রমাণ নয়। যদি আপনার পরীক্ষা আপনাকে আত্মবিশ্বাস দেয়, তাহলে আপনাকে জানতে হবে সেই আত্মবিশ্বাস আসল নাকি নকল। কৃত্রিম বুদ্ধিমত্তার (AI) যুগে, এই প্রশ্নটি আগের চেয়ে আরও জটিল, কারণ AI তরল, মসৃণ চেহারার কিন্তু ফাঁপা পরীক্ষা তৈরিতে পারদর্শী। মিথ্যা আত্মবিশ্বাস — সফ্টওয়্যারটিকে সঠিক বিশ্বাস করা কারণ পরীক্ষাগুলি সবুজ, যখন প্রকৃতপক্ষে পরীক্ষাগুলি কিছু যাচাই করে না — এটি একটি QA দলের ক্ষেত্রে সবচেয়ে বিপজ্জনক জিনিস; কারণ এটি লুকিয়ে রাখে না যে কোনও ত্রুটি নেই, তবে আপনি ত্রুটিগুলি দেখতে পারবেন না। এই ইউনিটটি পুরো মডিউলের বৈধতা দর্শনকে এক শৃঙ্খলায় নিয়ে আসে: আপনার পরীক্ষাগুলি পরীক্ষা করা।

পরীক্ষার গুণমান পরিমাপের জন্য সোনার মান: মিউটেশন পরীক্ষা

একটি পরীক্ষা আসলে রক্ষা করে কি না তা বোঝার সবচেয়ে শক্তিশালী উপায় হল মিউটেশন টেস্টিং (মিউটেশন টেস্টিং - একটি কৌশল যা উৎস কোডে ইচ্ছাকৃত ছোট বিকৃতি/মিউটেশন তৈরি করে এবং পরীক্ষাগুলি এই বিকৃতিগুলি সনাক্ত করে কিনা তা পরিমাপ করে)। যুক্তিটি সহজ: আপনি যদি ইচ্ছাকৃতভাবে কোডটি ভাঙেন (a + into -, a > in >=, একটি সত্যকে মিথ্যা করে), একটি ভাল পরীক্ষার স্যুটটি সেই দুর্নীতিকে ধরতে হবে এবং লাল হয়ে যাবে। যদি এটি না হয়, সেই ব্যাঘাতটি একটি বেঁচে থাকা মিউট্যান্ট - তাই আপনার পরীক্ষাগুলি আসলে সেই আচরণটি সংরক্ষণ করছে না।

মিউটেশন স্কোর = মিউটেশন নিহত/ মোট মিউটেশন। 90% লাইন কভারেজ সহ একটি প্যাকেজের মিউটেশন স্কোর 40% থাকতে পারে; এটি নির্দেশ করে যে লাইনগুলি কাজ করছে কিন্তু আচরণ যাচাই করা হয়নি। মিউটেশন স্কোর শতাংশের কভারেজের তুলনায় গুণমানের অনেক বেশি সৎ পরিমাপ।

টিপ: স্বয়ংক্রিয় মিউটেশন টুল আছে (জাভার জন্য PIT/Pitest, JavaScript/TypeScript-এর জন্য Stryker, .NET-এর জন্য Stryker.NET, Python-এর জন্য mutmut)। এগুলি স্বয়ংক্রিয়ভাবে শত শত মিউটেশন তৈরি করে এবং পরীক্ষা করে। যদি আপনার কাছে একটি টুল না থাকে, এমনকি ম্যানুয়াল "কোড পরীক্ষা বিরতি" পদ্ধতিটি সমালোচনামূলক ফাংশনগুলির জন্য অমূল্য।

সিউডো-ট্রাস্টের তিনটি মুখ এবং এর প্রতিষেধক

ছদ্ম-বিশ্বাস ফর্ম

উপসর্গ

প্রতিষেধক

দাবী ছাড়া পরীক্ষা

কোড কাজ করে, কিছুই যাচাই করা হয় না

প্রতিটি পরীক্ষায় সত্য দাবি; মিউটেশন দিয়ে পরীক্ষা

স্ব-নিশ্চিত পরীক্ষা

প্রত্যাশিত = কোডের আউটপুট

স্বাধীনভাবে প্রত্যাশিত মান গণনা করুন

তুচ্ছ দাবী

"শূন্য নয়", "200 ফিরে এসেছে"

ব্যবসার নিয়ম/প্রকৃত ফলাফল যাচাই করুন

উচ্চ সুযোগ বিভ্রান্তি

90% লাইন, কম সুরক্ষা

মিউটেশন স্কোর দেখুন

ভঙ্গুর পরীক্ষা সহনশীলতা

"আবার আটকে, পাস"

মূল কারণ + নির্ধারণমূলক পরীক্ষা

একটি "লাল দল" হিসাবে AI ব্যবহার করা

এআই উভয়ই ছদ্ম-বিশ্বাস তৈরি করতে পারে এবং এটিকে খুঁজে বের করার ক্ষেত্রে একটি শক্তিশালী সহযোগী হতে পারে। আপনার নিজের পরীক্ষার বিরুদ্ধে একটি লাল দল হিসাবে AI ব্যবহার করুন: "এই পরীক্ষাগুলি পাস করে এমন কোড লিখুন কিন্তু ভুল" বা "একটি বিপর্যয় খুঁজে বের করুন যা এই পরীক্ষাগুলিকে বোকা বানিয়ে দেবে।" যদি AI আপনার পরীক্ষায় ত্রুটি খুঁজে পায়, তাহলে সেই ত্রুটিগুলিই আসল ঝুঁকি।

সতর্কতা: AI কে জিজ্ঞাসা করবেন না "আমার পরীক্ষার মান কি ভাল?" এবং আশ্বাস হিসাবে উত্তর "হ্যাঁ, মহান" নিন। এআই সদয় হতে থাকে। পরিবর্তে, AI-কে একটি সুনির্দিষ্ট কাজের জন্য চ্যালেঞ্জ করুন: "এই পরীক্ষাগুলি পাস করে এমন একটি বাগ তৈরি করুন।" যদি এটি তৈরি করতে পারে তবে আপনার পরীক্ষাগুলি সেই ত্রুটির জন্য অন্ধ।

সমতুল্য মিউটেশন এবং স্কোরের সীমা

মিউটেশন টেস্টিং শক্তিশালী, তবে এটির একটি ধরা আছে: কিছু মিউটেশন কোডের আচরণকে মোটেও পরিবর্তন করে না। এগুলিকে সমতুল্য মিউটেশন বলা হয় (সমতুল্য মিউট্যান্ট — দূষিত কোড, মিউটেশন যা আসল হিসাবে ঠিক একই ফলাফল দেয়)। উদাহরণস্বরূপ, একটি ভেরিয়েবলের প্রাথমিক মান পরিবর্তন করা যা কখনই ব্যবহৃত হয় না আউটপুটকে প্রভাবিত করে না; কোন পরীক্ষা এই ধরতে পারে না এবং করা উচিত নয়। অতএব, একটি 100% মিউটেশন স্কোর প্রায়ই অনুশীলনে অপ্রাপ্য এবং লক্ষ্য নয়। হাত দ্বারা সমতুল্য মিউটেশন আগাছা শ্রম নিবিড়; তাই পরিব্যক্তি স্কোরকে পরম পরীক্ষার স্কোর হিসেবে না পড়ুন, কিন্তু "আমার পরীক্ষা কি সত্যিই রক্ষা করে?" এর একটি সৎ সূচক হিসেবে।

ব্যবহারিক পন্থা হল: সম্পূর্ণ কোড বেস জুড়ে ক্রমাগত মিউটেশন পরীক্ষা চালানোর পরিবর্তে, সর্বোচ্চ ঝুঁকি এবং সবচেয়ে জটিল ব্যবসায়িক নিয়ম রয়েছে এমন মডিউলগুলিতে এটি চালান। এক এক করে এই মডিউলগুলিতে বেঁচে থাকা মিউটেশনগুলি পরীক্ষা করুন; যদি এটি একটি বাস্তব ফাঁক হয়, একটি পরীক্ষা যোগ করুন; যদি এটি একটি সমতুল্য মিউটেশন হয়, এটিকে ন্যায্যতা দিয়ে চিহ্নিত করুন এবং পাস করুন। AI একটি জীবিত মিউটেশন সমতুল্য কিনা তা মূল্যায়নে প্রাথমিক স্ক্রীনিং করতে পারে; কিন্তু চূড়ান্ত সিদ্ধান্ত আপনার দ্বারা নেওয়া হয় যারা জানেন কোডটি কী করে।

সতর্কতা: মিউটেশন পরীক্ষা গণনাগতভাবে ব্যয়বহুল (প্রতিটি মিউটেশনের জন্য সমস্ত প্রাসঙ্গিক পরীক্ষা পুনরায় চালানো হয়)। সুতরাং একটি সাধারণ এবং যুক্তিসঙ্গত কৌশল হল প্রতিটি একত্রিতকরণের পরিবর্তে এটিকে একটি সাপ্তাহিক বা প্রাক-প্রকাশের গভীর চেক হিসাবে সমালোচনামূলক মডিউলগুলির জন্য নির্ধারিত করা।

দুর্বল প্রম্পট / শক্তিশালী প্রম্পট

দুর্বল: "আমার পরীক্ষা কি যথেষ্ট?"
শক্তিশালী: "এই ফাংশন এবং টেস্ট স্যুটের জন্য একটি লাল দল হিসাবে কাজ করুন। (1) কোডে 8টি মিউটেশন তৈরি করুন যা হত্যা করা যেতে পারে (অপারেটর প্রতিস্থাপন, সীমানা পরিবর্তন, অবস্থার বিপরীত, রিটার্ন মান প্রতিস্থাপন)। (2) প্রতিটি মিউটেশনের জন্য, নির্দেশ করুন যে বিদ্যমান পরীক্ষাগুলির মধ্যে কোনটি এটি ধরবে এবং কোনটি হবে না। (3) এটি একটি নতুন পরীক্ষা লিখবে যা একটি নতুন পরীক্ষা লিখবে। (4) এছাড়াও দেখান যে আপনি একটি কোড উদাহরণ তৈরি করতে পারেন যা এই সমস্ত পরীক্ষায় উত্তীর্ণ হয় কিন্তু ব্যবসার কোড + পরীক্ষাগুলি লঙ্ঘন করে: [পেস্ট]"

শক্তিশালী প্রম্পট; এটি AI কে একটি পরীক্ষা-ব্রেকিং পরীক্ষক হিসাবে অবস্থান করে, একটি প্রশংসা মেশিন নয়।

চারটি অনুলিপিযোগ্য টেমপ্লেট

1) ম্যানুয়াল মিউটেশন নিয়ন্ত্রণ:

এই কোডের জন্য 8টি উল্লেখযোগ্য মিউটেশন (ছোট ইচ্ছাকৃত ব্যাঘাত) তৈরি করুন: গাণিতিক অপারেটর প্রতিস্থাপন, তুলনা সীমা (> বনাম >=), লজিক্যাল ইনভার্সন, রিটার্ন/ধ্রুবক প্রতিস্থাপন, শর্ত এড়িয়ে যাওয়া। প্রতিটি মিউটেশনের জন্য, ভবিষ্যদ্বাণী করুন উপলব্ধ পরীক্ষাগুলির মধ্যে কোনটি এটি ধরবে বা না। কোড + পরীক্ষা: [পেস্ট]

2) বেঁচে থাকা মিউটেশনকে হত্যা করা:

নিম্নলিখিত মিউটেশন পরীক্ষার রিপোর্টে বেঁচে থাকা (অপরাধিত) মিউটেশন রয়েছে: [তালিকা/রিপোর্ট]। প্রতিটির জন্য, একটি ন্যূনতম পরীক্ষা লিখুন যা সেই মিউটেশনকে মেরে ফেলবে (কোডটি এভাবে ভেঙে গেলে লাল হয়ে যাবে)। পরীক্ষা কি আচরণ নিশ্চিত করে মন্তব্য করুন।

3) লাল দল - রক্ত পরীক্ষা:

আপনি কি এমন কোড লিখতে পারেন যা নিম্নলিখিত সমস্ত পরীক্ষায় পাস করে, কিন্তু নিম্নলিখিত ব্যবসায়িক নিয়ম লঙ্ঘন করে: [ব্যবসায়িক নিয়ম]। যদি তাই হয়, এই পরীক্ষায় কোন ফাঁকফোকর এটি অনুমতি দেয়? পরীক্ষাটি যোগ করুন যা সেই ফাঁকটি বন্ধ করবে। পরীক্ষা: [পেস্ট]

4) পরীক্ষা গুণমান পরিদর্শন:

মানের জন্য এই পরীক্ষা স্যুট পরীক্ষা করুন. প্রতিটি পরীক্ষার জন্য টিক দিন:- একটি সত্য দাবি আছে নাকি এটি প্রপস?- প্রত্যাশিত মান কি স্বাধীন, কোড থেকে প্রাপ্ত?- এটি কি ব্যবসার নিয়ম বা তুচ্ছ কিছু যাচাই করে? অবশেষে একটি আনুমানিক "ট্রু অ্যাসার্ট স্কোর" এবং 3টি দুর্বলতম পরীক্ষা দিন। পরীক্ষা: [পেস্ট]

তিনটি মিনি কেস

কেস 1 — কভারেজ 92%, মিউটেশন স্কোর 38%। একটি দল উচ্চ কভারেজের উপর নির্ভর করে। যখন স্ট্রাইকারের সাথে মিউটেশন পরীক্ষা চালানো হয়েছিল, তখন স্কোর ছিল 38%: উৎপাদিত বেশিরভাগ মিউটেশন বেঁচে গিয়েছিল। এটি প্রমাণ ছিল যে পরীক্ষাগুলি লাইনগুলি চালাচ্ছে না এবং আচরণ যাচাই করছে। দলটি গুণমান পরীক্ষায় তিন সপ্তাহ বিনিয়োগ করেছে; মিউটেশন স্কোর বেড়ে 81% হয়েছে, এবং পরের রিলিজে এই বিফড-আপ পরীক্ষায় দুটি আসল গণনার ত্রুটি ধরা পড়েছে।

কেস 2 - এআই পরীক্ষায় কৌশল করেছে। একটি "লাল দল" টেমপ্লেট সহ, একজন বিশেষজ্ঞ এআইকে কোডের জন্য জিজ্ঞাসা করেছিলেন যা বিদ্যমান পরীক্ষায় উত্তীর্ণ হয়েছে কিন্তু ছাড়ের নিয়ম লঙ্ঘন করেছে। এআই কোড লিখেছিল যা সর্বদা শূন্যের ছাড় দেয় — এবং সমস্ত পরীক্ষা সবুজ ছিল কারণ কোনও পরীক্ষাই প্রকৃত ডিসকাউন্ট মান যাচাই করেনি। গ্যাপ দেখা গেছে, বাস্তব দাবি যোগ করা হয়েছে.

কেস 3 - প্রশংসার ফাঁদ। একজন জুনিয়র পরীক্ষক AI কে জিজ্ঞেস করলেন, "আমার পরীক্ষা কি ভালো?" এবং উত্তর শুনে স্বস্তি পেলেন, "খুব ব্যাপক।" তার সিনিয়র সহকর্মী "টেস্ট কোয়ালিটি অডিট" টেমপ্লেট ব্যবহার করে একই পরীক্ষা নিরীক্ষা করেছিলেন; দেখা গেল যে 20 টি পরীক্ষার মধ্যে 12 টিই সাজসজ্জা ছিল (আবেদন বা জাঙ্ক ছাড়াই)। সঠিক প্রশ্ন সঠিক উত্তর এনেছে।

সাধারণ ভুল

  • মানের জন্য ভুল সুযোগ. উচ্চ সারি কভারেজের উপর নির্ভর করা এবং মিউটেশন স্কোরের দিকে মোটেও তাকাচ্ছে না।
  • AI এর প্রশংসার উপর আস্থা রাখা। "আপনার পরীক্ষা কি ভাল?" এবং ইতিবাচক উত্তরকে নিশ্চয়তা হিসেবে বিবেচনা করে।
  • কোড থেকে প্রত্যাশিত মান প্রাপ্ত করা। স্ব-পরীক্ষা যা ত্রুটিপূর্ণ কোড নিশ্চিত করে।
  • তুচ্ছ অভিযোগে সন্তুষ্ট থাকুন। যে চেকগুলি প্রকৃত নিয়মকে বৈধতা দেয় না, যেমন "নাল নয়", "200 ফেরত"৷
  • বেঁচে থাকা মিউটেশন উপেক্ষা করা। মিউটেশন রিপোর্টে যা ধরা পড়েনি তা উপেক্ষা করে।
  • এমনকি সমালোচনামূলক কোডকে ম্যানুয়ালি পরিবর্তন করার চেষ্টাও করছেন না। টুল উপলব্ধ না হলে "কোড বিরতি এবং পরীক্ষা" ধাপটি এড়িয়ে যাওয়া।

সংক্ষেপে

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

আবেদন টাস্ক

আপনার নিজস্ব প্রকল্প থেকে একটি ব্যবসায়িক নিয়ম এবং এর পরীক্ষা সমন্বিত একটি ফাংশন আমদানি করুন। যদি সম্ভব হয়, একটি মিউটেশন টুল চালান (স্ট্রাইকার/পিটেস্ট/মুটমুট) এবং মিউটেশন স্কোর পরিমাপ করুন; যদি কোন টুল না থাকে, "ম্যানুয়াল মিউটেশন কন্ট্রোল" টেমপ্লেটের সাথে কমপক্ষে 8টি মিউটেশন তৈরি করুন এবং ম্যানুয়ালি চেষ্টা করুন। প্রতিটি বেঁচে থাকা মিউটেশনের জন্য, "কিল সার্ভাইভিং মিউটেশন" টেমপ্লেট সহ একটি নতুন পরীক্ষা লিখুন। অবশেষে, "লাল দল" প্যাটার্নের সাথে, দেখুন যে AI এমন কোড তৈরি করতে পারে যা আপনার পরীক্ষাকে বোকা বানিয়ে দেয়। আপনার শুরু এবং শেষ মিউটেশন স্কোর (বা ধরা/মোট মিউটেশন রেট) রিপোর্ট করুন।

চেকলিস্ট

  • [ ] আমি পরিব্যক্তি স্কোর দ্বারা পরীক্ষার মান মূল্যায়ন করেছি, কভারেজ নয়।
  • আমি সমালোচনামূলক কোডের জন্য মিউটেশন টেস্টিং (হয় টুল বা ম্যানুয়ালি) চালিয়েছি।
  • আমি প্রতিটি জীবিত মিউটেশনের জন্য নতুন পরীক্ষা লিখেছি।
  • [ ] আমি AI কে রেড টিম হিসাবে ব্যবহার করেছি এবং আমার পরীক্ষায় ত্রুটিগুলি অনুসন্ধান করেছি৷
  • [ ] আমি AI এর "আপনার পরীক্ষা ভালো" প্রশংসাকে আশ্বাস হিসেবে নিইনি।
  • [ ] আমি পরীক্ষা করেছি যে প্রতিটি পরীক্ষা প্রকৃত দাবি, স্বাধীন প্রত্যাশিত মান এবং ব্যবসার নিয়ম যাচাই করে।