লাভ:
- কৃত্রিম বুদ্ধিমত্তা সহ মজবুত UI পরীক্ষার কোড তৈরি করার ক্ষমতা, ডেটা-টেস্টিড, ওপেন ওয়েটিং সহ, এবং নিশ্চিত করে যে প্রকৃত ব্যবহারকারীর ফলাফল যাচাই করে
- ভঙ্গুর পরীক্ষাগুলি এড়ানোর ক্ষমতা (খারাপ নির্বাচক, অন্ধ অপেক্ষা) এবং পৃষ্ঠা অবজেক্ট মডেল কাঠামোতে পরীক্ষাগুলি বজায় রাখা সহজ করে তোলে
- কোড ভঙ্গ করে উত্পাদিত প্রতিটি UI পরীক্ষা পরীক্ষা করার ক্ষমতা এবং জাল-পাশ করা পরীক্ষাগুলি সনাক্ত ও ঠিক করে
প্রতিটি ক্লিক, প্রতিটি ফর্ম পূরণ, একটি ব্যবহারকারী ব্রাউজারে করা প্রতিটি পৃষ্ঠার পরিবর্তন হাত দিয়ে বারবার পরীক্ষা করা যায় না — সেই কারণেই UI পরীক্ষা অটোমেশন (ইউজার ইন্টারফেস; এই পরীক্ষাগুলি প্রোগ্রাম্যাটিকভাবে একটি বাস্তব ব্রাউজার চালানোর মাধ্যমে ব্যবহারকারীর আচরণের অনুকরণ করে) বিদ্যমান। সেলেনিয়াম, নাট্যকার এবং সাইপ্রেস এই কাজের জন্য সবচেয়ে সাধারণ সরঞ্জাম। কৃত্রিম বুদ্ধিমত্তা (AI) এই সরঞ্জামগুলির জন্য কোড লেখার ক্ষেত্রে অত্যন্ত দক্ষ: আপনি একটি পরীক্ষার ক্ষেত্রে বর্ণনা করেন, AI আপনাকে একটি কার্যকর অটোমেশন স্ক্রিপ্টের একটি খসড়া দেয়। কিন্তু এখানে এই মডিউলটির কেন্দ্রীয় সতর্কতা আবার কার্যকর হয়: UI পরীক্ষার কোড যা AI তৈরি করে তা প্রায়ই ভঙ্গুর পরীক্ষা হতে পারে যেগুলি "সবুজ আলো কিন্তু ভুল জিনিসটি যাচাই করে" বা বাতাসে ফ্ল্যাপ করে। আপনার কাজ এই কোডটি চালানো নয়, কিন্তু নিশ্চিত করা যে এটি আসলে দৃঢ়ভাবে সঠিক জিনিসটি যাচাই করে।
এই ইউনিটে, আমরা AI এর সাথে শক্তিশালী, রক্ষণাবেক্ষণযোগ্য এবং সত্যিকারের বৈধ UI পরীক্ষা তৈরি করার লক্ষ্য রাখি; আপনি ভঙ্গুর পরীক্ষা এড়াতে শিখবেন।
কঠিন UI পরীক্ষার তিনটি স্তম্ভ
1. সঠিক উপাদান লোকেটার। একটি পরীক্ষা পৃষ্ঠায় উপাদান খুঁজে পেতে একটি নির্বাচক ব্যবহার করে। AI প্রায়ই ভঙ্গুর নির্বাচক তৈরি করে: দীর্ঘ XPath পাথ (ঠিকানা পৃষ্ঠার কাঠামোর উপর অত্যধিক নির্ভরশীল), সিএসএস শ্রেণির নামের উপর ভিত্তি করে নির্বাচক (নকশা পরিবর্তন হলে বিরতি)। মজবুত উপায় হল ডেটা-টেস্টিডের মতো স্থিতিশীল বৈশিষ্ট্য যা ডেভেলপার পরীক্ষার জন্য যোগ করেছে। স্পষ্টভাবে AI উপর এটি আরোপ.
2. স্পষ্ট অপেক্ষা। UI পরীক্ষায় দুর্বলতার এক নম্বর উৎস হল সময়। ধ্রুব ঘুম (3) (অন্ধ অপেক্ষা) খারাপ অভ্যাস: কখনও কখনও এটি যথেষ্ট নয়, কখনও কখনও এটি সময় নষ্ট করে। সঠিক উপায় হল সুস্পষ্ট অপেক্ষা ব্যবহার করা, যা বলে "এই উপাদানটি উপস্থিত না হওয়া পর্যন্ত অপেক্ষা করুন"। নাট্যকার এটি মূলত স্বয়ংক্রিয়ভাবে করেন; সেলেনিয়ামে আপনাকে অবশ্যই স্পষ্টভাবে অনুরোধ করতে হবে।
3. অর্থপূর্ণ দাবী। পরীক্ষার ফলাফল যাচাই করা উচিত যে ব্যবহারকারী প্রকৃতপক্ষে দেখতে পাবে — যেমন "অর্ডার নম্বর স্ক্রিনে উপস্থিত হয়েছে", শুধু "পৃষ্ঠা লোড হয়েছে" নয়। যদি AI দ্বারা উত্পাদিত পরীক্ষায় কোনও দাবি না থাকে বা গুরুত্বহীন হয়, তবে সেই পরীক্ষাটি একটি ছদ্ম-পাস (1ম ইউনিট) তৈরি করে।
সতর্কতা: আপনি যখন প্রথম একটি AI-জেনারেটেড UI পরীক্ষা দেখেন, তখন সর্বাধিক তিনটি জিনিস পরীক্ষা করুন: নির্বাচকরা কি প্রতিশ্রুতিবদ্ধ (ডেটা-টেস্টিড), অপেক্ষা করছেন (কোন অন্ধ ঘুম নেই), এবং দাবিটি কি প্রকৃত ব্যবহারকারীর ফলাফল যাচাই করে? এই তিনটি ঠিক থাকলে, পরীক্ষা সম্ভবত কঠিন।
পেজ অবজেক্ট মডেল
পরীক্ষাগুলি বড় হওয়ার সাথে সাথে প্রতিটি পরীক্ষার ভিতরে নির্বাচকদের লেখা একটি রক্ষণাবেক্ষণের দুঃস্বপ্ন হয়ে ওঠে। পেজ অবজেক্ট মডেল (POM — ডিজাইন প্যাটার্ন যা প্রতিটি পৃষ্ঠা/স্ক্রীনের জন্য নির্বাচক এবং ক্রিয়াগুলিকে একটি একক শ্রেণিতে সংগ্রহ করে) নির্বাচককে এক জায়গায় রাখে; ইন্টারফেস পরিবর্তন হলে, আপনি এটি একটি একক ফাইলে আপডেট করুন। এআইকে সরাসরি না করে একটি POM কাঠামোতে পরীক্ষাগুলি তৈরি করতে দিন; এটি রক্ষণাবেক্ষণকে আমূল সহজ করে তোলে।
দুর্বল প্রম্পট / শক্তিশালী প্রম্পট
দুর্বল: "লগইন পৃষ্ঠার জন্য একটি সেলেনিয়াম পরীক্ষা লিখুন।"
শক্তিশালী: "নাট্যকার (টাইপস্ক্রিপ্ট) দিয়ে একটি লগইন ফ্লো পরীক্ষা লিখুন। নির্বাচকরা শুধুমাত্র ডেটা-টেস্টিড ব্যবহার করে; ব্যবহারকারী যা দেখেন তা নিয়ন্ত্রণ ব্যবহার করবেন না, পৃষ্ঠার শিরোনাম নয়।"
শক্তিশালী প্রম্পট; টুলটি ভাষা, নির্বাচক নীতি, অপেক্ষার কৌশল, আর্কিটেকচার (পিওএম) এবং অভিব্যক্তিপূর্ণ দাবী প্রত্যাশা দেয়।
ডেটা এবং পরিবেশের স্বাধীনতা পরীক্ষা করুন
একটি কঠিন UI পরীক্ষা শুধুমাত্র সঠিকভাবে লেখা হয় না, তবে এটির নিজস্ব পরীক্ষার ডেটা তৈরি ও পরিষ্কার করে। AI-উত্পন্ন পরীক্ষাগুলি প্রায়শই কোনও ব্যবহারকারী বা রেকর্ডের সাথে লিঙ্ক করে যা পরিবেশে ইতিমধ্যেই বিদ্যমান বলে ধরে নেওয়া হয় ("প্রশাসক ব্যবহারকারী হিসাবে লগ ইন করুন")। এই অনুমান ভেঙ্গে যায় যখন পরীক্ষা অন্য পরিবেশে বা অন্য পরীক্ষার পরে চলে (ইউনিট 9-এ অর্ডার নির্ভরতা সমস্যা)। সত্য হল যে প্রতিটি পরীক্ষা পরীক্ষার শুরুতে প্রয়োজনীয় ডেটা তৈরি করে (বা এটি একটি API কল দিয়ে প্রস্তুত করে) এবং শেষে এটি পরিষ্কার করে। স্পষ্টভাবে AI কে নির্দেশ দিন "এই পরীক্ষাটি পরীক্ষার মধ্যে নির্ভর করে এমন কোনও ডেটা সেট আপ করতে; বাইরে থেকে তৈরি ডেটা অনুমান করবেন না।"
আরেকটি গুরুত্বপূর্ণ বিষয় হল বাস্তব ব্যবহারকারীর ডেটা দিয়ে UI পরীক্ষা না করা। যদি পরীক্ষার পরিবেশে একটি উত্পাদন ডাটাবেস অনুলিপি ব্যবহার করা হয় তবে এই রেকর্ডগুলি প্রকৃত ব্যক্তিদের ডেটা; স্ক্রিনশট এবং পরীক্ষা রেকর্ডিং এই তথ্য প্রকাশ করতে পারে. সিন্থেটিক (কাল্পনিক) পরীক্ষার অ্যাকাউন্ট ব্যবহার করুন; এটি উভয়ই গোপনীয়তা রক্ষা করে এবং পরীক্ষাগুলিকে পুনরুত্পাদনযোগ্য করে তোলে। একটি প্রকৃত গ্রাহক অ্যাকাউন্টের সাথে একটি "অর্ডার বাতিলকরণ" পরীক্ষা পরিচালনা করা একটি নৈতিক এবং অপারেশনাল ভুল উভয়ই।
পরামর্শ: যতটা সম্ভব কম UI পরীক্ষা রাখুন; প্রকৃত যাচাইকরণ API এবং ইউনিট পরীক্ষাগুলিতে ছেড়ে দিন, যা দ্রুত এবং স্থিতিশীল। UI পরীক্ষা ব্যয়বহুল এবং ভঙ্গুর — শুধুমাত্র সত্যিকারের এন্ড-টু-এন্ড ব্যবহারকারীর প্রবাহ (পরীক্ষা পিরামিড লজিক) যাচাই করতে এটি ব্যবহার করুন।
যানবাহনের তুলনা
বৈশিষ্ট্য
সেলেনিয়াম
নাট্যকার
সাইপ্রেস
ভাষা
জাভা, সি#, পাইথন, জেএস
JS/TS, Python, .NET, Java
জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্ট
স্বয়ংক্রিয় স্ট্যান্ডবাই
না (হাতে)
হ্যাঁ (শক্তিশালী)
হ্যাঁ
মাল্টি ব্রাউজার
প্রশস্ত
ক্রোমিয়াম/ফায়ারফক্স/ওয়েবকিট
ক্রোমিয়াম-প্রধান
ভঙ্গুরতার প্রবণতা
উচ্চ (ম্যানুয়াল স্ট্যান্ডবাই)
কম
কম
শেখার সহজ
মাঝারি
সহজ
সহজ
সমান্তরাল অপারেশন
গ্রিড প্রয়োজন
অন্তর্নির্মিত
আবাসিক/প্রদেয়
AI থেকে একটি কোড অনুরোধ করার সময়, এটি কোন গাড়ির অন্তর্গত তা স্পষ্টভাবে বলুন; অন্যথায়, এটি বিভ্রান্তিকর, অ-কার্যকর কোড তৈরি করতে পারে।
চারটি অনুলিপিযোগ্য টেমপ্লেট
1) সলিড UI পরীক্ষা প্রজন্ম:
আপনার ভূমিকা: সিনিয়র টেস্ট অটোমেশন ইঞ্জিনিয়ার।নিম্নলিখিত প্রবাহের জন্য [টুল + ভাষা] দিয়ে পরীক্ষা লিখুন: [প্রবাহ]।নিয়ম:- শুধুমাত্র নির্বাচকদের ডেটা-পরীক্ষা; XPath/CSS-শ্রেণী ব্যবহার করা। - অন্ধ ঘুম নেই; স্পষ্ট/স্বয়ংক্রিয় অপেক্ষা ব্যবহার করুন। - পেজ অবজেক্ট মডেল প্রয়োগ করুন। - প্রতিটি দাবীকে প্রকৃত ব্যবহারকারীর ফলাফল যাচাই করতে দিন। প্রতিটি পরীক্ষার শুরুতে মন্তব্য করুন যে গ্রহণযোগ্যতার মানদণ্ড আপনি যাচাই করছেন।
2) ভঙ্গুরতা নিয়ন্ত্রণ:
ভঙ্গুরতার জন্য নিম্নলিখিত UI পরীক্ষাটি পরীক্ষা করুন: - একটি অস্থির নির্বাচক (দীর্ঘ
3) পেজ অবজেক্টে রূপান্তর:
নিম্নলিখিত প্লেইন টেস্ট কোডটিকে পেজ অবজেক্ট মডেল স্ট্রাকচারে রূপান্তর করুন। পৃষ্ঠা ক্লাসে নির্বাচক এবং ক্রিয়াগুলি সরান; পরীক্ষা ফাইলটি শুধুমাত্র দৃশ্যকল্প প্রবাহ পড়তে দিন। [টুল/ভাষা]।কোড: [কোড পেস্ট করুন]
4) সিউডো-ট্রানজিশন প্রমাণ:
প্রমাণ করুন যে এই UI পরীক্ষাটি আসলে যাচাই করে: আমি অ্যাপ্লিকেশন কোডে কোন একক পরিবর্তন করব যা এই পরীক্ষাটিকে লাল করে দেবে? আপনি যদি এমন কোনো পরিবর্তন খুঁজে না পান যা পরীক্ষাটি ভেঙে দেবে, তাহলে পরীক্ষাটি অপর্যাপ্ত; অনুপস্থিত দাবি যোগ করুন। পরীক্ষা: [পেস্ট পরীক্ষা]
তিনটি মিনি কেস
কেস 1 — ভঙ্গুর নির্বাচক থেকে মুক্তি। AI দিয়ে একটি দল উত্পাদিত 40 টি পরীক্ষার মধ্যে, 70% একটি ইন্টারফেস আপডেটের পরে ভেঙে গেছে; তাদের কোনোটাই প্রকৃত বাগ ছিল না, তারা সবই ভঙ্গুর XPath নির্বাচক। দলটি "ভঙ্গুরতা পরীক্ষা" টেমপ্লেট সহ পরীক্ষাগুলিকে একটি ডেটা-টেস্টিড বেসে রূপান্তরিত করেছে। পরবর্তী তিনটি ইন্টারফেস আপডেটে, মিথ্যা বিরতির সংখ্যা শূন্যে নেমে এসেছে; রক্ষণাবেক্ষণের সময় প্রতি সপ্তাহে 6 ঘন্টা থেকে 30 মিনিটে কমেছে।
কেস 2 — জাল-পাশ করা UI পরীক্ষা। এআই একটি "কার্টে যোগ করুন" পরীক্ষা তৈরি করেছে; পরীক্ষা সবুজ ছিল. যখন "ফেক-প্রুফ-অফ-প্যাসেজ" টেমপ্লেটটি চালানো হয়েছিল, পরীক্ষাটি শুধুমাত্র বোতাম ক্লিক এবং পৃষ্ঠার শিরোনাম পরীক্ষা করার জন্য প্রদর্শিত হয়েছিল, কার্ট কাউন্টারটি বেড়েছে কিনা তা যাচাই করেনি। কার্ট লজিক সম্পূর্ণ ভেঙ্গে গেলেও পরীক্ষায় উত্তীর্ণ হয়েছে। সত্য দাবি যোগ করা হয়েছে (কার্ট ব্যাজ হচ্ছে "1")।
কেস 3 - অন্ধ অপেক্ষার ফাঁদ। AI দ্বারা উত্পাদিত সেলেনিয়াম পরীক্ষায়, প্রতিটি পদক্ষেপের পরে ঘুম (2) ছিল; 60টি পরীক্ষায় 14 মিনিট সময় লেগেছে এবং এখনও মাঝে মাঝে ভেঙে গেছে। খোলা অপেক্ষায় স্যুইচ করার পরে (উপাদানটি ক্লিকযোগ্য হওয়ার জন্য অপেক্ষা করুন) সময় 5 মিনিটে নেমে যায় এবং ভঙ্গুরতা অদৃশ্য হয়ে যায়। অন্ধ অপেক্ষা ধীর এবং অবিশ্বস্ত উভয় ছিল.
সাধারণ ভুল
- ভঙ্গুর নির্বাচকদের সাথে একমত। AI দ্বারা উত্পন্ন দীর্ঘ XPaths ব্যবহার করে; প্রথম ইন্টারফেস পরিবর্তনে টেস্ট ক্র্যাশ হয়।
- অন্ধ 'ঘুম' রেখে যাওয়া। একটি নির্দিষ্ট অপেক্ষার সাথে সময় "সমাধান"; উভয় ধীর এবং সিদ্ধান্তহীন।
- তুচ্ছ দাবী। শুধু যাচাই করুন যে পৃষ্ঠাটি লোড হয়েছে; প্রকৃত ব্যবহারকারীর ফলাফল পরীক্ষা করা হচ্ছে না (জাল-পাস)।
- POM ছাড়াই বেড়ে উঠুন। প্রতিটি পরীক্ষার নির্বাচকদের বিতরণ; ইন্টারফেস পরিবর্তন হলে কয়েক ডজন ফাইল ম্যানুয়ালি আপডেট করা।
- টুল উল্লেখ না. আপনি কোন টুল/ভাষা চান তা এআইকে না বলা; অগোছালো, নন-ওয়ার্কিং কোড হচ্ছে।
- আপনি যখন জেনারেট করা কোড চালান এবং পাস করেন তখন বিশ্বাস করা হয়। কোড ভঙ্গ করে পরীক্ষা না.
সংক্ষেপে
UI টেস্টিং অটোমেশন প্রোগ্রামের সাথে প্রকৃত ব্রাউজার ড্রাইভ করে ব্যবহারকারীর আচরণ যাচাই করে। AI এই কোডটি দ্রুত তৈরি করে, কিন্তু দুটি বড় সমস্যা রয়েছে: ভঙ্গুর পরীক্ষা (খারাপ নির্বাচক, অন্ধ অপেক্ষা) এবং জাল-পাশ করা পরীক্ষা (অসম্পূর্ণ/তুচ্ছ দাবি)। কঠিন UI পরীক্ষার তিনটি স্তম্ভ হল প্রতিশ্রুতি নির্বাচক (ডেটা-টেস্টিড), স্পষ্টভাবে অপেক্ষা করুন এবং নিশ্চিত করুন যা প্রকৃত ব্যবহারকারীর ফলাফল যাচাই করে। পৃষ্ঠা অবজেক্ট মডেলে পরীক্ষাগুলি তৈরি করা আমূলভাবে রক্ষণাবেক্ষণকে সহজ করে। প্রতিটি জেনারেট করা পরীক্ষাকে "কোন পরিবর্তনটি ভেঙ্গে ফেলবে?" প্রশ্ন দিয়ে পরীক্ষা করুন।
আবেদন টাস্ক
আপনার নিজস্ব প্রকল্প থেকে একটি ব্যবহারকারী প্রবাহ নির্বাচন করুন (যেমন লগইন বা অনুসন্ধান)। "শক্তিশালী UI টেস্ট জেনারেশন" টেমপ্লেট সহ AI লেখার পরীক্ষা নিন। তারপর: (1) নির্বাচকদের পরীক্ষা করুন এবং ঠিক করুন এবং একটি "ভঙ্গুরতা পরীক্ষা" দিয়ে অপেক্ষা করুন, (2) প্রমাণ করুন যে প্রতিটি পরীক্ষা আসলে একটি "ছদ্ম-পাস প্রমাণ" দিয়ে যাচাই করে, (3) কোডটি ভাঙ্গুন এবং পর্যবেক্ষণ করুন যে পরীক্ষাটি লাল হয়ে গেছে। উত্পাদিত এবং সংশোধিত পরীক্ষার সংখ্যা এবং আপনার পাওয়া দুর্বলতা এবং ছদ্ম-পাসের সংখ্যা রিপোর্ট করুন।
চেকলিস্ট
- [ ] আমি AI কে টুল, ভাষা, নির্বাচক নীতি এবং আর্কিটেকচার (POM) পরিষ্কারভাবে দিয়েছি।
- [ ] আমি যাচাই করেছি যে নির্বাচকরা ডেটা-পরীক্ষিত।
- [ ] আমি অন্ধ ঘুমের পরিবর্তে স্পষ্ট/স্বয়ংক্রিয় অপেক্ষা ব্যবহার নিশ্চিত করেছি।
- [ ] আমি পরীক্ষা করে দেখেছি যে প্রতিটি দাবী প্রকৃত ব্যবহারকারীর ফলাফল যাচাই করে।
- আমি কোড ভেঙ্গে প্রতিটি পরীক্ষা পরীক্ষা করেছি; দেখলাম লাল হয়ে গেছে।
- [ ] আমি পৃষ্ঠা অবজেক্ট মডেল কাঠামোতে পরীক্ষাগুলি সংগ্রহ করেছি।