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

রিগ্রেশন টেস্টিং, টেস্ট রক্ষণাবেক্ষণ, এবং ভঙ্গুর পরীক্ষাগুলির বিরুদ্ধে লড়াই করা

লাভ:

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

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

ভঙ্গুর পরীক্ষার মূল কারণ

ভঙ্গুর পরীক্ষা হল সবচেয়ে ছলনাময় পরীক্ষার সমস্যা: এটি পাস হোক বা ব্যর্থ হোক তা নির্ভরযোগ্য নয়, দলকে "এটি আবার আটকে গেছে, আবার চালাতে হবে" - এই অভ্যাসের দিকে ঠেলে দেয় - এবং এই অভ্যাসটি একদিন "ফ্ল্যাকি" হিসাবে একটি আসল বাগকে উপেক্ষা করবে। প্রধান মূল কারণ:

  • সময়/দৌড়ের অবস্থা: পরীক্ষা শেষ হওয়ার জন্য অপেক্ষা না করে ফলাফল পরীক্ষা করে। সবচেয়ে সাধারণ কারণ।
  • অর্ডার নির্ভরতা: পরীক্ষাগুলি একে অপরের রেখে যাওয়া ডেটার উপর নির্ভর করে; অর্ডার পরিবর্তন হলে এটি ভেঙে যায়।
  • ভাগ করা কেস: একাধিক পরীক্ষা একই পরীক্ষার ডেটা/ব্যবহারকারী ব্যবহার করে, বিরোধপূর্ণ।
  • বাহ্যিক নির্ভরতা: বাস্তব নেটওয়ার্ক, তৃতীয় পক্ষের পরিষেবা, সিস্টেম সময়, এলোমেলো মান।
  • পরিবেশের পার্থক্য: স্থানীয়তে স্যুইচ করে, CI তে থাকে (নিরন্তর ইন্টিগ্রেশন এনভায়রনমেন্ট)।
সতর্কতা: "কয়েকবার পুনরায় চেষ্টা করে" একটি ভঙ্গুর পরীক্ষায় উত্তীর্ণ হওয়া প্রায়শই একটি প্রকৃত সমসাময়িক ত্রুটিকে মুখোশ করে দেয়। পুনরায় চেষ্টা করুন একটি ডায়গনিস্টিক টুল, একটি চিকিত্সা নয়। প্রথমে মূল কারণ খুঁজুন; শুধুমাত্র নথিভুক্ত, সত্যিকারের বাহ্যিক অস্থিরতার জন্য একটি শেষ অবলম্বন হিসাবে পুনরায় চেষ্টা ব্যবহার করুন।

পরীক্ষা রক্ষণাবেক্ষণ: প্যাকেজ সুস্থ রাখা

রিগ্রেশন স্যুট একটি বাগানের মত; যত্ন না নিলে আগাছা দখল করে নেবে। AI তিনটি রক্ষণাবেক্ষণের কাজে সহায়তা করে:

1. ডুপ্লিকেট/অপ্রয়োজনীয় পরীক্ষা পরিষ্কার করা। সময়ের সাথে সাথে একই জিনিস পরীক্ষা করার জন্য প্রচুর সংখ্যক মামলা জমা হয়। AI অনুরূপ পরীক্ষার গ্রুপিং এবং মার্জ করার পরামর্শ দেয়।

2. ভঙ্গুর পরীক্ষা নির্ণয়. আপনি AI কে পরীক্ষার কোড এবং অস্থিরতার প্যাটার্ন দেন; সম্ভাব্য মূল কারণ এবং স্থায়ী সমাধানের পরামর্শ দেয়।

3. পরীক্ষা নির্বাচন/অগ্রাধিকার। প্রতিটি পরিবর্তনের সাথে পুরো প্যাকেজ চালানো ব্যয়বহুল। পরীক্ষার প্রভাব বিশ্লেষণের সাথে (পরিবর্তিত কোডের উপর ভিত্তি করে শুধুমাত্র প্রাসঙ্গিক পরীক্ষা নির্বাচন করা), AI সুপারিশ করে কোন পরীক্ষাগুলি আগে চালানো উচিত। যাইহোক, সম্পূর্ণ প্রি-রিলিজ প্যাকেজ আবশ্যক।

কোয়ারেন্টাইন: ভঙ্গুর পরীক্ষার সঠিক ব্যবস্থাপনা

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

পরামর্শ: প্রতিটি কোয়ারেন্টাইন রেকর্ডে একটি "মালিক" এবং একটি "শেষ পর্যালোচনার তারিখ" যোগ করুন। পরিত্যক্ত কোয়ারেন্টাইন স্থায়ী ডাম্পে পরিণত হয়; ভঙ্গুর পরীক্ষা সেখানে চিরকাল বাস করে কারণ কেউ যত্ন করে না।

রিগ্রেশন কৌশল টেবিল

স্ট্যাটাস

কৌশল

AI এর ভূমিকা

ছোটখাট সংশোধন

আক্রান্ত এলাকা + ধোঁয়া পরীক্ষা

প্রাসঙ্গিক পরীক্ষা নির্বাচন করুন

নতুন বৈশিষ্ট্য

সম্পর্কিত মডিউল + ইন্টিগ্রেশন

একটি নতুন রিগ্রেশন মামলা প্রস্তাব

বড় রিফ্যাক্টর

সম্পূর্ণ রিগ্রেশন প্যাকেজ

কভারেজ ফাঁক বিশ্লেষণ

প্রাক মুক্তি

সম্পূর্ণ প্যাকেজ + অনুসন্ধান

অগ্রাধিকার এবং সময়কাল অনুমান

জরুরী লাইভ ফিক্স

কেন্দ্রীভূত + সমালোচনামূলক পথ

ন্যূনতম নিরাপদ পরীক্ষা সেট

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

দুর্বল: "এই পরীক্ষা কখনও কখনও ব্যর্থ হয়, এটি ঠিক করুন।"
শক্তিশালী: "এই পরীক্ষাটি 10 রানের মধ্যে 3টিতে ব্যর্থ হয়, কোড অপরিবর্তিত। অস্থিরতার মূল কারণ নির্ণয় করুন: সময়/জাতি, অর্ডার নির্ভরতা, ভাগ করা অবস্থা, বাহ্যিক নির্ভরতা, বা পরিবেশের পার্থক্য হতে পারে। পরীক্ষায় কোন লাইনটি প্রতিটি সম্ভাব্য কারণকে নির্দেশ করে তা দেখান। স্থায়ী সমাধানের পরামর্শ দিন; উপসর্গ-দমন করার পরামর্শ দেবেন না। ত্রুটি ট্রেইল: [লগ]।"

শক্তিশালী প্রম্পট; রোগ নির্ণয়কে মূল কারণের দিকে নির্দেশ করে এবং লক্ষণ দমনকে স্পষ্টভাবে নিষিদ্ধ করে।

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

1) ভঙ্গুর পরীক্ষা নির্ণয়:

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

2) একটি রিগ্রেশন কেস প্রস্তাব করা:

নিম্নলিখিত পরিবর্তন করা হয়েছিল: [পরিবর্তন/পিআর সারাংশ]। বর্তমান আচরণগুলি তালিকাভুক্ত করুন যে এই পরিবর্তনটি ভেঙে যাবে এবং প্রতিটির জন্য একটি রিগ্রেশন টেস্ট কেস প্রস্তাব করুন। বিশেষ করে পার্শ্বপ্রতিক্রিয়া এবং ভাগ করা নির্ভরতার ক্ষেত্রগুলিকে হাইলাইট করুন।

3) ডুপ্লিকেট পরীক্ষা পরিষ্কার:

নীচের পরীক্ষা স্যুট দেখুন. গ্রুপ সদৃশ বা ওভারল্যাপিং কেস যা একই আচরণ পরীক্ষা করে; প্রতিটি দলের জন্য আমার কোনটি রাখা উচিত এবং কোনটি একত্রিত করা উচিত তা পরামর্শ দিন। কভারেজ হারানোর ঝুঁকি থাকলে সতর্ক করুন। পরীক্ষা: [তালিকা/কোড]

4) পরীক্ষার প্রভাব নির্বাচন:

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

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

কেস 1 — প্রকৃত ভুল পুনঃপ্রচেষ্টা দ্বারা আবৃত। একটি দল মাঝে মাঝে অবশিষ্ট পেআউট পরীক্ষায় 3টি পুনঃপ্রচার যোগ করেছে; পরীক্ষা সবসময় "পাশ" ছিল এখন. "ভঙ্গুর পরীক্ষা ডায়াগনস্টিক" প্রয়োগ করে দেখা গেছে যে অস্থিরতা একটি বাস্তব জাতিগত অবস্থা থেকে এসেছে: উচ্চ লোড হলে, অর্থপ্রদানের নিশ্চিতকরণ কখনও কখনও দ্বিগুণ প্রক্রিয়া করা হয়। কয়েক মাস ধরে, পুনরায় চেষ্টা করুন এমন একটি বাগ ঢেকে রেখেছে যার ফলে প্রকৃত অর্থের লাইভ ক্ষতি হতে পারে। মূল কারণ সংশোধন করা হয়েছে, আবার চেষ্টা করে সরানো হয়েছে৷

কেস 2 — প্যাকেজ সঙ্কুচিত হয়েছে, গতি বৃদ্ধি পেয়েছে। 1,400টি পরীক্ষার একটি রিগ্রেশন স্যুট 55 মিনিট সময় নেয়। "ডুপ্লিকেট টেস্ট ক্লিনিং" সহ, 380 টি পরীক্ষা ডুপ্লিকেট বা কভার হয়ে গেছে; একত্রিত প্যাকেজটি 900টি পরীক্ষায় কমিয়ে আনা হয়েছিল, সময়টি 34 মিনিটে হ্রাস করা হয়েছিল, কভারেজটি পরিমাপযোগ্যভাবে হ্রাস করা হয়নি। দ্রুত প্রতিক্রিয়া দলকে আরও ঘন ঘন পরীক্ষা করতে উত্সাহিত করেছে।

কেস 3 - অর্ডার নির্ভরতা। একটি পরীক্ষা সর্বদা স্থানীয়ভাবে পাস হবে, কিন্তু এটি এলোমেলোভাবে CI-এ ব্যর্থ হবে। এআই ডায়াগনস্টিকস দেখিয়েছে যে পরীক্ষাটি অন্য পরীক্ষার দ্বারা তৈরি ব্যবহারকারীর উপর নির্ভর করে, সিআই-তে এটি ভেঙে গেছে কারণ পরীক্ষাগুলি সমান্তরাল/ভিন্ন ক্রমে চলছিল। প্রতিটি পরীক্ষা তার নিজস্ব ডেটা স্থাপন করার জন্য করা হয়েছিল; সিদ্ধান্তহীনতা শেষ।

সাধারণ ভুল

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

সংক্ষেপে

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

আবেদন টাস্ক

আপনার নিজের প্রকল্প থেকে একটি পরীক্ষা চয়ন করুন যা আপনি জানেন যে ভঙ্গুর (বা অস্থির বলে মনে হয়)। মূল কারণ প্রার্থীদের বের করুন এবং "ভঙ্গুর পরীক্ষা নির্ণয়" টেমপ্লেট দিয়ে পরীক্ষায় প্রমাণের লাইন যাচাই করুন। মূল কারণ চিহ্নিত করুন এবং পুনরায় চেষ্টা না করে একটি স্থায়ী সমাধান বাস্তবায়ন করুন। তারপর আপনার প্যাকেজ থেকে 10টি পরীক্ষা নির্বাচন করুন এবং "ডুপ্লিকেট টেস্ট ক্লিনআপ" এর সাথে একত্রিত করা যেতে পারে সেগুলি খুঁজুন। রিপোর্ট করুন কতগুলি পরীক্ষার অস্থিরতা আপনি তাদের মূল কারণ থেকে সমাধান করেছেন এবং কতগুলি অপ্রয়োজনীয় কেস আপনি স্যুট থেকে সরিয়েছেন৷

চেকলিস্ট

  • আমি ভঙ্গুর পরীক্ষার মূল কারণ নির্ণয় করেছি; আমি উপসর্গ চাপা না.
  • [ ] আমি পুনঃপ্রচারকে একটি ন্যায়সঙ্গত শেষ অবলম্বন হিসাবে বিবেচনা করেছি, একটি প্রতিকার নয়।
  • [ ] আমি পরীক্ষাগুলিকে স্বাধীন এবং নির্ধারক করেছি (বাহ্যিক নির্ভরতা থেকে বিচ্ছিন্ন)।
  • [ ] আমি রিগ্রেশন স্যুট থেকে ডুপ্লিকেট/অপ্রয়োজনীয় পরীক্ষা ছাঁটাই করেছি।
  • [ ] আমি পরিবর্তনের উপর ভিত্তি করে পরীক্ষা করতে বেছে নিয়েছি, কিন্তু সম্পূর্ণ প্যাকেজ প্রি-রিলিজ চালিয়েছি।
  • "আবার আটকে, পাস" সংস্কৃতির বিরুদ্ধে আমি প্রতিটি লালকে গুরুত্ব সহকারে নিয়েছি।