আমি কীভাবে জিইউআই পরীক্ষা করতে পারি?


154

আমার কোডের গণনাগুলি ভালভাবে পরীক্ষিত, তবে অনেকগুলি জিইউআই কোড রয়েছে বলে আমার সামগ্রিক কোডের কভারেজটি আমার চেয়ে কম is ইউনিট-টেস্টিং জিইউআই কোড সম্পর্কিত কোনও গাইডলাইন রয়েছে? এটি কি কোনও অর্থবোধ করে?

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

(আমি জাভা সুইং ব্যবহার করছি)


1
মার্টিন ফোলার ( মার্টিনফাউলার / আইএএডিএভি / লুই আর্চস html ) এর বিভিন্ন জিইআইআই আর্কিটেকচার সম্পর্কে একটি দুর্দান্ত নিবন্ধ রয়েছে । এটি ইউনিট পরীক্ষার ক্ষেত্রে জিইউআই আর্কিটেকচার ট্রেড অফকে বর্ণনা করে।
রোমান হোয়াং

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

1
কোড এবং JUnit এর কিছু GUI টুকরো সহ উদাহরণটি পাওয়া দুর্দান্ত হবে be
উইটোল্ড কাকজুরবা

1
আমি বলব শুধু আরাম করুন এবং বিরক্ত করবেন না। ইউনিট পরীক্ষার জন্য করা প্রচেষ্টা সর্বদা নেট উত্পাদনশীল হতে দেখা দেয় না।
কোডুলাইক

পুরানো প্রশ্ন এখনও, আপনি জিবিআইতে প্রবাহটি Jubula
Abi

উত্তর:


68

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


??? "কখনও কখনও এটি খুব ভালভাবে কাজ করে, এবং অন্য সময়ে এটির চেয়ে বেশি সমস্যা হয়" খুব অদ্ভুত কারণ বেশিরভাগ নতুন ভাষা এমভিসিমুখী হয় ... যা জিই (মডেল-ভিজ্যুয়াল) এর বাইরে যুক্তিযুক্ত ...
প্যাট্রিক দেশজার্ডিনস

14
তবুও, উপস্থাপনার যুক্তি জিইআইতে থাকবে। কখনও কখনও, এটি তুচ্ছ থেকে অনেক দূরে হতে পারে
Andrea


মার্টিন ফাউলারের ধারণার চিকিত্সা (আপনার নেটওয়ার্ক যেমন আমার মতো, আর্কাইভ.আর ফিল্টারগুলি ফিল্টার করে): মার্টিনফোলার.com
ক্রিস্টোফার বারম্যান

@ সি 24 ডাব্লু আপনাকে এই আয়নাটি টানার জন্য ধন্যবাদ, আপনি আসল এমভিপি :)
জন বাকের

38

অবশ্যই, উত্তরটি হ'ল এমভিসি ব্যবহার করা এবং জিওআই থেকে যতটা সম্ভব যুক্তি সরিয়ে নেওয়া।

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


3
আমি এই পদ্ধতির পছন্দ। সেট আপ এবং রক্ষণাবেক্ষণ করা জটিল, কিন্তু এটি আমাকে প্রয়োজনীয় রিগ্রেশন টেস্টিং ক্ষমতা দেয়।
স্টিভ ম্যাকলিয়ড

7
দানটেল আপনি বিন্দু মিস করেছেন। ওপেনজিএল একটি পিক্সেল নির্ভুল গ্রাফিক্স রেন্ডারিং এপিআই। কিউটি এর মতো জিইউআই অ্যাপ্লিকেশন ফ্রেমওয়ার্কগুলি সিস্টেম ক্রোমের উপর নির্ভরশীল হতে চলেছে, সুতরাং ফ্রেম বাফারটিকে হ্যাশ করা ভাল পদ্ধতির নয়।
বব সোমারস 22

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

24
@ সিনট্যাক্সটিটিআরআর0r: এই ধরণের অ-সুরক্ষা-সম্পর্কিত অ্যাপ্লিকেশনটিতে আপনি কী হ্যাশ ফাংশনটি সুপারিশ করবেন এবং এমডি 5 এর সাথে তুলনা করে কোন স্তরের পারফরম্যান্স লাভের আশা করা যায়?
রাষ্ট্রদ্রোহিতা majesté

1
আপনার উত্তরটির অর্থ "কখনই আপনাকে জিইআইআই ডিজাইন করবেন না এবং তাই এটি পরীক্ষা করবেন না"। কুল।
দিমস

10

আপনি চেষ্টা করতে পারেন ইউআইএসপেক 4 জে সুইং-ভিত্তিক জাভা অ্যাপ্লিকেশনগুলির জন্য একটি ওপেন সোর্স কার্যকরী এবং / অথবা ইউনিট পরীক্ষার লাইব্রেরি ...


2
আমি জাভা সুইং জিইউআইয়ের প্রয়োজনীয়তা বৈধতা পরীক্ষা করার জন্য এক মাস বা তার জন্য ইউআইএসপেক 4 জে ব্যবহার শুরু করেছি। আমি এখন পর্যন্ত এটি অনেক পছন্দ করে আসছি।
বাসাম

github.com/UISpec4J/UISpec4J বলেছে যে আপনার লিঙ্কটি অফিশিয়াল ওয়েবসাইট, তবে এটি আমার কাছে সেই আধিকারিক বলে মনে হচ্ছে না। আমি যা দেখতে পাচ্ছি তা হ'ল ব্লগিং সম্পর্কিত একটি ব্লগ
লুসিডব্রট

7

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


7

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

শসা আপনাকে এই জাতীয় পরীক্ষা লিখতে দেয়:

 Scenario: Dialog manipulation
    Given the frame "SwingSet" is visible
    When I click the menu "File/About"
    Then I should see the dialog "About Swing!"
    When I click the button "OK"
    Then I should not see the dialog "About Swing!"

কার্যত এটি দেখতে এই সুইঙ্গার ভিডিও ডেমোটি একবার দেখুন।


6

এখানে কিছু টিপস:

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

গ্রাফিকের জন্য, আপনার কোডটি গ্রাফিক উত্পন্ন করার জন্য সরবরাহ করা মানটি পরীক্ষা করা উচিত।


6

পরীক্ষা একটি শিল্প ফর্ম। আমি সম্মত হলাম যুক্তিটি যতটা সম্ভব জিইউআই অপসারণ করা উচিত। তারপরে আমরা সেখানে আমাদের ইউনিট পরীক্ষায় ফোকাস করতে পারি। অন্য কিছুর মতো পরীক্ষা করা ঝুঁকি হ্রাস সম্পর্কে। আপনার সবসময় সব কিছুর পরীক্ষা করা দরকার না তবে বিভিন্ন ক্ষেত্রে বিভিন্ন পরীক্ষার বিরতি দেওয়া সবচেয়ে ভাল কাজ।

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


3

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


3

আপনার প্রশ্নটি থেকে আমি যা সংগ্রহ করি তা হ'ল আপনি আপনার জিইউআই আচরণটি বিশদভাবে পরীক্ষা করার জন্য একটি স্বয়ংক্রিয় উপায়ের সন্ধান করছেন, আপনি যে উদাহরণটি দিয়েছেন তা পরীক্ষা করে এটি একটি বাঁক আসলে সঠিকভাবে আঁকছে কিনা তা পরীক্ষা করে।

ইউনিট টেস্টিং ফ্রেমওয়ার্কগুলি স্বয়ংক্রিয় পরীক্ষার করার একটি উপায় সরবরাহ করে, তবে আমি মনে করি আপনি যে ধরণের পরীক্ষাগুলি করতে চান তা জটিল ইন্টিগ্রেশন টেস্ট যা অনেকগুলি শ্রেণীর সঠিক আচরণ যাচাই করে, যার মধ্যে আপনার জিইউআই টুলকিট / লাইব্রেরির ক্লাসগুলি যা আপনি পরীক্ষা করতে চান না।

আপনার বিকল্পগুলি কী প্ল্যাটফর্মগুলি / টুলকিটস / ফ্রেমওয়ার্কগুলিতে ব্যবহার করেন তার উপর নির্ভর করে: উদাহরণস্বরূপ, Qt এর GUI কাঠামো হিসাবে ব্যবহার করা কোনও অ্যাপ্লিকেশন এর পরীক্ষাগুলি স্বয়ংক্রিয় করতে স্কোয়াশ ব্যবহার করতে পারে। আপনি একবার আপনার পরীক্ষার ফলাফল যাচাই করেছেন এবং পরবর্তী সময়ে স্বয়ংক্রিয়ভাবে সম্পাদিত পরীক্ষাগুলি যাচাইকৃত ফলাফলের সাথে তুলনা করে compare



2

শিল্পের testingকমত্য হিসাবে জিইউআই পরীক্ষার বিষয়ে আমার পদ্ধতির বিকাশ ঘটছে। তবে আমি মনে করি কয়েকটি মূল কৌশল উদ্ভূত হতে শুরু করেছে।

আমি পরিস্থিতিগুলির উপর নির্ভর করে এই এক বা একাধিক কৌশল ব্যবহার করি (উদাহরণস্বরূপ এটি কোন ধরণের জিইউআই হয়, এটি কত দ্রুত তৈরি করা দরকার, শেষ ব্যবহারকারীটি কে হবে ইত্যাদি who)

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

  2. অংশ পরিক্ষাকরণ. আপনি GUI আচরণের ফাংশন বা ছোট ইউনিটের জন্য পরীক্ষা লিখেন। উদাহরণস্বরূপ, আপনার গ্রাফগুলিকে একটি 'বেস' রঙের উপর ভিত্তি করে রঙের বিভিন্ন শেড গণনা করা প্রয়োজন। আপনি কোনও গণনাতে এই গণনাটি বের করতে এবং এর জন্য একটি ইউনিট পরীক্ষা লিখতে পারেন। আপনি জিইউআইতে এই জাতীয় যুক্তি অনুসন্ধান করতে পারেন (বিশেষত পুনঃব্যবহারযোগ্য যুক্তি) এবং এটিকে বুদ্ধিমান ফাংশনে নিষ্কাশন করতে পারেন, যা আরও সহজে ইউনিট পরীক্ষিত হতে পারে। এমনকি জটিল আচরণও এই পদ্ধতিতে বের করা এবং পরীক্ষা করা যেতে পারে - উদাহরণস্বরূপ, উইজার্ডের ধাপগুলির একটি ক্রম কোনও ফাংশনে নিষ্কাশন করা যেতে পারে এবং একটি ইউনিট-পরীক্ষা যাচাই করতে পারে যে কোনও ইনপুট দেওয়া হলে সঠিক পদক্ষেপটি ফিরে আসে।

  3. উপাদান এক্সপ্লোরার। আপনি একটি 'এক্সপ্লোরার' স্ক্রিন তৈরি করেন যার একমাত্র ভূমিকা আপনার জিইউআই তৈরির পুনঃব্যবহারযোগ্য উপাদানগুলির প্রতিটি প্রদর্শন করা। এই স্ক্রিনটি আপনাকে প্রতিটি উপাদানটির সঠিক চেহারা এবং অনুভূতি সঠিকভাবে চাক্ষুষভাবে যাচাই করার জন্য একটি দ্রুত এবং সহজ উপায় দেয়। আপনার সম্পূর্ণ অ্যাপ্লিকেশনটি ম্যানুয়ালি যাওয়ার চেয়ে উপাদান এক্সপ্লোরার আরও দক্ষ, কারণ ক) আপনাকে কেবল প্রতিটি উপাদান একবারে যাচাই করতে হবে, এবং খ) উপাদানটি দেখতে আপনাকে অ্যাপ্লিকেশনটির গভীরে নেভিগেট করতে হবে না, আপনি কেবল দেখতে পারেন এবং অবিলম্বে এটি যাচাই করুন।

  4. অটোমেশন পরীক্ষা। আপনি একটি পরীক্ষা লিখেছেন যা স্ক্রিন বা উপাদানগুলির সাথে ইন্টারঅ্যাক্ট করে, মাউস ক্লিকগুলি, ডেটা এন্ট্রি ইত্যাদির সিমুলেট করে, জোর করে যে অ্যাপ্লিকেশনটি সঠিকভাবে এই ম্যানিপুলেশনগুলি দিয়েছিল। আপনার অন্যান্য পরীক্ষাগুলি মিস করতে পারে এমন সম্ভাব্য বাগগুলি ক্যাপচার করতে এটি অতিরিক্ত ব্যাকআপ পরীক্ষা হিসাবে কার্যকর হতে পারে। আমি জিইউআইয়ের যে অংশগুলি সবচেয়ে বেশি ভাঙ্গার এবং / অথবা অত্যন্ত সমালোচনামূলক, সেগুলির জন্য অটোমেশন পরীক্ষার জন্য সংরক্ষণ করি re যে অংশগুলিতে আমি যত তাড়াতাড়ি সম্ভব কিছু জানতে চাইলে জানতে চাই। এটিতে অত্যন্ত জটিল ইন্টারেক্টিভ উপাদানগুলি অন্তর্ভুক্ত থাকতে পারে যা ভঙ্গকারী বা গুরুত্বপূর্ণ প্রধান পর্দার জন্য ঝুঁকির মধ্যে রয়েছে।

  5. ডিফ / স্ন্যাপশট পরীক্ষা। আপনি একটি পরীক্ষা লিখেছেন যা কেবল আউটপুটটিকে স্ক্রিনশট বা এইচটিএমএল কোড হিসাবে ক্যাপচার করে এবং এটি পূর্ববর্তী আউটপুটটির সাথে তুলনা করে। এই ভাবে, আপনি যখনই আউটপুট পরিবর্তন করবেন আপনি সতর্ক হন। আপনার জিইউআইয়ের ভিজ্যুয়াল দিকটি জটিল এবং / অথবা পরিবর্তনের সাপেক্ষে ভিন্ন ভিন্ন পরীক্ষাগুলি কার্যকর হতে পারে, সেক্ষেত্রে আপনি প্রদত্ত পরিবর্তনের সামগ্রিকভাবে জিইউআইয়ের উপর কী প্রভাব পড়েছে সে সম্পর্কে আপনি দ্রুত এবং চাক্ষুষ প্রতিক্রিয়া চান।

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

আমি একটি খুব দরকারী মেট্রিক হতে কোড কভারেজ খুঁজে পাইনি, তবে অন্যরা এটির জন্য একটি ব্যবহার খুঁজে পেতে পারে।

আমি মনে করি যে প্রথম পরিমাপটি হ'ল বাগগুলির সংখ্যা এবং তীব্রতা। আপনার প্রথম অগ্রাধিকার সম্ভবত একটি অ্যাপ্লিকেশন যা সঠিকভাবে কাজ করে functions যদি অ্যাপ্লিকেশনটি সঠিকভাবে কাজ করে তবে কম বা কোনও বাগ থাকতে হবে। যদি অনেকগুলি বা গুরুতর ত্রুটি থাকে তবে সম্ভবত, আপনি হয় পরীক্ষা করছেন না বা আপনার পরীক্ষাগুলি কার্যকর নয় not

বাগগুলি হ্রাস করা ছাড়াও অন্যান্য পদক্ষেপ যেমন কর্মক্ষমতা, ব্যবহারযোগ্যতা, অ্যাক্সেসযোগ্যতা, রক্ষণাবেক্ষণযোগ্যতা, এক্সটেনসিবিলিটি ইত্যাদি These এগুলি আলাদা হবে, আপনি কোন ধরণের অ্যাপ্লিকেশন তৈরি করছেন তার উপর নির্ভর করে, ব্যবসায়, শেষ ব্যবহারকারী ইত্যাদি etc.

এই সব আমার ব্যক্তিগত অভিজ্ঞতা এবং গবেষণা সেইসাথে একটি দুর্দান্ত লেখার আপ উপর উপর ভিত্তি করে তৈরি UI 'তে টেস্ট দ্বারা হ্যাম Vocke


1

আমি যা জানি, তা থেকে এটি বেশ জটিল, এবং সত্যই ভাষার উপর নির্ভর করে - অসংখ্য ভাষার জিইউআই পরীক্ষা করার নিজস্ব পদ্ধতি রয়েছে, তবে আপনাকে যদি সত্যিই জিইউআই পরীক্ষা করার প্রয়োজন হয় (মডেল / গুই ইন্টারেক্টের বিপরীতে), আপনাকে প্রায়শই করতে হবে একটি বাস্তব ব্যবহারকারী ক্লিক বোতাম অনুকরণ। উদাহরণস্বরূপ, Eclipse এ ব্যবহৃত SWT ফ্রেমওয়ার্কটি SWTBot , JFCUnit সরবরাহ করে ইতিমধ্যে উল্লেখ করা হয়েছে, মজিলার XUL এ এটি অনুকরণ করার নিজস্ব পদ্ধতি রয়েছে (এবং আমি তাদের ব্লগে যা পড়েছি তা থেকে এই পরীক্ষাগুলি বেশ ভঙ্গুর বলে মনে হয়)।

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


0

আপনি যদি সুইং ব্যবহার করছেন তবে ফেস্ট-সুইং আপনার জিইউআই চালনা এবং দৃser়তার পরীক্ষার জন্য কার্যকর। "যদি আমি বোতাম A তে ক্লিক করি, ডায়ালগ বি প্রদর্শিত হবে" বা "যদি আমি ড্রপ-ডাউন থেকে বিকল্প 2 নির্বাচন করি, সমস্ত চেকবক্সগুলি অনির্বাচিত হওয়া উচিত " এর মতো বিষয়গুলি পরীক্ষা করা একেবারেই সোজা makes

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

আমি মনে করি যে আপনাকে কেবল এটিই গ্রহণ করতে হবে যে জিইউআইয়ের কিছু দিকগুলি স্বয়ংক্রিয় ইউনিট পরীক্ষার মাধ্যমে কার্যকরভাবে পরীক্ষা করা যায় না এবং আপনাকে সেগুলি অন্যান্য উপায়ে পরীক্ষা করতে হবে।


0

জিইউআই লাইব্রেরি পরীক্ষা করা আপনার কাজ নয়। সুতরাং আপনি স্ক্রিনে আসলে কী আঁকা হয় তা যাচাই করার জন্য এবং তার পরিবর্তে উইজেটগুলির সম্পত্তিগুলি যাচাই করার জন্য দায়বদ্ধ করতে পারেন, গ্রন্থাগারের উপর নির্ভর করে যে তারা আঁকেন তা সঠিকভাবে উপস্থাপন করে।

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