কোড পর্যালোচনা চলাকালীন পরীক্ষাগুলি লেখা কি উপকারী হবে না?


24

আমার এক সহকর্মী একটি ধারণা নিয়ে এসেছিলেন যা আমি আকর্ষণীয় পেয়েছি।

কোড টি পর্যালোচনা চলাকালীন পরীক্ষাগুলি লিখতে কি সুবিধাজনক হবে না, এমন ব্যক্তি ধরে নিয়ে যে আমরা টিডিডি করি না?

এই প্রশ্নের জন্য ধরে নিন যে এটি নিখাদ একাডেমিক প্রকল্প তাই কোনও জীবন ঝুঁকির মধ্যে নেই। তাছাড়া দলটি ৪ জন। প্রত্যেকে ভাষা জানে এবং ব্যবহৃত সমস্ত সরঞ্জাম / গ্রন্থাগার / ফ্রেমওয়ার্কগুলির সাথে পরিচিত এবং পরীক্ষা লিখতে পারে। সুতরাং মূলত যারা সিনিয়র ফুলস্ট্যাক নয় তাদের নেতৃত্ব নিনজা ইঞ্জিনিয়ার তবে শালীন কোডার।

আমি খুঁজে পেয়েছি পেশাদাররা:

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

আমি খুঁজে পেয়েছি:

  1. কোড লেখার এবং পরীক্ষার মধ্যে ফিডব্যাক লুপ বৃদ্ধি পায়।

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


3
পরীক্ষার এই ভেলাটি পরীক্ষার সময় বা তার উপরে হবে যা উন্নয়নের সময় বা তার জায়গায় হওয়া উচিত mention
রবি ডি

3
"যদি আমরা টিডিডি না করি" তবে ইউনিটেস্ট (টেস্ট-ইন আইসোলোটিওন) লিখতে সুবিধা হবে তবে নন-টিডিডি-কোডটি আলাদা করা সাধারণত কঠিন hard স্বীকৃতি পরীক্ষা এবং / অথবা ইন্টিগ্রেশন টেস্টের লিখন লিখতে অসুবিধাজনক এবং / অথবা ভঙ্গুরও হতে পারে যদি আপনার কাছে একটি ডেটাবেস বিমূর্ত স্তর (repository api) থাকে যা আপনাকে পুনরুত্পাদনযোগ্য, অ-ভঙ্গুর প্রাক-শর্তগুলি সংজ্ঞায়িত করতে দেয়।
বি

4
@ জুলিনরোজ: টিডিডি এতে সহায়তা করে। যেহেতু কোনও কোড নেই তাই আপনি নিজের কোডটিতে পরীক্ষাটি তৈরি করতে পারবেন না।
জার্গ ডব্লু মিট্টাগ

6
এটি মনে হচ্ছে এটি সত্যিই দীর্ঘ কোড পর্যালোচনা হবে।
ডেভিড বলছেন মনিকা

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

উত্তর:


7

কোডটি পর্যালোচনা করার সময়, পর্যালোচনাটি করা ব্যক্তি দ্বারা পরীক্ষা করা কি উপকারী হবে না?

আমি খুঁজে পেয়েছি যে পরীক্ষাগুলি লেখার জন্য ভাল সময়টি যখন আপনি বুঝতে পারেন যে কোনও পরিস্থিতির জন্য আপনার পরীক্ষা প্রয়োজন।

কম্পিউটারগুলির জন্য টাস্ক স্যুইচিং ব্যয়বহুল - এমনকি মানুষের পক্ষেও।

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

কোড পর্যালোচনা চলাকালীন যদি তা ঘটে থাকে তবে কেন এগিয়ে গিয়ে তা করবেন না? আমি আগে এটি করেছি। আমি খুঁজে পেয়েছি যে এটি না করার চেয়ে ভাল, বিশেষত আপনি যদি এটি দ্রুত করতে পারেন, এবং আপনি অন্যথায় এটি না করতে পারলে আরও ভাল।

ধরে নিচ্ছি আমরা টিডিডি করি না?

আপনি যদি টিডিডি অনুশীলন করেন, আপনি যদি কোড রিভিউ করার সময় বুঝতে পারেন যে আপনার একটি পরীক্ষা দরকার, যা আপনার নেই, তবে কেন পরীক্ষাটি সেখানে লিখবেন না?

পেশাদাররা

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

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

আদেশ সহকারে

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


22

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

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

এগুলি আমার বইয়ের সমস্ত জয়।


5
এটি আপনার মত কোড পর্যালোচনা করার মতো অভিজ্ঞতা রয়েছে
এমনটি হ'ল

আপনি @ syb0rg সম্পর্কে যা বলছেন তা ধারণা নেই ... আপনি এটি প্রমাণ করতে পারবেন না। =;) -
রাবারডাক


2
এছাড়াও, একটি পরীক্ষার কেস পর্যালোচনাতে আবিষ্কৃত ত্রুটি বর্ণনা করার সর্বনিম্ন অস্পষ্ট উপায় সম্পর্কে :-)
স্টিভ জেসপ

1
@ syb0rg রাবার হাঁস হাজারো বা লক্ষ লক্ষ প্রোগ্রামারকে তাদের কোড ঠিক করতে সহায়তা করেছে । যিনি এত কিছু দেখেছেন তার চেয়ে কোডের পর্যালোচনা করার জন্য কে আরও দক্ষ?
jpmc26

18

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

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

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


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

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

সমস্যাটিকে বলা হয় "কনফরমেশনাল বায়াস"।
আরটিস

আসলে আমি এটি বলব, কোড পর্যালোচনা প্রক্রিয়া থেকে বিচ্যুত হয়ে কোড টেস্টিং প্রক্রিয়াটিকে প্রভাবিত করবে যা আপনি যা চান তা নয়, পৃথক পরীক্ষক এবং কোডার থাকার মূল সুবিধাটি হরণ করে।
আর্টস

1
@ রবিডিআই যদি দোষ গ্রহণকারী প্রকৃত পক্ষে গুরুত্বপূর্ণ হয় তবে আপনার অস্বাস্থ্যকর বিকাশের পরিবেশ রয়েছে। এটি কার্যকর হ'ল কয়েকটি পরীক্ষা না দেওয়ার চেয়েও খারাপ।
jpmc26

5

আমি @ রবিডি'র উত্তরের সাথে একমত, তবে যুক্ত করার মতো আমার কাছে আরও কিছু আছে।

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

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

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

ওপি এমন একটি সম্পাদনা যুক্ত করেছে যেখানে তারা এটিকে আরও জটিল বা অ্যালগরিদম ভারী বৈশিষ্ট্য সম্পর্কিত বিশদ বিবরণ দেয়।

এর প্রতিক্রিয়ায় আমি যুক্ত করব যে সমস্যা এবং সমাধানের দিকে আপনার আরও দৃষ্টি আকর্ষণ করার প্রবণতা ভাল is বাস্তবায়ন কোড এবং পরীক্ষাগুলি সত্যিই কঠিন কিছু না দেখা পর্যন্ত একসাথে একাধিক ব্যক্তির সাথে জুটি বেঁধে দেওয়া। প্রতিটি নতুন ধারণা ছুঁড়ে ফেলে এবং আরও মান যুক্ত করে।

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

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


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

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

@ এনকায়েটার আমি সম্মত, এটি কেবল একটি বিশাল সময়ের ডুবির মতো শোনাচ্ছে যা সম্ভবত পুরোপুরি আরও ভাল করে তুলবে না। রোয় এবং এই সমস্ত ...
সারা

3

আপনি যেমন বলছেন, আপনি যদি কোনও টিডিডি দল চালাচ্ছেন তবে কোডটি ইতিমধ্যে পরীক্ষা করা উচিত বলে এটি কার্যকর।

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

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

তবে হ্যাঁ, সর্বোপরি, আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি আপনার কোডগুলি দিয়ে আপনার পরীক্ষাগুলি লিখে এবং তারপরে এটি একবারে পর্যালোচনা করুন।


2

এটি কোড পর্যালোচনায় আপনি কী করছেন তা নির্ভর করে। আমি মনে করি সেই পর্যায়ে পরীক্ষা লেখার জন্য দুটি প্রধান কারণ রয়েছে:

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

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

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

আসলে, আমি মনে করি না এটি "কর্নার কেস" কেবল "জটিল, বৈজ্ঞানিক অ্যালগরিদম" এর জন্য উপযুক্ত - একেবারে বিপরীত, এটি কোনও ধরণের সফ্টওয়্যারগুলির জন্য উপযুক্ত যা আপনি একটি নির্দিষ্ট ডিগ্রী থেকে মানের আশা করেন।


2

না, এটা করবেন না। আপনি তাদের ভাবেন যে টিডিডি ভয়াবহ।

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

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

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

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


1

কোড পর্যালোচনা চলাকালীন ইউনিট পরীক্ষাগুলি বিকাশের সময় ইউনিট পরীক্ষার জন্য দুর্বল বিকল্প are

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

কারণটা এখানে.

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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