"কোডের পরীক্ষার রেখাগুলি" অনুপাতের কোনও "কোডের কার্যক্ষম রেখাগুলি" কী?


27

আমি টিডিডি পদ্ধতির ক্ষেত্রে বেশ নতুন এবং আমার প্রথম পরীক্ষাগুলি বলছে যে ফাংশনাল কোডের 1 লাইন লেখার অর্থ পরীক্ষামূলক কোডের প্রায় 2-3 লাইন লেখা। সুতরাং, যদি আমি 1000 এলওসি লিখতে যাচ্ছি, টেস্ট সহ পুরো কোডবেস 3500 ডলারের মতো হতে চলেছে।

এটাকে কি স্বাভাবিক বলে বিবেচনা করা হয়? আপনার লেখার কোডের অনুপাত কত?


8
ইয়াপ, টিডিডি একটি দামি ট্যাগ নিয়ে আসে!
EL Yusubov

6
আপনার ২-৩ এক্স সংখ্যা সর্বোত্তম রক্ষণশীল , এটি সি # / জাভা, পাইথন / রুবি এর মতো জিনিসের জন্য আসলে 4-5X এর কাছাকাছি হতে পারে, এরলং এর মতো কিছু সংশ্লেষ 1: 1 এর কাছাকাছি ছিল। কিভাবে উপর নির্ভর করে মতবাদ আপনি TDD- এ, আরো মতবাদ চলেছেন, বড় সেই অনুপাত পেতে!

6
@ টমরং: কেন্টের বইয়ে তিনি ওয়ার্ডকে উদ্ধৃত করেছেন যে আপনার ভয় বিরক্তিতে রূপান্তর না হওয়া পর্যন্ত আপনার পরীক্ষা করা উচিত।
হার্বি

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

5
বন্ধুরা, উত্তর পোস্ট করার পরিবর্তে আপনি কেন মন্তব্য করেন? আপনি যা লেখেন তা বোধগম্য হয়।
আন্দ্রে আগিবালোভ

উত্তর:


18

টিডিডি সহ 1: 3 স্বাভাবিক।

আমার অভিজ্ঞতা থেকে এবং অন্যান্য উদ্ধৃতিগুলিও আমার মনে আছে।


12
... কি উদ্ধৃতি?
তেহশ্রাইক

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

বাহ, আমার অভিজ্ঞতাতেও ঠিক একই রকম। (আমি এই
মুহুর্তে ক্লক

9

বিভিন্ন কোডিং শৈলী এবং ভাষার উপর ভিত্তি করে বিভিন্নতা রয়েছে। তবে আপনি যে ভাষা ব্যবহার করেন তা নির্বিশেষে সবচেয়ে বড় হ'ল আপনি।

রবার্ট মার্টিন একবার বলেছিলেন:

"পরীক্ষাগুলি আরও সুনির্দিষ্ট হওয়ার সাথে সাথে কোডটি আরও জেনেরিক হয়।"

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

তবে অপেক্ষা করুন, এটিও ভাল নয়। কিছু নির্দিষ্ট ক্ষেত্রে, উদাহরণস্বরূপ, আপনি যখন একটি নির্দিষ্ট অ্যালগরিদম সংজ্ঞায়িত করেন, আপনার কাছে কোডের কেবলমাত্র 6-10 লাইন থাকতে পারে কিছু "যদি" এর কিছুক্ষণ থাকে, এবং সম্ভবত 2-3 পুনরাবৃত্তি থাকে। আমি আপনাকে বলতে পারি, সেই কোডটিতে সম্ভবত পরীক্ষার কোডের আরও 100 লাইন থাকবে।

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

কোন উপায়, আপনার প্রশ্নের সেরা উত্তর হয়তো হয় "Cyclomatic জটিলতা" । আপনার পদ্ধতির সাইক্লোমেটিক জটিলতা যত বেশি হবে, সমস্ত কেস কভার করার জন্য আপনাকে এটির জন্য তাত্পর্যপূর্ণ আরও পরীক্ষা করতে হবে।


3

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

যদি আপনার পদ্ধতিগুলি সংক্ষিপ্ত হয় তবে 3: 1 যুক্তিসঙ্গত। যদি আপনার পদ্ধতিগুলি দীর্ঘ হয় তবে 3: 1 টি উচ্চ দিকে।

সুতরাং, আপনার প্রশ্নের উত্তর দিতে, এটি নির্ভর করে। :-)


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

এক মুহুর্তের জন্য ধরে নিন আপনি একটি পরীক্ষা সেট আপ করতে পারেন, পরীক্ষা করার জন্য পদ্ধতিটি কল করুন এবং ফলাফলটি তিন লাইনের কোডে পরীক্ষা করে দেখুন। আপনি যে পদ্ধতিটি পরীক্ষা করছেন তা যদি এক লাইন দীর্ঘ হয় (যেমন স্কালায় ঘটে থাকে) তবে আপনার উত্পাদন কোড রেশনের জন্য পরীক্ষাটি 3: 1। পদ্ধতিটি যদি ছয় লাইন দীর্ঘ হয় তবে এটি 1: 2। ছয় লাইন এত দীর্ঘ নয়।
জন স্ট্রেয়ার

2

সফ্টওয়্যার সমালোচনামূলক অ্যাপ্লিকেশনটির জন্য, প্রতিটি 10 ​​কার্যক্ষম এলওসির জন্য সাধারণ অনুপাত পরীক্ষার এক দিন।

এবং এটি টিডিডি গণনা করছে যা পরীক্ষার বিষয়ে নয় তবে স্পেসিফিকেশন সম্পর্কে।


1

আমার পরীক্ষার কোডের আকারটি 'প্রকৃত' কোড সামগ্রিকভাবে প্রায় অর্ধেক। অন্যথায় করা ইঙ্গিত দেয় যে আপনার পরীক্ষাগুলি খুব জটিল এবং / অথবা আপনার কোড পরীক্ষা করা খুব কঠিন এবং / অথবা আপনার কোডটি খুব ঘন / জটিল।

অথবা আপনি কেবল খুব বেশি পরীক্ষা করছেন, এবং আপনার আয়কে হ্রাস করার সময় নষ্ট করছেন।

এছাড়াও দেখুন "ইউনিট পরীক্ষা করা কখন অনুপযুক্ত বা অপ্রয়োজনীয়?"


-1

আমার অনুপাত 2-1 থেকে 10-1 এর কাছাকাছি (পরীক্ষার কোড)। আপনার পরীক্ষাটি মান / আচরণ এবং বাস্তবায়নের বিষয়ে নয় তা নিশ্চিত করুন।

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