প্রথমে কী আসা উচিত: টেস্টিং বা কোড পর্যালোচনা?


25

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

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

কোন পদ্ধতির সুপারিশ করা হয় এবং কেন?


1
মনে রাখবেন যে প্রশ্নটি এই পদক্ষেপগুলির ক্রম সম্পর্কে, সেগুলি আদৌ করা উচিত কিনা
রিচলভ

8
আপনি যদি টিডিডি ব্যবহার করেন তবে আপনার প্রশ্নটি কোনও অর্থবোধ করে না।
এডওয়ার্ড স্ট্রেঞ্জ

উত্তর:


40

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


1
এটি কাছে যাওয়ার একটি দুর্দান্ত উপায়। কেবল এটি যুক্ত করতে চান যে পরীক্ষাটি নিজেই পর্যালোচনার কোড করাও মূলত (মূলত কভারেজ ফাঁকের ফাঁকে ফাঁকে চিহ্নিত করা) মূল্যবান।
কেভিন হু

@ কেভিনহসু, দুর্দান্ত পয়েন্ট
এইচএলজিইএম

15

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


8

আদর্শভাবে, একটি চতুর বিশ্বের, উভয় :)

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

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


6

কোডটি পর্যালোচনাটি ইতিমধ্যে কাজ করা জিনিসগুলিকে "পোলিশ" করতে, কোডটি পছন্দসই মানের স্তরের রয়েছে তা নিশ্চিত করার জন্য এবং সংস্থার দ্বারা নির্ধারিত কোড নির্দেশিকাগুলি পূরণ করে done

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

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


4

প্রথম পরীক্ষা। শেষ পরীক্ষা। পরীক্ষা, পরীক্ষা, পরীক্ষা।

কোড পর্যালোচনাটি হ'ল সুন্দর to তবে কঠিন - ব্যাক্তিত্বের জড়িত বা ভিন্ন মতামত যদি একটি বেদনাদায়ক প্রক্রিয়া হতে পারে।

পরীক্ষা খুব স্পষ্ট: হয় এটি কাজ করে বা এটি কাজ করে না। তো পরীক্ষা, পরীক্ষা, পরীক্ষা! এবং সম্ভব হলে কোড-রিভিউ।


আর কখন ঘুমাবো?

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

1
অসম্মতি ... কোড পর্যালোচনাগুলি কেবল সূক্ষ্ম বাগগুলি অনুসন্ধান করার জন্যই নয় স্টাইলের ত্রুটিগুলি আবিষ্কার করার জন্য, এবং অভিজ্ঞ প্রোগ্রামার সন্ধান করে সনাক্ত করতে পারে এমন পারফরম্যান্স বাগগুলি আবিষ্কার করার জন্য তবে এটির জন্য অনেক সময়
নিরীক্ষণ করবে

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

2

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

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

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


2

প্রথমে কোডটি বিকাশের জন্য স্বয়ংক্রিয় পরীক্ষাগুলি লিখুন। সমস্ত জ্ঞাত প্রয়োজনীয়তা পরীক্ষা করা হচ্ছে তা নিশ্চিত করতে পরীক্ষাগুলি পর্যালোচনা করুন। কোড লিখুন। যতবার ইচ্ছা পর্যালোচনা করুন।

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


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

2

কোনটি প্রথম, ডিম না মুরগী?
এটা নির্ভর করে.

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

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

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

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

শুধু আমার দুই সেন্ট।


2

সফটওয়্যার বিকাশ প্রক্রিয়াগুলির ফলস্বরূপ দক্ষতা এবং গুণমান যে কারও চেয়ে বেশি পড়াশোনা ও পরিমাপ করেছেন কেপার্স-জোনস, ত্রুটি অপসারণের ক্রিয়াকলাপগুলির নিম্নলিখিত ক্রমটি সুপারিশ করেছেন :

  • নকশা পরিদর্শন
  • কোড পরিদর্শন
  • ইউনিট পরীক্ষা
  • নতুন ফাংশন পরীক্ষা
  • রিগ্রেশন টেস্ট
  • পারফরম্যান্স পরীক্ষা
  • সিস্টেম পরীক্ষা
  • বাহ্যিক বিটা পরীক্ষা

পরীক্ষার আগে কোড পরিদর্শন পরিচালনার অন্যতম কারণ হ'ল পর্যালোচনাটি কেবল কোডটিই নয়, কোডটির পরীক্ষাযোগ্যতা বিবেচনা করতে পারে।

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