ইউনিট পরীক্ষার জন্য যুক্তিসঙ্গত কোড কভারেজ% কী (এবং কেন)? [বন্ধ]


604

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

আপনি কীভাবে আপনার উত্তরে পৌঁছেছিলেন তা দয়া করে ব্যাখ্যা করুন (যেহেতু আপনি সমস্ত কিছু একটি নম্বর বাছাই করে থাকেন, তবে আমি নিজেই সেগুলি করতে পারতাম;)


এখন একদিন অনেক আইডিই কভারেজ হাইলাইট করার সাথে আসে, নিশ্চিত হওয়া নিশ্চিত করুন যে আপনি কোডের সর্বাধিক গুরুত্বপূর্ণ অংশগুলি অন্তত একটি প্রদত্ত শতাংশ অর্জন করার চিন্তাভাবনার চেয়ে কভার করেছেন।
সমস্ত Іѕ Vаиітy

4
% চিহ্নটি
মেট্রিকের

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

কেন এই প্রশ্নটি মুছে ফেলা হয় না বা সঠিকভাবে সম্পাদিত হয় না। এটি এত আগ্রহ জোগাড় করেছে তবে এটি সম্পূর্ণ বিভ্রান্তিকর।
স্কা

উত্তর:


1390

আলবার্তো সাভোয়ার এই গদ্য উত্তরটি সেই প্রশ্নের সুনির্দিষ্টভাবে জবাব দিয়েছে (সেটিতে একটি সুন্দর বিনোদনের সাথে!):

http://www.artima.com/forums/flat.jsp?forum=106&thread=204677

টেস্টিভাস অন টেস্ট কভারেজ

খুব সকালে, একজন প্রোগ্রামার মহান মাস্টারকে জিজ্ঞাসা করলেন:

“আমি কিছু ইউনিট পরীক্ষা লিখতে প্রস্তুত। আমার কী কোড কভারেজটি লক্ষ্য করা উচিত? "

মহান কর্তা জবাব দিলেন:

"কভারেজ সম্পর্কে চিন্তা করবেন না, কেবল কয়েকটি ভাল পরীক্ষা লিখুন।"

প্রোগ্রামার হেসে, মাথা নিচু করে চলে গেল।

...

সেদিন পরে, দ্বিতীয় প্রোগ্রামার একই প্রশ্ন জিজ্ঞাসা করলেন।

মহান কর্তা ফুটন্ত জলের একটি পাত্রের দিকে ইশারা করলেন এবং বললেন:

"এই পাত্রটিতে আমার কতটি শস্য চাল দেওয়া উচিত?"

প্রোগ্রামারটি আশ্চর্য হয়ে তাকিয়ে উত্তর দিল:

"আমি কীভাবে আপনাকে বলতে পারি? এটি আপনার কত লোককে খাওয়াতে হবে, তারা কতটা ক্ষুধার্ত রয়েছে, আপনি কী অন্যান্য খাবার পরিবেশন করছেন, আপনার কত চাল পাওয়া যায় ইত্যাদি নির্ভর করে। "

"হুবহু," মহান শিক্ষক বললেন।

দ্বিতীয় প্রোগ্রামার হেসে, মাথা নিচু করে চলে গেলেন।

...

দিনের শেষে, তৃতীয় প্রোগ্রামার এসে কোড কভারেজ সম্পর্কে একই প্রশ্ন জিজ্ঞাসা করলেন।

"আশি শতাংশ এবং কম!" টেবিলে তার মুঠো মারতে কড়া কণ্ঠে মাস্টারকে জবাব দিল।

তৃতীয় প্রোগ্রামার হেসে, মাথা নিচু করে চলে গেলেন।

...

এই শেষ জবাবের পরে, একজন তরুণ শিক্ষানবিশ মহান মাস্টারের কাছে যোগাযোগ করেছিলেন:

"গ্রেট মাস্টার, আজ আমি আপনাকে তিনটি ভিন্ন উত্তর দিয়ে কোড কভারেজ সম্পর্কে একই প্রশ্নের উত্তর শুনেছি। কেন? "

মহান কর্তা তাঁর চেয়ার থেকে উঠে দাঁড়ালেন:

"আসুন আমার সাথে কিছু টাটকা চা পান এবং এটি সম্পর্কে কথা বলা যাক।"

তারা গরম কাপে ধূমপান করে তাদের কাপগুলি ভরাট করার পরে, মহান মাস্টার উত্তর দিতে শুরু করলেন:

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

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

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

মহান মাস্টার এত কঠোর এবং উচ্চস্বরে হেসেছিলেন যে তার পেট, তার প্রমাণ যে তিনি কেবল গ্রিন টি চেয়ে বেশি পান করেছেন, উপরে উঠেছিলেন এবং ফ্লপ করেছেন।

"তৃতীয় প্রোগ্রামার কেবল সহজ উত্তর চায় - এমনকি কোনও সহজ উত্তর না থাকলেও ... এবং তারপরে সেগুলি আর অনুসরণ করে না” "

তরুণ শিক্ষানবিস এবং গ্রিজল গ্রেট মাস্টার চিন্তাভাবনা করে চুপ করে তাদের চা পান করা শেষ করেছিলেন।


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

16
বিচক্ষণতা - আপনার বক্তব্যটি "দ্বিতীয় বিকাশকারী" এর প্রতিক্রিয়া দ্বারা যথাযথভাবে মিরর করা হয়েছে। ব্যক্তিগত অভিজ্ঞতা এটি নির্ধারণ করা উচিত।
জন লিমাজাপ

167
নিখুঁত উত্তর. মেট্রিকগুলি ভাল কোড তৈরি করে না। আপনি 100% কভারেজ সহ ক্রেপি কোডটি লিখতে পারেন এবং কোডটি ভাল কাজ করে না। আমার কাছ থেকে +1, লজ্জা আমি আরও আপ করতে পারব না :)
রব কুপার

15
4 বছর পরে, এবং এখনও দরকারী। আজ সকালে আমার দুজন সহকর্মীর উপরে এটি টানুন।
সিকহिप्পি

9
আমার কাছে এই উপাখ্যানটি একটি আদর্শবাদী দৃশ্যের প্রতিনিধিত্ব করে। প্রতিযোগিতামূলক অগ্রাধিকার সহ প্রকল্প দলগুলির আসল বিশ্বে কোড কভারেজের রেস 0% হয়। দলের মধ্যে ইউনিট পরীক্ষার অভ্যাস গড়ে তুলতে আমাদের একটি প্রয়োজনীয় নম্বর প্রয়োজন। আমি এই অঞ্চলে যার সাথে আমি খুব পরিচিত নই তার জন্য সংখ্যাটি নির্ধারণের জন্য কিছু দিকনির্দেশনা খুঁজতে এই প্রশ্নে এসেছি এবং এটি আসলেই কোনও সহায়তা নয় is আমি আনন্দিত যে অন্য পরিস্থিতিতে লোকেরা যদিও এটি দরকারী মনে করছে।
সমস্পট

85

কোড কভারেজ হ'ল একটি বিভ্রান্তিমূলক মেট্রিক যদি 100% কভারেজ আপনার লক্ষ্য হয় (সমস্ত বৈশিষ্ট্যের 100% পরীক্ষার পরিবর্তে)।

  • একবারে সমস্ত লাইন হিট করে আপনি 100% পেতে পারেন। তবে আপনি এখনও কোনও নির্দিষ্ট ক্রম (লজিক্যাল পাথ) পরীক্ষা করতে মিস করতে পারেন যা এই লাইনগুলি হিট হয়েছে।
  • আপনি একটি 100% পেতে পারেন নি তবে এখনও আপনার 80% / ফ্রিক ব্যবহারের জন্য ব্যবহৃত কোড-পাথ পরীক্ষা করেছেন। প্রতিটি 'থ্রো এক্সপশনটাইপএক্স' বা একই ধরণের ডিফেন্সিভ প্রোগ্রামিং গার্ডের যে পরীক্ষাগুলি আপনি রেখেছেন তা পরীক্ষা করে নেওয়া '' না 'থাকতেই হবে'

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


4
- ব্যাতিক্রম- যদি আপনি আপনার ব্যতিক্রম হ্যান্ডলিং পরীক্ষা না করেন তবে কীভাবে আপনি কীভাবে জানবেন যে যখন আপনার কোডটি ঘটে তখন তা ফুটিয়ে উঠবে না? - সেটটার / গেটার্স - প্রসঙ্গে সংবেদনশীল আমি মনে করি, তবে অবশ্যই আপনার পরীক্ষাগুলি তাদেরকে টেস্ট স্যুটটির অংশ হিসাবে কার্যকর করা উচিত, এবং যদি তা না হয় তবে সেগুলি আসলে ব্যবহার করা হচ্ছে?
tddmonkey

1
ব্যতিক্রমগুলি ব্যতিক্রমী হওয়া উচিত - এমনটি হওয়ার কথা নয়। যদি তারা তা করে, আপনি ব্যর্থতা এবং জামিনের বিন্দুতে লগইন করুন। আপনি ঘটতে পারে এমন প্রতিটি ব্যতিক্রম পরীক্ষা করতে পারবেন না। যদি অ্যাপটির কোনও আনন্দের পথ / ইভেন্টটি পরিচালনা করার কথা মনে করা হয় তবে আপনার এটির জন্য একটি পরীক্ষা করা উচিত। ভবিষ্যতে ক্লায়েন্টদের জন্য অ্যাকসেসর যুক্ত করা যেতে পারে .. নির্ভর করে
গিশু

5
আপনার দ্বিতীয় বিন্দুতে আপনি কী বোঝেন তা আমি নিশ্চিত নই "তবে এখনও আপনার সমস্ত কোড-পাথ পরীক্ষা করে দেখেছি"। যদি আপনি প্রকৃতপক্ষে পুরো-পথের কভারেজটি বোঝায়, তবে আপনার 100% লাইন / শাখা / সিদ্ধান্তের কভারেজ ব্যতীত ফুল-পাথ কভারেজ থাকতে পারে না। প্রকৃতপক্ষে, পুরো-পথের কভারেজটি সাধারণত কোনও অ-তুচ্ছ প্রোগ্রামে অযোগ্য is en.wikedia.org/wiki/Code_coverage# অন্য_কভারেজ_ক্রিটরিয়া
জ্যাচ বার্লিংমে

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

2
"আপনি মিস করেছেন এমন কোডের কিছু অংশ হাইলাইট করতে কোড-কভারেজ ব্যবহার করুন" এর জন্য +1। মূলত সেই মেট্রিকের জন্যই এটি ভাল।
বেলুচিন

61

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

আমার কোড আছে যা পরীক্ষাগুলিতে অন্তর্ভুক্ত নয় তা আমি যত্ন করি না, তবে আমি যদি আমার কোডটি রিফ্যাক্টর করি এবং অন্যরকম আচরণ করতে পারি তবে আমি যত্নশীল। সুতরাং, 100% কার্যকারিতা কভারেজ আমার একমাত্র লক্ষ্য।


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

46
আপনি যদি কোডের সমস্ত লাইনকে আঘাত না করে সমস্ত কার্যকারিতা সরবরাহ করতে পারেন, তবে সেই অতিরিক্ত কোডগুলির লাইনগুলি সেখানে কী করছে?
জেনস টিমারম্যান

4
@ জেনস টিম্মারম্যান তাত্ত্বিকভাবে আপনি ঠিক বলেছেন। যাইহোক, 100% কোড কভারেজটি অত্যন্ত ব্যয়বহুল সময় অনুসারে এবং আমার দলকে এটি করতে বাধ্য করে যে তা কেবল তাদেরকেই হ্রাস করে না, তবে আমার প্রকল্পকে সময়সীমা পেরিয়ে যায় run আমি মাঝখানে কোথাও থাকতে পছন্দ করি এবং কার্যকারিতা পরীক্ষা করে দেখি (এটি কল করুন: ইন্টিগ্রেশন টেস্টিং) যা আমি স্বাচ্ছন্দ্য বোধ করি। আমি কোন কোড পরীক্ষা করি না? প্রযুক্তিগত ব্যতিক্রম হ্যান্ডলিং, (পরিসীমা / পরামিতি) যাচাই করা দরকার। সংক্ষেপে, সমস্ত প্রযুক্তিগত নদীর গভীরতানির্ণয় যা আমি নিজের অভিজ্ঞতা বা আমি পড়ার সেরা অনুশীলন থেকে প্রয়োগ করতে শিখেছি।
tofi9

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

58

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

আমি এটি করতে একটি শট নিতে হবে। আমি টেস্ট ইঞ্জিনিয়ারিংয়ের বিশেষজ্ঞ নই এবং আরও জ্ঞাত উত্তরটি দেখে খুশি হব।

কোড কভারেজ প্রয়োজনীয়তা কখন সেট করবেন

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

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

কিছু সুনির্দিষ্ট ক্ষেত্রে যেখানে একটি অভিজ্ঞতা অভিজ্ঞতা রয়েছে মান যুক্ত করতে পারে:

  • স্টেকহোল্ডারদের সন্তুষ্ট করা অনেক প্রকল্পের জন্য, এমন বিভিন্ন অভিনেতা রয়েছেন যারা সফটওয়্যার মানের প্রতি আগ্রহী যারা সফটওয়্যারটির প্রতিদিনের বিকাশের সাথে যুক্ত নাও হতে পারেন (পরিচালক, প্রযুক্তিগত সীসা ইত্যাদি) "আমরা সমস্ত লিখব আমাদের সত্যিকারের পরীক্ষাগুলি "দৃinc়প্রত্যয়ী নয়: তাদের হয় পুরোপুরি বিশ্বাস করা বা চলমান নিবিড় পর্যবেক্ষণের সাথে যাচাই করা দরকার (ধরে নিলে তাদের কাছে এমন করার জন্য প্রযুক্তিগত বোঝাপড়াও রয়েছে। ধরে নেওয়া যায়) পরিমাপযোগ্য মান সরবরাহ করা এবং তারা যুক্তিসঙ্গতভাবে প্রকৃত লক্ষ্যগুলি কীভাবে আরও উন্নত তা ব্যাখ্যা করে।
  • দলের আচরণ স্বাভাবিক করতে। অংশীদারদের পাশে, আপনি যদি এমন একটি দলে কাজ করছেন যেখানে একাধিক লোক কোড এবং পরীক্ষাগুলি লিখছেন, তবে "সু-পরীক্ষিত" হিসাবে যোগ্যতা অর্জনের জন্য দ্ব্যর্থতার অবকাশ রয়েছে। কোন স্তরের পরীক্ষার পর্যাপ্ত পরিমাণ যথেষ্ট তা সম্পর্কে আপনার সমস্ত সহকর্মীর কি একই ধারণা রয়েছে? সম্ভবত না. আপনি কীভাবে এই মিলন করবেন? এমন একটি মেট্রিক খুঁজুন যা আপনি সকলেই সম্মত করতে পারেন এবং এটিকে একটি যুক্তিসঙ্গত অনুমান হিসাবে গ্রহণ করতে পারেন। এটি বিশেষত (তবে একচেটিয়াভাবে নয়) বড় দলগুলিতে কার্যকর, যেখানে লিডগুলির জুনিয়র বিকাশকারীদের উপর সরাসরি তদারকি নাও করা যেতে পারে। বিশ্বাসের নেটওয়ার্কগুলি পাশাপাশি, তবে বস্তুনিষ্ঠ পরিমাপ ছাড়াই, গোষ্ঠী আচরণের পক্ষে অসঙ্গতি হওয়া সহজ, এমনকি সকলেই যদি বিশ্বাসের সাথে আচরণ করে।
  • নিজেকে সৎ রাখতে। এমনকি আপনি যদি আপনার প্রকল্পের একমাত্র বিকাশকারী এবং একমাত্র অংশীদার হন তবে আপনার সফ্টওয়্যারটির জন্য কিছু নির্দিষ্ট গুণাবলীর মনে থাকতে পারে। সফ্টওয়্যারটি কতটা পরীক্ষিত হয়েছে (যা কাজ নেয়) সম্পর্কে চলমান বিষয়গত মূল্যায়ন করার পরিবর্তে, আপনি কোড কভারেজটি যুক্তিসঙ্গত আনুমানিক হিসাবে ব্যবহার করতে পারেন এবং মেশিনগুলি আপনার জন্য এটি পরিমাপ করতে দিন let

কোন মেট্রিক ব্যবহার করতে হবে

কোড কভারেজ কোনও একক মেট্রিক নয়; কভারেজ পরিমাপ করার বিভিন্ন উপায় রয়েছে। কোনটি আপনি একটি মান সেট করতে পারেন তার উপর নির্ভর করে আপনি কী সেই মানটিকে সন্তুষ্ট করতে ব্যবহার করছেন।

উদাহরণ হিসাবে আমি দুটি সাধারণ মেট্রিক ব্যবহার করব যখন আপনি সেগুলি মান নির্ধারণ করতে ব্যবহার করতে পারেন:

  • বিবৃতি কভারেজ : পরীক্ষার সময় কত শতাংশ বিবৃতি কার্যকর করা হয়েছে? আপনার কোডটির দৈহিক কভারেজটি উপলব্ধি করার জন্য দরকারী : আমি যে কোডটি লিখেছি সেটির কতটুকু আমি প্রকৃতপক্ষে পরীক্ষা করেছি?
    • এই জাতীয় কভারেজ দুর্বল নির্ভুলতার যুক্তি সমর্থন করে তবে এটি অর্জন করাও সহজ। আপনি শুধু নিশ্চিত করার কোড কভারেজ ব্যবহার করেন, তাহলে যে জিনিস পরীক্ষিত (এবং যে অতিক্রম পরীক্ষা মানের একটি সূচক হিসাবে নয়) তারপর বিবৃতি কভারেজ সম্ভবত যথেষ্ট।
  • শাখার কভারেজ : যখন শাখা যুক্তি যুক্ত থাকে (উদাঃ ক if), তখন উভয় শাখাকে মূল্যায়ন করা হয়েছে? এটি আপনার কোডের যৌক্তিক কভারেজটির আরও ভাল ধারণা দেয় : আমার কোডটি পরীক্ষা করতে পেরেছি এমন কতগুলি সম্ভাব্য পথ রয়েছে?
    • এই জাতীয় কভারেজটি আরও ভাল সূচক যে কোনও প্রোগ্রামের ইনপুটগুলির একটি বিস্তৃত সেট জুড়ে পরীক্ষা করা হয়েছে। আপনি যদি যথাযথতার আত্মবিশ্বাসের জন্য আপনার সর্বোত্তম অভিজ্ঞতামূলক অনুমান হিসাবে কোড কভারেজটি ব্যবহার করছেন তবে আপনার শাখা কভারেজ বা এর অনুরূপ ভিত্তিতে মান নির্ধারণ করা উচিত।

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

কত শতাংশ দরকার

শেষ অবধি, মূল প্রশ্নটিতে ফিরে যান: আপনি কোড কভারেজ মান নির্ধারণ করেন, তাহলে এই সংখ্যাটি কী হওয়া উচিত?

আশাকরি এই মুহুর্তে এটি স্পষ্ট যে আমরা শুরু করার একটি আনুমানিকের কথা বলছি, সুতরাং আমরা যে কোনও নম্বরই বাছাই করাই সহজাত আনুমানিক হতে চলেছে।

কিছু চয়ন করতে পারে যে কেউ চয়ন করতে পারেন:

  • 100% । আপনি এটি চয়ন করতে পারেন কারণ আপনি নিশ্চিত হতে চান যে সবকিছু পরীক্ষা করা হয়েছে। এটি আপনাকে পরীক্ষার মান সম্পর্কে কোনও অন্তর্দৃষ্টি দেয় না, তবে আপনাকে বলে যে কিছু মানের কিছু পরীক্ষা প্রতিটি বিবৃতি (বা শাখা ইত্যাদি) স্পর্শ করেছে আবারও, এটি আত্মবিশ্বাসের মাত্রায় ফিরে আসে: আপনার কভারেজ যদি 100% এর নীচে থাকে , আপনি জানেন যে আপনার কোডের কিছু উপসেটটি অনির্যুক্ত।
    • কেউ কেউ তর্ক করতে পারে যে এটি নির্বোধ, এবং আপনার কেবলমাত্র আপনার কোডের অংশগুলি পরীক্ষা করা উচিত যা সত্যই গুরুত্বপূর্ণ। আমি তর্ক করব যে আপনার কেবলমাত্র আপনার কোডের সেই অংশগুলি বজায় রাখা উচিত যা সত্যই গুরুত্বপূর্ণ। কোড কভারেজটিও অনাকাঙ্ক্ষিত কোড সরিয়ে উন্নত করা যেতে পারে।
  • 99% (বা 95%, উচ্চ নব্বইয়ের দশকের অন্যান্য সংখ্যা।) আপনি যে ক্ষেত্রে আত্মবিশ্বাসের একটি স্তর 100% এর মত প্রকাশ করতে চান সেই ক্ষেত্রে উপযুক্ত , তবে মাঝে মাঝে পরীক্ষা-নিরীক্ষার কঠোর কোণের বিষয়ে চিন্তা না করার জন্য নিজেকে কিছুটা মার্জিন ছেড়ে যান কোড।
  • 80% । আমি এই সংখ্যাটি কয়েকবার ব্যবহারে দেখেছি এবং এটি কোথা থেকে উত্পন্ন তা পুরোপুরি জানি না। আমি মনে করি এটি ৮০-২০ নিয়মের একটি অদ্ভুত অপব্যবহার হতে পারে; সাধারণত, এখানে উদ্দেশ্যটি হ'ল আপনার কোডের বেশিরভাগ পরীক্ষিত। (হ্যাঁ, ৫১% এছাড়াও "সর্বাধিক" হতে পারে তবে ৮০% বেশিরভাগ লোকেরা যা বোঝায় তার চেয়ে বেশি প্রতিফলিত হয়)) এটি মধ্য-স্থল ক্ষেত্রে যেখানে উপযুক্ত "পরীক্ষিত" উচ্চ অগ্রাধিকার না হয় তার পক্ষে উপযুক্ত (আপনি ডন না ' টি স্বল্পমূল্যের পরীক্ষাগুলিতে প্রচেষ্টা নষ্ট করতে চান না) তবে এটি এমন একটি অগ্রাধিকারের পক্ষে যথেষ্ট যে আপনি এখনও কিছু মান স্থিতি রাখতে চান।

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

অন্যান্য নোট

উপরেরটি ধরে নিচ্ছে যে নির্ভুলতা লক্ষ্য is কোড কভারেজ কেবল তথ্য; এটি অন্যান্য লক্ষ্যগুলির সাথে প্রাসঙ্গিক হতে পারে। উদাহরণস্বরূপ, আপনি যদি রক্ষণাবেক্ষণের বিষয়ে উদ্বিগ্ন হন তবে আপনি সম্ভবত looseিলে .ালা সংযোগের বিষয়ে যত্নশীল হন যা টেস্টিবিলিটি দ্বারা প্রদর্শিত হয়, যা ঘুরেফিরে কোড কভারেজ দ্বারা পরিমাপ করা যায় (নির্দিষ্ট ফ্যাশনে)। সুতরাং আপনার কোড কভারেজ মানটি "রক্ষণাবেক্ষণযোগ্যতা" এর মানও প্রায় অনুমান করার জন্য একটি অভিজ্ঞতামূলক ভিত্তি সরবরাহ করে।


ভাল উত্তর. আপনি ইউনিট পরীক্ষার মাধ্যমে কার্যকারিতা কভারেজ সন্ধানে আমাকে সহায়তা করতে পারেন? কোনও সরঞ্জাম (গুলি) যা আমাকে এটি অর্জনে সহায়তা করতে পারে?
কার্লিগ্রেগি

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

2
আমি মনে করি এটি সর্বোত্তম উত্তর উপলব্ধ।
বাগকিলার

27

আমার প্রিয় কোডের কভারেজটি একটি নক্ষত্রের সাথে 100%। তারকাচিহ্নটি আসে কারণ আমি এমন সরঞ্জামগুলি ব্যবহার করতে পছন্দ করি যা আমাকে নির্দিষ্ট রেখাগুলিকে "গণনা করে না" হিসাবে চিহ্নিত করতে দেয়। আমি যদি "গণনা" করে এমন লাইনগুলির 100% কভার করে থাকি তবে আমার কাজ শেষ হয়ে যায়।

অন্তর্নিহিত প্রক্রিয়াটি হ'ল:

  1. আমি ভাবতে পারি এমন সমস্ত কার্যকারিতা এবং প্রান্তের ক্ষেত্রে ব্যবহার করার জন্য আমার পরীক্ষাগুলি লিখি (সাধারণত ডকুমেন্টেশন থেকে কাজ করা) working
  2. আমি কোড কভারেজ সরঞ্জাম চালাচ্ছি
  3. আমি যে কোনও লাইন বা পাথকে আচ্ছন্ন না করে এবং যেটিকে আমি গুরুত্বপূর্ণ বা অ্যাক্সেসযোগ্য না বলে বিবেচনা করি (ডিফেন্সিভ প্রোগ্রামিংয়ের কারণে) আমি গণনা না করে চিহ্নিত করেছি
  4. আমি অনুপস্থিত রেখাগুলি coverাকতে এবং পরীক্ষাগুলি উন্নত করতে নতুন পরীক্ষাগুলি লিখি যদি সেই প্রান্তগুলি উল্লেখ না করা হয়।

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


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

3
আপনি কি "এমন সরঞ্জামগুলি অন্তর্ভুক্ত করবেন যা" [আপনাকে] নির্দিষ্ট রেখাগুলি গণনা করে না এমন লাইন হিসাবে চিহ্নিত করতে দেয় "?
ডোমডামব্রোগিয়া

2
@ ডমডামব্রোগিয়া পিএইচপি-র উদাহরণ হিসাবে, যদি বার্গম্যানের কোড কভারেজ লাইব্রেরি ব্যবহার করা হয় তবে একটি লাইনটি বেনিফিট করুন // @codeCoverageIgnoreএবং এটি কভারেজ থেকে বাদ দেওয়া হবে।
বিশপ

19

আমি ভাগ করতে চাই টেস্ট কভারেজটিতে আমার আরেকটি অ্যানিটোড থাকত।

আমাদের একটি বিশাল প্রকল্প রয়েছে যার মধ্যে টুইটারের মধ্যে আমি উল্লেখ করেছি যে 700 ইউনিট পরীক্ষার সাথে আমাদের কেবল 20% কোড কভারেজ রয়েছে

স্কট হ্যানসেলম্যান জ্ঞানের কথায় জবাব দিলেন :

এটা কি অধিকার 20%? এটি কি 20% আপনার কোডটি ব্যবহারকারীদের সবচেয়ে বেশি যে কোডটি দেয় তার প্রতিনিধিত্ব করে? আপনি আরও 50 টি পরীক্ষা যোগ করতে পারেন এবং কেবল 2% যোগ করতে পারেন।

আবার, কোড কভারেজ উত্তরটিতে এটি আমার টেস্টিয়াসে ফিরে যায় । পাত্রে কত চাল রাখা উচিত? এটা নির্ভর করে.


অবশ্যই সেখানে সাধারণ জ্ঞান থাকতে হবে। আপনি যে কোডটি পরীক্ষা করছেন তার 50% টি যদি মন্তব্য হয় তবে এটি খুব বেশি ব্যবহার নয়।
স্যানিটি

2
এটি আরও বেশি ... এর লাইনে আপনার আচ্ছাদনটি কি আপনার অ্যাপ্লিকেশনটির মূল কার্যকারিতা ব্যয় করা হয়েছে, বা এটি অযথাই তুচ্ছ বৈশিষ্ট্যগুলি / সুন্দর-থেকে-হ্যাডগুলি পরীক্ষা করছে?
জন লিমাজাপ

আপনার কোডের একটি বৃহত% শব্দটি হয় বয়লারপ্লেট, বা ব্যতিক্রম হ্যান্ডলিং, বা শর্তসাপেক্ষে "ডিবাগ মোড" স্টাফ
এরিক অ্যারোনস্টি

8

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

এই প্রশ্নটি এমন কিছু দিয়ে খারিজ করা সহজ:

  • আচ্ছাদিত রেখাগুলি পরীক্ষিত যুক্তির সমান নয় এবং শতাংশের মধ্যে খুব বেশি পড়া উচিত নয়।

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

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

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

  • লো ওয়াটার মার্ক (এলডাব্লুএম), পরীক্ষার অধীনে সিস্টেমে দেখা সর্বনিম্ন সংখ্যা unc
  • উচ্চ জল চিহ্ন (এইচডাব্লুএম), পরীক্ষার অধীনে সিস্টেমের জন্য দেখা সর্বোচ্চ কোড কভারেজ শতাংশ

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

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

  • পরীক্ষার যোগ্য কোড প্রচারিত হয়। নতুন কোড যুক্ত করার সময় কোডটি পরীক্ষামূলকভাবে তৈরি করার জন্য আপনাকে সত্যিই চেষ্টা করতে হবে, কারণ আপনাকে এটি পরীক্ষার ক্ষেত্রে এগুলি সব চেষ্টা করে দেখতে হবে। টেস্টেবল কোড সাধারণত একটি ভাল জিনিস।

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

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

আমি কোড কভারেজ মেট্রিকের আরও দুটি সাধারণ বেনিফিট উল্লেখ করতে চাই।

  • কোড কভারেজ বিশ্লেষণ গতিশীল কোড বিশ্লেষণের অংশ (স্থির একের বিপরীতে, অর্থাৎ লিন্টের বিপরীতে)। গতিশীল কোড বিশ্লেষণ চলাকালীন সমস্যাগুলি (বিশুদ্ধ পরিবার, http://www-03.ibm.com/software/products/en/rational-purify-family যেমন সরঞ্জাম দ্বারা ) পাওয়া যায় নিরবিচ্ছিন্ন মেমরি রিড (ইউএমআর) এর মতো জিনিস, মেমরি ফাঁস ইত্যাদির সাহায্যে এই কোডগুলি কেবলমাত্র কার্যকর করা পরীক্ষার কেস দ্বারা কোডটি আচ্ছাদিত থাকলে পাওয়া যাবে । একটি পরীক্ষার ক্ষেত্রে যে কোডটি coverেকে রাখা সবচেয়ে কঠিন সেটি হ'ল সাধারণত সিস্টেমে অস্বাভাবিক ঘটনা, তবে আপনি যদি সিস্টেমটি করুণভাবে ব্যর্থ করতে চান (যেমন ক্র্যাশের পরিবর্তে ত্রুটি চিহ্নিত করতে পারেন) আপনি অস্বাভাবিক কেসগুলি coveringাকতে কিছু চেষ্টা করতে পারেন গতিশীল কোড বিশ্লেষণেও। কিছুটা দুর্ভাগ্যের সাথে, একটি ইউএমআর সেগফল্ট বা আরও খারাপ হতে পারে।

  • লোকেরা নতুন কোডের জন্য 100% রাখার ক্ষেত্রে গর্বিত হয় এবং লোকেরা অন্যান্য প্রয়োগের সমস্যার মতো পরীক্ষার সমস্যাগুলিকে অনুরূপ আবেগের সাথে আলোচনা করে। এই ফাংশনটি আরও পরীক্ষামূলক পদ্ধতিতে কীভাবে লেখা যায়? কীভাবে আপনি এই অস্বাভাবিক কেসটি coverাকতে চেষ্টা করবেন?

এবং একটি নেতিবাচক, সম্পূর্ণতার জন্য।

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

7

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

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

শুভকামনা!


6

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

নেট বিশ্বের লোকেরা প্রায়শই 80% যুক্তিযুক্ত হিসাবে উদ্ধৃত করে। তবে তারা সমাধান পর্যায়ে এটি বলে। আমি প্রকল্পের স্তরে পরিমাপ করতে পছন্দ করি: ইউআই প্রকল্পের জন্য 30% জরিমানা হতে পারে যদি আপনি সেলেনিয়াম ইত্যাদি পেয়ে থাকেন বা ম্যানুয়াল পরীক্ষা করে থাকেন তবে ডেটা স্তর প্রকল্পের জন্য 20% ভাল হতে পারে, তবে 95% + ব্যবসায়ের পক্ষে যথেষ্ট অর্জনযোগ্য হতে পারে নিয়ম স্তর, পুরোপুরি না হলে। সুতরাং সামগ্রিকভাবে কভারেজটি 60% বলুন, তবে সমালোচনামূলক ব্যবসায়ের যুক্তি অনেক বেশি হতে পারে।

আমি এটিও শুনেছি: উচ্চাভিলাষ 100% এবং আপনি 80% আঘাত করব; তবে ৮০% পর্যন্ত আকাঙ্ক্ষিত হোন এবং আপনি ৪০% মারবেন।

নীচের লাইন: 80:20 নিয়মটি প্রয়োগ করুন এবং আপনার অ্যাপ্লিকেশনের বাগের গণনা আপনাকে গাইড করতে দিন।


5

কোড কভারেজটি অন্য একটি মেট্রিক। এবং নিজেই এটি খুব বিভ্রান্তিমূলক হতে পারে (দেখুন www.thoughtworks.com/insights/blog/are-test-coverage-metics-overrated )। সুতরাং আপনার লক্ষ্যটি 100% কোড কভারেজ অর্জন করা নয় বরং আপনি আপনার আবেদনের সমস্ত প্রাসঙ্গিক পরিস্থিতি পরীক্ষা করে তা নিশ্চিত করা উচিত।


4

85% চেকইন মানদণ্ডের জন্য ভাল শুরু করার জায়গা হবে।

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


54
আপনি কিভাবে এই শতাংশে পৌঁছেছেন?
স্যানিটি

পাদটীকা হিসাবে - এটি এমন প্রকল্পগুলির জন্য অগোছালো হতে পারে যেখানে অটোমেশনটি কঠিন always যা অর্জনযোগ্য বনাম কাঙ্ক্ষিত তা সম্পর্কে সর্বদা ব্যবহারিক হতে হবে।
স্টেফবু

4
মূলত পরীক্ষার মাধ্যমে। দেব-সম্পর্কিত ইউনিট পরীক্ষার জন্য কোড কভারেজটি 80-90% এ পৌঁছানো বেশ সহজ - সাধারণত উচ্চতর হয়ে যাওয়ার জন্য divineশিক পরীক্ষার হস্তক্ষেপ প্রয়োজন - বা সত্যিই সহজ কোড পাথ।
স্টেফবু

1
আমি সাধারণত 1) বড় রানটাইম কোড পাথ দিয়ে শুরু করি 2) স্পষ্টভাবে ব্যতিক্রম ঘটনাগুলি যা আমি স্পষ্টভাবে নিক্ষেপ করি 3) "ব্যর্থতা" দিয়ে শেষ হওয়া শর্তসাপেক্ষ ক্ষেত্রে এটি আপনাকে সাধারণত 70-80 রেঞ্জের মধ্যে নিয়ে যায় তারপরে ওয়্যাকামোল, বাগ এবং কর্নারের ক্ষেত্রে রেজিস্ট্রেশন, প্যারামিটার উদ্দীপনা ইত্যাদি। পদ্ধতিগুলির ইনজেকশন সক্ষম করতে রিফ্যাক্টরিং ইত্যাদি আমি সাধারণত প্রধান কোড হিসাবে দেব-সম্পর্কিত পরীক্ষাগুলি লেখার / রিফ্যাক্টরিংয়ের জন্য কমপক্ষে বেশি সময় দিতে পারি।
স্টেফবু

4

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

<cobertura-check linerate="0"
                 branchrate="0"
                 totallinerate="70"
                 totalbranchrate="90"
                 failureproperty="build.failed" />

4

যখন আমি মনে করি যে আমার কোডটি ইউনিট পর্যাপ্তরূপে পরীক্ষিত নয়, এবং আমি কী পরীক্ষা করব তা নিশ্চিত নই, আমি পরবর্তীটি কী পরীক্ষা করতে হবে তা সিদ্ধান্ত নিতে সহায়তা করতে আমি কভারেজ ব্যবহার করি।

যদি আমি ইউনিট পরীক্ষায় কভারেজ বাড়িয়ে তুলি - আমি জানি এই ইউনিট পরীক্ষাটি মূল্যবান।

এটি এমন কোডের জন্য যা coveredেকে নেই, 50% আচ্ছাদিত বা 97% আচ্ছাদিত।


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

6
আমার এক লাইনের গেটে বাগ রয়েছে। আমার অভিজ্ঞতা থেকে, কোনও বাগ ফ্রি কোড নেই। এমন কোনও পদ্ধতি নেই যা সত্যিই ব্যর্থ হতে পারে না।
ইটকার

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

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

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

4

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

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

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


3

যদি আপনি শালীন পরিমাণের জন্য ইউনিট টেস্টিং করে চলেছেন তবে 95% + এর কাছে না যাওয়ার কোনও কারণ আমি দেখতে পাচ্ছি না। তবে, সর্বনিম্ন, আমি সর্বদা ৮০% এর সাথে কাজ করেছি, এমনকি টেস্টিংয়ের ক্ষেত্রেও নতুন।

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


3

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

দুর্ভাগ্যক্রমে, এই ফলাফলগুলির বেশিরভাগ সংস্থাগুলির অভ্যন্তরীণ, সুতরাং এমন কোনও পাবলিক সাহিত্য নেই যা আমি আপনাকে নির্দেশ করতে পারি।


3

কোড কভারেজটি দুর্দান্ত তবে যতক্ষণ আপনি এ থেকে যে সুবিধা পান তা অর্জনের জন্য ব্যয় / প্রচেষ্টা ছাড়িয়ে যায়।

আমরা কিছু সময়ের জন্য ৮০% স্ট্যান্ডার্ডের সাথে কাজ করছি, তবে আমরা সবেমাত্র এই সিদ্ধান্তটি ত্যাগ করার সিদ্ধান্ত নিয়েছি এবং পরিবর্তে আমাদের পরীক্ষার দিকে আরও মনোনিবেশ করব। জটিল ব্যবসায়ের যুক্তি ইত্যাদিতে মনোনিবেশ করা,

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


2

সংক্ষিপ্ত উত্তর: 60-80%

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


2

পরীক্ষা করে দেখুন Crap4j । এটি সোজা কোড কভারেজের তুলনায় কিছুটা পরিশীলিত পদ্ধতির। এটি জটিলতা পরিমাপের সাথে কোড কভারেজ পরিমাপকে সম্মিলিত করে এবং তারপরে আপনাকে দেখায় যে জটিল কোডটি বর্তমানে পরীক্ষিত নয়।


2

এই কনড্রামের আমার উত্তরটি হল আপনি পরীক্ষা করতে পারবেন এমন কোডের 100% লাইন কভারেজ এবং আপনি যে কোডটি পরীক্ষা করতে পারবেন না তার 0% লাইন কভারেজ থাকতে হবে।

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

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

এর অর্থ এই নয় যে আমি লাইব্রেরি কোডের 100% লাইন কভারেজ অর্জনের প্রস্তাব দিতে পারি।

আমি মাঝে মাঝে অ্যাপ 2 পর্যালোচনা করি / আমি সেখানে কোনও কোড পরীক্ষা করতে পারি কিনা তা দেখতে এবং যদি আমি এটি করতে পারি তবে আমি এটিকে অ্যাপ 1 / এ স্থানান্তর করতে পারি

এখন আমি সামগ্রিক কভারেজ সম্পর্কে খুব বেশি চিন্তিত নই কারণ প্রকল্পের আকারের উপর নির্ভর করে এটি বন্যভাবে পরিবর্তিত হতে পারে তবে সাধারণত আমি 70% থেকে 90% এরও বেশি দেখেছি।

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


2

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


2

আমার মতে, উত্তরটি "আপনার কতটা সময় থাকবে তার উপর নির্ভর করে"। আমি ১০০% অর্জনের চেষ্টা করি তবে আমার যে সময়টি আমার কাছে তা না পেলে আমি কোনও হট্টগোল করি না।

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

আমি সাধারণত নিম্নলিখিত মানদণ্ড বা বিধি অনুসরণ করি:

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

  2. ইউনিট টেস্ট আমাকে এমন অবস্থা আবিষ্কার করতে সহায়তা করবে যা আমি এখনও যে পরিস্থিতিগুলি সম্পর্কে ভাবিনি। (কীভাবে আমার কোডটি স্থিতিশীল এবং শক্তিশালী করবেন?)

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


1

এটি আপনার আবেদনের উপর নির্ভর করে। উদাহরণস্বরূপ, কিছু অ্যাপ্লিকেশনগুলিতে বেশিরভাগ জিইআইআই কোড থাকে যা ইউনিট পরীক্ষিত হতে পারে না।


5
আপনি যদি কোনও টিডিডি পরিবহনে থাকেন তবে আপনার সম্ভবত ইউআইয়ের জন্য মডেল ভিউ উপস্থাপক ব্যবহার করা উচিত।
চার্লস গ্রাহাম

1

আমি মনে করি না এরকম বি / ডাব্লু নিয়ম থাকতে পারে।
কোডটি পর্যালোচনা করা উচিত, সমালোচনামূলক বিশদের দিকে বিশেষ মনোযোগ সহ।
তবে, যদি এটি পরীক্ষা না করা হয় তবে এটিতে একটি বাগ রয়েছে!


কোনও নিয়ম চান না, কোড-কভারেজ শতাংশ এবং ইউনিট পরীক্ষার কার্যকারিতার মধ্যে পারস্পরিক সম্পর্ক সম্পর্কিত কোনও ব্যক্তিগত অভিজ্ঞতার বিষয়ে কেবল প্রতিক্রিয়া।
স্যানিটি

1

কোডের সমালোচনার উপর নির্ভর করে, 75% -85% থেকে যে কোনও জায়গায় থাম্বের একটি ভাল নিয়ম। শিপিং কোডটি অবশ্যই বাড়ির ইউটিলিটি ইত্যাদির চেয়ে আরও ভালভাবে পরীক্ষা করা উচিত etc.


1

এটি আপনার অ্যাপ্লিকেশন বিকাশের জীবনচক্রের কোন পর্যায়ে রয়েছে তার উপর নির্ভর করতে হবে।

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

আপনার ডোমেনের উপর নির্ভর করে 95% এর জন্য শুটিং করা অযৌক্তিক নয়, তবে আমাকে বলতে হবে গড়ে আপনার গড় 85% থেকে 90% হওয়া উচিত।


1

আমি মনে করি সঠিক কোড কভারেজের সর্বোত্তম লক্ষণটি হ'ল কংক্রিট সমস্যা ইউনিট পরীক্ষাগুলি ঠিক করতে সহায়তা করে যুক্তিযুক্তভাবে আপনি তৈরি ইউনিট পরীক্ষার কোডের আকারের সাথে মিল।


1

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


0

আমরা কয়েকদিন আগে পর্যন্ত> ৮০% লক্ষ্যবস্তু ছিলাম, তবে আমরা প্রচুর জেনারেটেড কোড ব্যবহার করার পরেও% বয়সের জন্য যত্ন নিই না, বরং প্রয়োজনীয় কভারেজটি পর্যালোচনা করে ফোন করতে চাই।


0

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

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