কোন ভাষা অজ্ঞেয় ইউনিট টেস্টিং ফ্রেমওয়ার্ক আছে? [বন্ধ]


11

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

কেউ কি জানেন যে কোনও টিডিডি সরঞ্জাম রয়েছে যা পুরানো কোড পোর্টিংয়ের জন্য ব্যবহার করা যেতে পারে? আদর্শভাবে আপনি নিম্নলিখিতগুলি করতে পারেন:

  1. যে পুরনো কোডটি পাস হয় তার ভাষা অগ্নিস্টিক ইউনিট পরীক্ষাগুলি লিখুন (বা যদি আপনি বাগগুলি খুঁজে পান তবে ব্যর্থ হন!)।
  2. আপনার অন্যান্য কোড বেসে ইউনিট পরীক্ষা চালান যা ব্যর্থ হয়।
  3. আপনার নতুন ভাষায় কোড লিখুন যা পুরানো কোডটি না দেখে পরীক্ষাগুলি পাস করে।

বিকল্পটি হ'ল ধাপ 1 কে "1 ভাষায় ইউনিট পরীক্ষা লিখুন" এবং "পোর্ট ইউনিট টেস্টগুলিকে 2 ভাষায় লিখুন" তে বিভক্ত করা হবে, যা প্রয়োজনীয় প্রচেষ্টাটিকে উল্লেখযোগ্যভাবে বৃদ্ধি করে এবং যদি পুরানো কোড বেসটি পরে রক্ষণাবেক্ষণ বন্ধ করা যাচ্ছে তবে তা প্রমাণ করা কঠিন difficult বন্দরটি (যা আপনি এই কোড বেসে অবিচ্ছিন্ন একীকরণের সুবিধা পাবেন না)।

সম্পাদনা: স্ট্যাকওভারফ্লোতে এই প্রশ্নটি লক্ষ্য করার মতো।


একটি খাঁটি পাঠ্য কমান্ড প্রোটোকল সরবরাহ করুন এবং তারপরে expectআপনার পরীক্ষাগুলি প্রয়োগ করতে ব্যবহার করুন ।
এসকে-যুক্তি

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

উত্তরাধিকার কেন? আপনার ইউনিক্স-স্টাইলের আধুনিক সিস্টেমও থাকতে পারে। যাইহোক, কোনও কার্যকারিতার কোনও অংশে স্ক্রিপ্টিং ইন্টারফেস না দেওয়ার জন্য কোনও বৈধ সমর্থনযোগ্যতার উপস্থিতি নেই।
এসকে-যুক্তি

@ এসকে-যুক্তি পরিষ্কার না হওয়ার জন্য দুঃখিত। আমি বলেছিলাম "উত্তরাধিকার" কারণ পোর্টিং সাধারণত থেকে শুরু legacy language xহয় fancy new language y। আমি ইউনিক্স সম্পর্কে কিছু বোঝার চেষ্টা করছিলাম না!
ব্রিঞ্জার 128

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

উত্তর:


6

আমি মনে করি না যে আলাদা ভাষায় ইউনিট পরীক্ষা লেখা সম্ভব।

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

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

অবশ্যই, ইউনিট স্তরের পরীক্ষাগুলির সাথে আপনার যেমন কভারেজ থাকবে না (অনেক সময় ব্যয় না করা) তবে কমপক্ষে, আপনার পরীক্ষার জোতা লাগবে।


স্বয়ংক্রিয় উচ্চ স্তরের পরীক্ষার জন্য +1। এগুলি অবশ্যই উত্পাদন করার জন্য মূল্যবান হবে।
ব্রিঞ্জার 128

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

2

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

সম্ভবত নেট নেট সি এল আই এর ভাষাগুলির ক্ষেত্রেও একই কথা, যেমন সি #, এফ #, এএসপি.নেট এট ইত্যাদি।

কোনও ভিএম / সিএলআরের বাইরে, তবে এটি আরও কঠিন। তত্ত্ব অনুসারে, একক পরীক্ষার অধীনে ইউনিট পরীক্ষা এবং / অথবা কোড সি হিসাবে অন্য ভাষাতে যেমন (প্রথম দিকে যেমন সি ++ ইত্যাদি হিসাবে নতুন ভাষার ক্ষেত্রে প্রচলিত এবং সাধারণ) সংকলন করতে পারে তবে আমি কারও সাথে এটি বিশেষভাবে চেষ্টা করে দেখিনি have ইউনিট পরীক্ষা।


1
আমার ধারণা এটি আমার প্রশ্নটির সাথে সমস্যাটি দেখায়। তারা যদি সহজেই আন্তঃসংযোগ করতে পারে তবে কেন বন্দর? এবং যদি তারা না পারে তবে ভাষার বাধা ক্রস-ল্যাঙ্গুয়েজ ইউনিট পরীক্ষা করা অসম্ভব করে তোলে।
ব্রিঞ্জার 128

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

গ্রোভি জাভাতে ঠিক একইভাবে ইন্টারঅপেট করে।
ব্যবহারকারী 281377

1

এই জাতীয় কাঠামো বিদ্যমান নেই, কারণ এটি ব্যবহৃত কোডের ভাষায় লেখা দরকার।

উদাহরণস্বরূপ, সি ++ কোড পরীক্ষার জন্য একটি কাঠামো সি বা সি ++ তে লেখা দরকার। সি ++ তে লিখিত কাঠামো ব্যবহার করে, তবে এটি সি ++ বৈশিষ্ট্যগুলি ব্যবহার করে তবে এসি কোডটি পরীক্ষা করবে না।


1

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

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

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


0

ভাষা অগ্নিস্টিক পরীক্ষার কাঠামো হ'ল জেনারিক টেস্ট ফ্রেমওয়ার্ক যা গ্রহণযোগ্যতা পরীক্ষার জন্য উপযুক্ত (দৃষ্টিভঙ্গি) এবং সেই কাঠামোয় টেস্টকেসগুলি কিউএ দ্বারা পরিচালিত হয় যেমন রোবটফ্রেমওয়ার্ক


2
এই অফারটি কোন কিছুরই সৃষ্টি পয়েন্ট উপর সারগর্ভ বলে মনে হচ্ছে না এবং পূর্বে 4 উত্তর ব্যাখ্যা
মশা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.