টিডিডি / টেস্ট খুব বেশি ওভারহেড / রক্ষণাবেক্ষণের বোঝা?


24

সুতরাং আপনি যাঁরা পরীক্ষার মানগুলি সত্যই বুঝতে পারেন না তাদের কাছ থেকে এটি বহুবার শুনেছি। কিছু শুরু করার জন্য, আমি এগিল এবং টেস্টের অনুগামী ...

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

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

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

আমি এমন একটি দলের জন্য বেশিরভাগ প্রকল্পে টিডিডি করার কথা বলেছি যা আমি কখনও শুনিনি I've "ইন্টারফেস" এবং অদ্ভুত সন্ধানকারী ডিআই কনস্ট্রাক্টরদের চিন্তাভাবনাগুলি তাদের ভয় দেখিয়ে দেয় ...

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


3
চালানোর জন্য! ভাগা! যে কেউ স্বয়ংক্রিয় পরীক্ষাগুলি কেন দীর্ঘমেয়াদে তাদের জীবনকে আরও সহজ করে তুলবে তা বুঝতে পারবেন না আপনাকে নিজের জায়গা থেকে মাথা (গুলি) অপসারণ করতে হবে।
ম্যাটসি

6
@ ম্যাটসি টিডিডি! = স্বয়ংক্রিয় পরীক্ষা
নেমানজা ত্রিফুনোভিচ

@ নিমঞ্জা ত্রিফুনোভিচ: আহ্ ... ম্যানুয়াল টেস্ট ব্যবহার করে কে টিডিডি অনুশীলন করে? "আমি অ্যাপ্লিকেশনটি শুরু করেছি কিন্তু ক্লিক করার মতো কোনও বোতাম নেই !?" "হ্যাঁ, এটাই লাল, সবুজ, রিফ্যাক্টরে লাল!"
স্টিভেন এভার্স

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

2
@ মার্টিন, আমি ফলোআপ মন্তব্যে আগ্রহী (বা ব্লগ পোস্ট) যা আপনি কী শেষ করেছেন এবং এটি কীভাবে দীর্ঘকাল আপনার পক্ষে কাজ করেছে (বা না) তা নিয়ে আলোচনা করে।
স্টিভেনভি

উত্তর:


36

টিডিডির ফ্যাশনে এটি চেষ্টা করা, এটি কেবল দলের জন্য রক্ষণাবেক্ষণের দুঃস্বপ্ন এবং অসম্ভবকে অসম্ভব করে তুলবে।

আপনি এই যুক্তি জিততে পারবেন না। তারা এটি তৈরি করছে। দুঃখের বিষয়, আপনার কোনও বাস্তব তথ্য নেই। আপনার দেওয়া কোনও উদাহরণ বিতর্কিত হতে পারে।

এই পয়েন্টটি করার একমাত্র উপায় হ'ল কোড রাখা যা বজায় রাখতে কম ব্যয় হয় is

তদ্ব্যতীত, এটি একটি সম্মুখ-শেষ অ্যাপ্লিকেশন হিসাবে (ওয়েব-ভিত্তিক নয়), পরীক্ষা যুক্ত করা অর্থহীন,

সবাই এ কথা বলে। এটি আংশিক সত্যও হতে পারে। যদি অ্যাপ্লিকেশনটি যুক্তিসঙ্গতভাবে ভালভাবে ডিজাইন করা থাকে তবে সামনের প্রান্তটি খুব কম করে।

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

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

এটি উপরের মতো একই যুক্তি।


আপনি যুক্তি জিততে পারবেন না। সুতরাং তর্ক করবেন না।

"আমি এই পণ্যটির পুনর্লিখনের জন্য পুরোপুরি দায়বদ্ধ"

এই ক্ষেত্রে,

  1. যাইহোক পরীক্ষা যোগ করুন। কিন্তু পরীক্ষার যোগ হিসাবে আপনি যান, বৃদ্ধিলাভ। প্রথমে পরীক্ষাগুলি লেখার জন্য দীর্ঘ সময় ব্যয় করবেন না। একটু রূপান্তর করুন। একটু পরীক্ষা করুন। আরও কিছুটা রূপান্তর করুন। আরও কিছু পরীক্ষা করুন।

  2. পরীক্ষাগুলি কাজ করছে না এবং জিনিস কেন এত ভাল হয় তা জিজ্ঞাসা না করা পর্যন্ত এই পরীক্ষাগুলি ব্যবহার করুন।

একটি পুনর্লিখনের ক্ষেত্রে আমার একই যুক্তি ছিল (সি ++ থেকে জাভা পর্যন্ত) এবং আমি পরীক্ষাগুলি কেবল তাদের ব্যবহার না করার পরেও ব্যবহার করেছিলাম।

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

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

আপনি কেন সফল, তা কারওই বিস্তারিত জানার দরকার নেই ।

শুধু সফল হতে।


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

কেন ফ্রন্ট-এন্ড খুব বেশি ডিজাইনের সমস্যা করে? আজকাল AJAX এর মতো অনেক প্রযুক্তি ফ্রন্ট-এন্ডে অনেক কিছু করে।
卢 声 远 শেনগুয়ান লু

@ 卢 声 远 শেনগুয়ান লু: জিইউআই "চেহারা" পরীক্ষা করা শক্ত। আপনি ফন্ট এবং রং পরীক্ষা করতে পারেন। তবে, ব্রাউজারের কিরকগুলি স্বয়ংক্রিয় পরীক্ষার মাধ্যমে সঠিক স্থান নির্ধারণ এবং আকার পরীক্ষা করা খুব শক্ত করে।
এসলট

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

5

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

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


এটি পিটারের জন্য দুর্দান্ত ধারণা for আমার বর্তমান প্রকল্পের একটি পরীক্ষা দল আছে তাই আমি নিশ্চিত এটা মাইলফলক রিলিজ ইত্যাদি পাওয়া ক্যাপচার বাগ বেশ সহজ হবে
মার্টিন Blore

3

আপনাকে এই বিষয়গুলি সম্পর্কে ব্যবহারিক হতে হবে, টিডিডি থিওরিতে থাকা একটি দুর্দান্ত জিনিস, তবে যতক্ষণ না যুক্ত হওয়া সমস্ত কিছুর জন্য আপনার পরীক্ষাগুলি আপডেট না করা হয়, তার মধ্যে সামান্যই বক্তব্য রয়েছে - ভাঙা রিপোর্ট করে কেউ পরীক্ষা চালাতে চায় না কোড যখন তার পরীক্ষা যে আপডেট করা হয়নি! ফলস্বরূপ, এগুলি করা খুব সহজেই ব্যয়বহুল হতে পারে - আপনি কেবল কোডটিতে কাজ করবেন না dev

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

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

শেষ পর্যন্ত, টিডিডি একটি নতুন জিনিস, যখন আমি ছেলে ছিলাম আমরা কখনই পরীক্ষা করতাম না এবং আমরা কোড লিখেছিলাম যা কাজ করে। ইউনিট টেস্টিং কিছু লোককে উষ্ণ এবং अस्पष्ट বোধ করে, তবে এটি সঠিক কোডের জন্য একেবারেই প্রয়োজন নয়।

গীত। আমি আপনার আরও একটি প্রশ্ন দেখতে পাচ্ছি যেখানে আপনি বিমূর্ততার স্তরগুলির সমালোচনা করেন এবং এখানে আপনি ডিআই নির্মাণকারীদের অভাবের সমালোচনা করেন! তোমার মনের উন্নতি কর :)


2

যেহেতু আপনি এটি স্থাপনের সাথে সাথে সবকিছু দ্রুত পরিবর্তন হয় তাই তাদের বোঝান যে এটি রিগ্রেশন টেস্টিংয়ের জন্য ব্যবহৃত হবে। যা নতুন বাগ প্রবর্তিত হওয়ার সাথে সাথে প্রচুর মাথা ব্যথা বাঁচাতে পারে কারণ কেউ কেউ 10 বছর আগে লিখিত কোডের একটি লাইন ভেঙেছিল যা একটি নির্দিষ্ট ফাংশনটির 10,000,000 মৃত্যুদন্ড কার্যকর করার মধ্যে 1 টি ঘটে যা কেবলমাত্র যদি সিস্টেম ক্লক চালু থাকে তখন ডাকে ক্লায়েন্টটি সার্ভার সিস্টেমের ঘড়ির চেয়ে 3 মিনিটের বেশি পার্থক্য রাখে। বগি সফ্টওয়্যারটির কারণে তাদের কতজন গ্রাহক হারাতে পারে তা কেবল তাদের জিজ্ঞাসা করুন।


2

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


2

হ্যাঁ, পরীক্ষা বজায় রাখা একটি বোঝা। সেগুলি আপডেট করে, আপনার পরীক্ষার ডেটা আপডেট করে: এগুলি সবই আপনার সময়কে সাফল্য দেয়।

বিকল্প - ম্যানুয়ালি জিনিস পরীক্ষা করা, বাগগুলি পুনরায় ফিক্সিং করা যা আপনার কোডটি কাজ করে তা সেকেন্ডে বলতে সক্ষম না হয়ে - আরও অনেক বেশি ব্যয়।


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

2

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

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