আপনি কীভাবে সেলেনিয়াম (বা অনুরূপ) জন্য পরীক্ষা লিখতে পারেন যা নাবালিক বা প্রসাধনী পরিবর্তনের কারণে ব্যর্থ হয় না?


9

আমি গত সপ্তাহ বা তার বেশি সময় ব্যয় করে চলেছি সেলেনিয়াম শিখছি এবং আমরা যে ওয়েবসাইটটি চালু করতে চলেছি তার জন্য কয়েকটি ওয়েব পরীক্ষা তৈরি করছি। এটি শিখতে দুর্দান্ত হয়েছে, এবং আমি কিছু এক্সপথ এবং সিএসএস অবস্থানের কৌশলগুলি গ্রহণ করেছি।

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

সুতরাং আপনি কী সেলেনিয়াম (বা অন্যান্য অনুরূপ) পরীক্ষা লিখেছেন, এবং পরীক্ষাগুলির ভঙ্গুর প্রকৃতির সাথে আপনি কীভাবে আচরণ করবেন (বা কীভাবে আপনি ভঙ্গুর হওয়া বন্ধ করবেন) এবং আপনি কোন ধরণের পরীক্ষার জন্য সেলেনিয়াম ব্যবহার করেন?


যদি সামান্য পরিবর্তনগুলি পরীক্ষাগুলি ভাঙছে, তবে পরিবর্তনগুলি করার পরেও পরীক্ষাগুলি চালানো হচ্ছে না - যা পরীক্ষাগুলির পুরো পয়েন্ট। এছাড়াও, পরীক্ষাগুলি সম্পর্কে বিকাশকারীদের সচেতনতার অভাব বলে মনে হচ্ছে।
টালোনেক্স

1
@ ট্যালোনক্স - কেবলমাত্র এই ধরণের পরীক্ষা চালানোই যথেষ্ট নয়, যদি সামান্য পরিবর্তনের ফলে স্যুটটিতে বড় পরিবর্তন আসে তবে এটি বিকাশকারী, সিআই বাক্স বা পরীক্ষকরা চালিত কিনা তা নির্বিশেষে সমস্যা হতে চলেছে
FinnNk

@ ফিননেকে: সম্মত হন - ছোট পরিবর্তনগুলির ফলে বড় ধরনের পরিবর্তন ঘটে না। তার অর্থ পরীক্ষার কেসগুলি এমন কেউ লিখেছিলেন যিনি বিকাশকারীদের সাথে যোগাযোগ রাখেন না এবং পরিবর্তনগুলি করেন - যোগাযোগ ব্যবধানের মতো গন্ধ পান।
টালোনেক্স

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

2
আমি শিরোনামটি পরিবর্তন করেছি - আশা করি প্রশ্নের আরও কিছু প্রতিনিধি এবং খানিকটা নেতিবাচক।
জন হপকিনস

উত্তর:


7

সেলেনিয়ামের উদ্দেশ্য ইউআই-চালিত ইন্টিগ্রেশন পরীক্ষা তৈরি করা

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

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

এই ধরণের পরীক্ষাগুলি থেকে আপনার সমস্ত পরীক্ষার কভারেজ পাওয়ার চেষ্টা করবেন না । রবার্ট সি মার্টিন যুক্তি দিয়েছিলেন যে ইন্টিগ্রেশন টেস্টের মাধ্যমে আপনার কোডের কভারেজটি প্রায় 20% হওয়া উচিত । যখন ইনপুটটি বেশ কয়েকটি অ্যাপ্লিকেশন স্তর দূরে থাকে তখন কার্যকরকরণের সমস্ত পাথ পরীক্ষা করা অবাস্তব।

ইউনিট- এবং গ্রহণযোগ্যতা পরীক্ষার থেকে বেশিরভাগ পরীক্ষার কভারেজ পান । মধ্যে Gojko Adzic এর নিবন্ধ লিঙ্ক দেখুন FinnNk এর উত্তর। অ্যাডজিক গ্রহণযোগ্যতা পরীক্ষার মাধ্যমে ব্যবসায়ের লজিক পরীক্ষা এবং ইউআই বাইপাস করার বিষয়ে বারবার যুক্তি দেখিয়েছিলেন।

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


প্যাট্রিকউইলসওয়েল ডটকমের লিঙ্কটি বেশি কাজ করছে না, এবং এর জন্য অন্যান্য সংস্থান .. !!
মার্মিক

4

আপনি যখন তুচ্ছ সংখ্যার অতীতটি হয়ে যান তখন এই জাতীয় পরীক্ষা করার সময় সর্বাধিক গুরুত্বপূর্ণ বিষয়টি প্রতিসম পরিবর্তনের ধারণা - কোডের একটি ছোট পরিবর্তনের ফলে পরীক্ষার স্যুটে একটি ছোট পরিবর্তন আসতে পারে।

উদাহরণস্বরূপ, ধরা যাক আপনি 100 টি পরীক্ষায় দুটি পাঠ্য বাক্স সহ কারও নাম সংগ্রহ করেন। আপনি যদি এই পরীক্ষাগুলি সযত্নে লিখেন (বা সম্ভবত রেকর্ড-প্লেব্যাক ব্যবহার করছেন) তবে আপনার পরিবর্তনের জন্য 100 টি পরীক্ষা থাকবে। পরিবর্তে যদি আপনি একটি 'প্রবেশ নাম' পদক্ষেপটি বিমূর্ত করেন এবং এটি সরাসরি পরীক্ষার পরিবর্তে আপনার পরীক্ষাগুলিতে সেলেনিয়াম ব্যবহার করেন তবে আপনার পরিবর্তন করার জন্য আপনার কেবলমাত্র 1 জায়গা রয়েছে। এটি আপনার প্রসঙ্গের উপর নির্ভর করবে আপনি বিমূর্তির কত স্তর ব্যবহার করেন - তবে বিমূর্ততা ব্যবহার করা আপনার পরীক্ষাগুলি বজায় রাখার ক্ষেত্রে আরও দীর্ঘ পথ পাবে।

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

এই ধরণের পরীক্ষার ক্ষেত্রে গোজকো অ্যাডজিকের কাছে প্রচুর দুর্দান্ত পরামর্শ রয়েছে - তার মৃত্যুর সাইন এবং এটি কীভাবে বিশেষত এড়ানো যায় তা দেখুন


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

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

1

পরীক্ষাটি নিশ্চিত করে যে কোডটি প্রত্যাশার সাথে আচরণ করে। যদি আপনার পরীক্ষাগুলি নিয়মিতভাবে ভেঙে যায়, তবে পরীক্ষাগুলি হয় হয় সঠিক জিনিসটি পরীক্ষা করে না বা বিকাশকারীরা পরীক্ষাগুলি সম্পর্কে চিন্তা করে না।

ব্যক্তিগতভাবে আমি মনে করি যে কোনও <div>ট্যাগ উপস্থিতি যদি কোনও পরীক্ষা ভঙ্গ করে তবে পরীক্ষাটি অকারণে আশেপাশের ট্যাগগুলির উপর নির্ভরশীল এবং আরও লেন্সিয়েন্ট পদ্ধতির নেওয়া উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.