আমি কীভাবে একটি ওয়েব ফর্ম সাইট পরীক্ষা করতে পারি?


26

আমি কীভাবে একটি ওয়েব ফর্ম সাইট পরীক্ষা করতে পারি? এটি আমার কাছে মনে হয় যে এটির অনেকাংশ রাষ্ট্র এবং ব্যবহারকারী ইনপুটের উপর নির্ভর করে এটি সম্ভব হয় না as

যদি এটি সম্ভব না হয় তবে কোনও বৈধ স্বয়ংক্রিয় বিকল্প আছে কি?


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

উত্তর:


22

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

এটি করার দুটি সাধারণ উপায় রয়েছে।

সহজ উপায় হ'ল "সিস্টেম আমাকে কী তথ্য দেয়? পৃষ্ঠায় আমার কী তথ্য বর্ধন করতে হবে?" এর পদক্ষেপে আপনার ইভেন্টের সমস্ত হ্যান্ডলারদের পুনর্বিবেচনা করা? এবং তারপরে একটি পরিষেবা শ্রেণি সরবরাহ করে যা সেই রূপান্তরটি করে।

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

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

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


1
@ জোমরনো: চমৎকার ধরা! আমি বিগত 5 বছরেরও বেশি সময় ধরে ওয়েবফোর্মে এবং এমভিপি বিদ্যমান ভুলে গিয়েছি।
পিডিআর

16

একদম স্পষ্টতই, একটি সম্পূর্ণ ওয়েব ফর্ম পৃষ্ঠা কোনও ইউনিট নয় এবং সুতরাং ইউনিট পরীক্ষা করা যায় না। তবে, অটোমেটেড পরীক্ষার জন্য আপনি করতে পারেন এমন কিছু জিনিস রয়েছে:

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

-1 দুঃখিত তবে লোড টেস্টিং, অনুপ্রবেশ পরীক্ষা এবং লেআউট চেকিং ইউনিট টেস্টিংয়ের সাথে কিছুই করার নেই
টম স্কয়ারস

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

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

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

3
যথেষ্ট ফর্সা। আমি এটি আবার নিয়ে যাচ্ছি
টম স্কুয়ার্স

9

প্রশ্নের "ইউনিট" হারিয়ে যাওয়ার জন্য আমি দুঃখিত ...

প্রথম প্রান্ত থেকে পরীক্ষার জন্য সেলেনিয়াম এইচকিউ আপনার বন্ধু। এটি কোনও ইউনিট পরীক্ষা নয়, আরও একটি ব্ল্যাক বক্স পরীক্ষার মতো। আপনার এখনও বৈধ পরীক্ষার কেসগুলি নিয়ে ভাবতে হবে ...


1
+1 আপনার উত্তরটি এসেছিল ঠিক যেমনটি বলতে আমি "আপনার উত্তর পোস্ট করুন" টিপছিলাম।
ইয়ানিস

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

+1 কারণ আমি এটি ব্যবহারের অর্থ রাখি, তবে কখনই এটির কাছে যায় নি। কেউ কি এটি ব্যবহার করেছেন, এটি কি ভাল এবং বাস্তবায়নের উপযুক্ত?
নিমচিম্পস্কি

6
সেলেনিয়াম একটি দুর্দান্ত সরঞ্জাম তবে ইউনিট পরীক্ষার সাথে এটির কিছুই করার নেই।
পিডিআর

সত্য, মনে হচ্ছে আমি এই তথ্যে প্রশ্নটি এড়িয়ে গেছি: /
ওয়ারেনফেইথ

6

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


1

watin

আমি দেখতে পাই ইউনিট ওয়েব টেস্টগুলি অত্যন্ত কার্যকর, এমনকি যদি এটি কেবল একটি রিগ্রেশন বাগ সম্পর্কে বা নতুন প্রকল্পগুলির জন্য সাধারণ ধারণা দেওয়া হয়।

রাজ্যের বিষয় হিসাবে, আপনি আপনার ইউনিট পরীক্ষাগুলি তৈরি করেন যেমন আপনি নন-ইউআই পরীক্ষার সাথে করেন - তারা পরীক্ষার শুরুতে ডাটাবেস সাফ করে দেয় এবং স্টার্ট স্টেট ব্যতীত আর কিছু না রাখার জন্য ডাটাবেসটিকে পুনর্নির্মাণ করে। প্রতিটি ইউনিট পরীক্ষা তারপরে একটি একক পৃষ্ঠা, বা একটি পৃষ্ঠায় সাধারণত একটি স্বতন্ত্র কাজকে encapsulates করে।

http://watin.org/ অন্য একটি ওয়েব পরীক্ষার সরঞ্জাম তবে সি # /। নেট এর জন্য। আপনি ইউনিট পরীক্ষা হিসাবে পরীক্ষা লিখুন:

[Test] 
public void SearchForWatiNOnGoogle()
{
  using (var browser = new IE("http://www.google.com"))
  {
    browser.TextField(Find.ByName("q")).TypeText("WatiN");
    browser.Button(Find.ByName("btnG")).Click();

    Assert.IsTrue(browser.ContainsText("WatiN"));
  }
}

এটি বর্তমানে IE ভিত্তিক তবে ফায়ারফক্স এবং ক্রোমের জন্য কিছু পরীক্ষামূলক সহায়তা রয়েছে। জাভাস্ক্রিপ্ট ইন্টারঅ্যাকশন সহ ম্যানুয়াল পরীক্ষায় আপনি যা কিছু করতে চান তা আপনি স্বয়ংক্রিয়ভাবে করতে পারেন।


এটি ২০১ 2016 সালের কথা। ওয়াটিন সাইটে আজকের এই সফরটি আমাকে ইঙ্গিত দেয় যে ওয়াটিএন সম্ভবত মারা গেছে। দস্তাবেজগুলি অপ্রতুল, আপ টু ডেট এবং ভিডিওগুলি প্লে হয় না। আমি অভিযোগ করছি না - ওপেন সোর্স স্বেচ্ছাসেবী সরঞ্জামগুলির জন্য আমার প্রচুর কৃতজ্ঞতা - এই মন্তব্যটি আমার মতো অন্যান্য আগত ব্যক্তিদের সহায়তা করার জন্য। উত্তরটি ঠিক আছে, কেবল এটি নির্দেশ করে যে শুরু করার জন্য স্ব-চালিত হ্যান্ডসন শেখার প্রয়োজন হতে পারে।
qxotk

1
: WatiN উপায় যে কেউ চিন্তা জন্য আরও সাহায্যের সুনিশ্চিতকারী এটা বদ্ধ + + বর্তমান এখানে দেখুন কোথায় stackoverflow.com/questions/118531/...
qxotk

0

আপনি কোনও ওয়েব সাইটের সত্যই ইউনিট পরীক্ষা করতে পারবেন না, কেবল কারণ তারের মাধ্যমে ওয়েব অনুরোধগুলি ঘটে (বা একটি টিসিপি স্ট্যাকের মাধ্যমে)। সুতরাং, পরীক্ষাগুলি "ইউনিট পরীক্ষা" এর সংজ্ঞা অনুসারে মাপসই হয় না, তারা সম্ভবত শেষ থেকে শেষের পরীক্ষা হবে।

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

আরও মজার বিষয় যদিও এটি আপনাকে কিছুটা উদ্বেগ করছে কেন আপনার ওয়েব ফর্মটি কেন পরীক্ষা করা প্রয়োজন । আপনি কি পিছনে কোডটিতে খুব বেশি যুক্তি রাখছেন না, এবং কোনও সুযোগে রক্তাল্পিক ব্যবসার যুক্তি রেখেছেন?


-1

জুঁই

গত ৫ বছরে জেসমিন ফ্রন্ট-এন্ড ইউনিট পরীক্ষার মূল সরঞ্জাম হিসাবে আত্মপ্রকাশ করেছে। এটি প্রায়শই নোড এবং এনপিএম সহ স্বয়ংক্রিয় বিল্ড পরীক্ষায় অন্তর্ভুক্ত হয়

প্রতি https://en.wikedia.org/wiki/Jasmine_( জাভাস্ক্রিপ্ট_প্রেমীকরণ_ফ্রেমওয়ার্ক) :

জুঁই জাভাস্ক্রিপ্টের জন্য একটি মুক্ত উত্স পরীক্ষার কাঠামো [[2] এর উদ্দেশ্যটি কোনও জাভাস্ক্রিপ্ট-সক্ষম সক্ষম প্ল্যাটফর্মে চালানো, অ্যাপ্লিকেশনটি বা আইডিইতে অনুপ্রবেশ না করা এবং সহজেই পঠনযোগ্য বাক্য বাক্য গঠন করতে পারে। এটি অন্যান্য ইউনিট টেস্টিং ফ্রেমওয়ার্কগুলি যেমন স্ক্রুউনিত, জেএসএসপেক, জেএসপেক এবং আরএসপেক দ্বারা প্রচণ্ডভাবে প্রভাবিত হয় [[3]

জাভাস্ক্রিপ্টের সমস্ত উল্লেখ থাকা সত্ত্বেও এটি সরল ওয়েব ফর্মের ইউনিট পরীক্ষার জন্যও ব্যবহার করা যেতে পারে।


যখন জাভাস্ক্রিপ্টটি ইউআইআর আপডেট করার প্রাথমিক পদ্ধতি নয় তবে ওয়েবফোর্মে ব্যবহৃত হয়
টম স্কুইয়ার্স

সত্য। তবে বিকল্প কি ...? এজন্যই, উদ্দেশ্যটির উদ্দেশ্যে না হলেও, জুঁই খুব ভাল কাজ করে। প্লাস সিনট্যাক্সটি আরএসপেকের সাথে প্রায় একই রকম যা রুবি প্রোগ্রামাররা পছন্দ করে।
মাইকেল ডুরান্ট

-2

ASP.NET

একটি এএসপি.এনইটি সাইট বিকাশ করার সময় আমরা এতে ইউনিট পরীক্ষা চালাতে সক্ষম হয়েছি:

  • ডোমেইন
  • বিএল নিয়ন্ত্রক / উপস্থাপক
  • ওয়েব ফর্ম পৃষ্ঠাগুলির কোডবিহাইড

আপনার আর্কিটেকচারের উপর নির্ভর করে এই সবগুলি টিডিডি করা সম্ভব। আপনি যা পরীক্ষা করতে পারবেন না তা হ'ল মার্কআপ ফাইলের বিন্যাস।


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