ইউনিট টেস্টিং নবাগত দলটির ইউনিট পরীক্ষা করা দরকার


37

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

কেউ কি একইরকম পরিস্থিতিতে পড়েছেন? কোনও ইউনিট পরীক্ষা না করে যখন কোনও দলকে টিডিডি দিয়ে স্বাচ্ছন্দ্য বোধ করার কার্যকর উপায় কী? এটি কয়েক ধাপে এটি করা কি বোধগম্য? বা আমাদের ডুব দিয়ে ডুবিয়ে দেওয়া উচিত এবং একই সাথে সমস্ত ক্রমবর্ধমান যন্ত্রণার মুখোমুখি হওয়া উচিত ??

সম্পাদনা

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


+1 এই প্রশ্নের মধ্যে আমি ঠিক ঠিক যে অবস্থাতে রয়েছি সেটির রূপরেখা তুলে ধরেছি, কেবল ভিএস এর পরিবর্তে এক্সিলিপ পিএইচপি দেবের জন্য for
কানাডিয়ান

এই ফোরামের জন্য উপযুক্ত প্রশ্ন নয়
রায়ান

2
আপনি কি শেষ করেছেন? কীভাবে এটি পরিণত হয়েছিল শুনতে শুনতে চাই Would
স্নুপ

উত্তর:


36

বিদ্যমান বাগ / ত্রুটিগুলি সম্পর্কে অনুশীলন করুন।

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

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

  1. একটি প্রত্যাশিত পূর্বশর্ত এবং পোস্টকন্ডিশন
  2. এমন একটি ফলাফল যা বর্তমানে প্রত্যাশিত নয় এবং সেই পূর্বশর্ত / পোস্টকন্ডিশন লঙ্ঘন করে

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

আমি মনে করি কৌশলটি প্রাক / প্রাক-শর্তগুলির পরে পরিষ্কার পদ্ধতি রয়েছে সেখানে তাদের অনুশীলনের জন্য কিছু দেওয়া give যদি পদ্ধতির প্রয়োজনীয়তাগুলি অস্পষ্ট হয় তবে অভিজ্ঞ টিডিডি লোকেরা ঠিক কোথায় শুরু করবেন তা জানা খুব কঠিন। এটি সময়ে একটি পদক্ষেপ নিন এবং আপনি সেখানে পাবেন। শুভকামনা!


একটি বিদ্যমান বাগ বাতাসের জন্য একটি ইউনিট পরীক্ষাটি লস ইউনিট পরীক্ষা হিসাবে লেখবে না, অর্থাত্ এটি কোনও এককের পরিবর্তে পুরো গোছা পরীক্ষা করবে? এই দৃশ্যের জন্য কোনও সংহতকরণ পরীক্ষা আরও উপযুক্ত হবে না?
আইজাক ক্লেইনম্যান

বাগের জন্য পরীক্ষা লিখুন, এটি ভাল পরামর্শ।
অমিতাভা

32

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

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

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

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

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

  5. দলটি যখন আরামদায়ক হতে শুরু করে, তখন সমস্ত নতুন কার্যকারিতা টিডিডি পদ্ধতিতে লিখুন। এটি আপনার প্রকল্পের আকারের উপর নির্ভর করে তবে কিছু সময়ের পরে আপনার প্রকল্পের কিছু উত্তরাধিকার অংশগুলি পুরানো উপায়ে লেখা উচিত you

  6. এই মুহুর্তে, টিমটিকে টিডিডিটি ইতিমধ্যে বোঝা এবং গ্রহণ করা উচিত, এবং লিগ্যাসি (টিডিডিবিহীন) স্টাফগুলি কাজ করা কঠিন এবং বিরক্তিকর বিবেচনা করা উচিত। এটি রিফ্যাক্টর করুন: বেশিরভাগ পোপ এটি আনন্দের সাথে করবেন।

আরও কিছু গুরুত্বপূর্ণ বিষয়:

  • নিশ্চিত হয়ে নিন যে আপনি উপলব্ধ সেরা পরীক্ষার কাঠামোটি ব্যবহার করছেন। লোকেরা খারাপভাবে লেখা আছে এমন লাইব্রেরির সাথে ইন্টারঅ্যাক্ট করতে হলে টিডিডি করতে লোককে বোঝানো অনেক কঠিন হবে।

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

  • কিছু অবিচ্ছিন্ন ইন্টিগ্রেশন সফ্টওয়্যার সেটআপ করুন, যাতে ভাঙ্গা পরীক্ষাগুলি তত্ক্ষণাত খুঁজে পাওয়া যায়।


1
বোর্ডে পরিচালনা পেতে সম্ভবত সবচেয়ে গুরুত্বপূর্ণ।
টড

18

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

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

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


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

1
আপনার দ্বিতীয় প্যারা স্পট হয়। কোডটি পরীক্ষা করা শক্ত তবে কারণ এটি কোনও উত্তরাধিকার কোড-বেসে কোনও পরীক্ষা ছাড়াই, রিফ্যাক্টর কোনও বিকল্প নয়। পরীক্ষাটি তখন বাস্তবায়ন করা এত কঠিন হতে পারে যে এটি মানুষকে বিরক্ত করতে এমনকি বন্ধ করে দেয়।
টড

3

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

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


3

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


2

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


0

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

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

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

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