কীভাবে সহকর্মীদের ইউনিট-টেস্ট লিখতে উদ্বুদ্ধ করবেন? [বন্ধ]


92

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

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

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

প্রশ্ন 1: আমি কীভাবে আমার সহকর্মীদের ইউনিট-টেস্টগুলি লিখতে উত্সাহিত করব?

প্রশ্ন 2: আমি কীভাবে আমার ব্যক্তিগত কোড মানের মান অনুসরণ করতে অনুপ্রাণিত হই? (কখনও কখনও এটি সত্যিই হতাশার!)

পিএস: কিছু হতাশাজনক তথ্য (1 বছরে পৌঁছেছে):

  • মোট ইউনিট-পরীক্ষা: 1693
  • মোট "উদাহরণ ইউনিট-পরীক্ষা": প্রায় 50
  • আমার দ্বারা সম্পন্ন: 1521

সম্পাদনা: আমি কি খুব বেশি আশা করি? এটি আমার প্রথম কাজ করার জায়গা এবং আমি যথাসাধ্য চেষ্টা করার চেষ্টা করছি।

সম্পাদনা 2: সমস্ত উত্তরের উপর ভিত্তি করে আমি নিজের জন্য একটি ছোট চেকলিস্ট তৈরি করেছি। আমি ব্যক্তিগতভাবে দু'জন বিকাশকারীর সাথে কথা বলেছি এবং আমাদের একটি ভাল এবং সৎ কথা হয়েছিল।

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

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

পরের সপ্তাহে আমি অন্য বিকাশকারীদের সাথে কথা বলতে যাচ্ছি।

আপনার দুর্দান্ত উত্তরের (এতদূর!) এবং আপনার সমর্থনের জন্য ধন্যবাদ। আমি সত্যিই এটার প্রশংসা করছি! আমি অনেক কিছু শিখেছি, আপনাকে অনেক ধন্যবাদ!


বিগত বছরগুলিতে আপনার দ্বারা অন্য 172 ইউনিট পরীক্ষা করা হয়েছিল বা অন্য কেউ ইউনিট পরীক্ষা করছেন যে আপনি তাদের অবদানকে তুচ্ছ করছেন?
জেবি কিং

16
এই অন্যান্য 172 ইউনিট পরীক্ষাটি এমন এক বিকাশকারী দ্বারা পরিচালিত হয়েছিল যিনি সংস্থাটি ত্যাগ করেছিলেন। দু: খ :(
লুকানো

6
নম্বর কথা বলুন দয়া করে। গত বছরে কতগুলি বাগ আবিষ্কার হয়েছিল, সেগুলির মধ্যে কতটি আবিষ্কার হয়েছিল এবং কতটি ইউনিট টেস্ট দ্বারা আটকানো হয়েছিল। পরীক্ষার লেখার জন্য কত সময় (এক ব্যক্তির দ্বারা এক বছরে 1521) বনাম "আসল কাজ করা" বনাম (আপনার সহকর্মীরা সম্ভবত ভাবেন)। তারা কি ইউটি উপকারী হিসাবে বা সময়ের অপচয় হিসাবে উপলব্ধি করেছে? অর্থাত্ আমাকে অর্থ দেখান।
mattnz

1
কৌতূহলের বাইরে, আপনার সহকর্মীদের কী কোনও বিকল্প ডিবাগিং কৌশল আছে? টিডিডি প্রমাণের জন্য কার্যকর যে কোনও কিছু প্রত্যাশার মতো কাজ করে তবে অজানা সমস্যার জন্য এতটা নয়। তারা কেবল একটি ডিবাগারে ঝাঁকুনিতে আরামদায়ক হতে পারে।
স্পেনসার রথবুন

3
পরীক্ষার উদ্দেশ্যে ডিবাগারকে বোঝানো ঠিক, তবে এটি কোডটি কয়েক দিন / সপ্তাহ / মাসের মধ্যে কাজ করবে কিনা তা নিশ্চিত করে না এবং এটিই আসল সমস্যা।
লুকারবেলো

উত্তর:


48

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

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

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

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

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

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

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

যদি তুমি সেসব কিছু ব্যয় যায়নি - ঐ উদাহরণ ফলাফল সহজ প্রশ্ন হওয়া উচিত এক্স-ঘণ্টা উন্নয়নশীল বৈশিষ্ট্য ওয়াই, কেন এটা করছেন পীড়াপীড়ি হবে 2x ?


আপনার ইনপুট জন্য ধন্যবাদ। আমি মনে করি আমি কাটার সাথে একটি টিডিডি বৈঠকের সময়সূচী তৈরি করতে যাচ্ছি .. প্রতি সভাতে দুজন বিকাশকারী যাতে আমি সম্ভব সাহায্য করতে পারি। হ্যাঁ, সফ্টওয়্যারটি "কাজ করে"। তবে প্রচুর বাগগুলি "ফিরছে"। যদি কেউ মডিউল এ কিছু ঠিক করে দেয় তবে সম্ভবত সাবমোডিয়াল এ 1 কিছু ক্ষেত্রে আর কাজ করবে না। এই বাগগুলি QA এর সময় পাওয়া যায় না (বেশিরভাগ)। এটাই সময়ের অপচয়। ইউনিট-পরীক্ষা লেখার: (সম্ভবত) 1 ঘন্টা। গ্রাহকের কাছ থেকে বাগ রিপোর্ট পাওয়া, বিশ্লেষণ, পরিকল্পনা, ফিক্সিং, কোড পর্যালোচনা, বিল্ডিং, হটফিক্স বিতরণ ইত্যাদি etc 6-8 ঘন্টা h
লুকারবেলো

ছবির মূল্য 1000 শব্দ এবং সমস্ত। দেখানো এটি সংরক্ষণ সময় বলছে চেয়ে বেশি বিশ্বাসযোগ্য হয় এই সময় বাঁচাতে উচিত
R0MANARMY

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

10
আমার অভিজ্ঞতায় লেখার পরীক্ষাগুলি বিকাশের সময় হ্রাস করে না, কমপক্ষে সামনে নয়; এটি এটি বৃদ্ধি করে। এটি অবশ্য আরও নির্ভরযোগ্য, আরও ভাল নকশাযুক্ত, আরও সহজে বজায় রাখতে সক্ষম সফ্টওয়্যার তৈরি করে।
রবার্ট হার্ভে

@ রবার্ট হার্ভে: আপনারা ঠিক বলেছেন, "বিকাশ" আমার পক্ষে বাজে শব্দ পছন্দ নয়। আমি কোনও সফ্টওয়্যার ডিজাইন, বাস্তবায়ন, মুক্তি এবং রক্ষণাবেক্ষণের প্রক্রিয়া বর্ণনার আরও ভাল কিছু নিয়ে আসতে পারিনি । দীর্ঘমেয়াদে ইউটি, এই প্রক্রিয়াটি সংক্ষিপ্ত / সরল করুন এবং এটিই আমার মনে ছিল।
কিমি

28

প্রথমে আপনাকে জানতে হবে তারা পরীক্ষা কেন লিখছে না।

আঁট ডিভ শিডিয়ুলগুলি প্রায়শই কারণ হয়ে থাকে তবে আপনি বলেন যে আপনার কাছে তা নেই।

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

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

আরেকটি শক্তিশালী সম্ভাব্যতা হ'ল কারণ তারা ধারণাটিকে ঠোঁট পরিষেবা দিচ্ছেন তবুও তারা আরও কাজের জন্য কোনও মূল্য দেখছেন না।

আপনি কিভাবে বিভিন্ন কারণে পরিচালনা করবেন?

কারণগুলির একটি সহজ, এটি কীভাবে উন্নয়নের সময় বাঁচায় তার একটি উদাহরণ দেখান।

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

কারণ 3 কেবল প্রশিক্ষণ নয়, প্রদর্শন করা হচ্ছে। তাদের প্রশিক্ষণ ক্লাসে পরীক্ষা লিখতে বাধ্য করুন।

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

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

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


9

আমি টিডিডির সুবিধা প্রদর্শন করে শুরু করব by ইউনিট পরীক্ষার সুবিধাগুলি প্রদর্শনের চেষ্টা করুন।

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

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

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

আরও পড়ার জন্য ভাল রেফারেন্স:


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

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

7

http://blog.jtimothyking.com/2006/07/11/twelve-benefits-of-writing-unit-tests-first

আমি মনে করি কিছুক্ষণ আগে আমি জেফ অ্যাটউড নিবন্ধ থেকে সেই লিঙ্কটি বুকমার্ক করেছি [সম্পাদনা: হ্যাঁ, এটি এখানে] । পুরানো তবে প্রাসঙ্গিক। এই সুবিধাগুলি এবং অন্যদের কারণে যা নিঃসন্দেহে অন্যান্য উত্তরে বর্ণিত হবে, আপনার প্রোগ্রামারদের নিজেরাই অনুপ্রাণিত করতে সক্ষম হওয়া উচিত ! এটি তাদের আরও দক্ষতার সাথে কাজ করার অনুমতি দেয় এবং এভাবে তাদের কাজটি আরও সহজ করে তোলে। কে তা চায় না?

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


7

এটি উদাহরণস্বরূপ সীসা বড় মামলার মতো বলে মনে হচ্ছে ।

আপনি লড়াই করছেন মানব প্রকৃতির দুটি অন্তর্নিহিত দিক:

  • সৃজনশীল লোকেরা প্রক্রিয়া পছন্দ করে না।
  • বেশিরভাগ লোকেরা তাদের গুণমান সম্পর্কে বাইরের নেতিবাচক রায় পছন্দ করে না।

বক্তৃতা, পরিচালনা ঘোষণা, বা যুক্তি দিয়ে এটি লড়াই করা খুব কঠিন। মানব প্রকৃতির বিকল্প দিকটি গ্রহণ করে আপনাকে জিততে হবে।

  • লোকেরা সেরা কর্মীদের আচরণ অনুকরণ করে

সেরা কর্মীরা যদি টিডিডি ব্যবহার করেন এবং এটি কাজ করে, প্রক্রিয়াটি প্রসারিত হবে। যদি তারা না করে তবে তা হবে না। আপনার যদি কাউকে বোঝানোর দরকার হয় তবে এটি শীর্ষ 1 বা 2 জন কর্মচারী।


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

3

তাদেরকে জিজ্ঞেস করো.

আপনি বলছেন যে লোকদের বলা হয়েছে এবং তারা আরও পরীক্ষা লিখতে হবে বলে সম্মত হন। তারা কেন হয় না?

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


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

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

2

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

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

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

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

শেষ পর্যন্ত, তারা কীভাবে আত্মবিশ্বাসের সাথে সংশোধনকারী কোডটি সক্ষম করতে সক্ষম হবে তা তাদের দেখান।

যখন আপনি টেস্টগুলি লেখার মতো মনে করেন না তখন সেগুলি মনে রাখবেন। :)


1

আমি এইচএলজিইএম এর উত্তরের উপর বিশেষ করে এই বিভাগটি প্রসারিত করতে চাই :

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

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

পুরানো কোড যা পরীক্ষার কথা মাথায় রেখে লেখা হয়নি তা পরীক্ষার চেষ্টা করা হতাশার বাইরেও হতে পারে।


1

আমি কয়েকটি কৌশল ব্যবহার করেছি:

ক) একটি স্বয়ংক্রিয় বিল্ড সেট আপ করুন। কেউ যখন আপনি পরীক্ষা করে এমন কিছু ভেঙে দেয়, তখন পরীক্ষাগুলি এটি কীভাবে সনাক্ত করেছে এবং বাগটি কতটা খারাপ হয়েছে তা তাদের দেখান।

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

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


সি) আমার কেসের জন্য ভাল দেখাচ্ছে
নাকিলন

0

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


আপনার ইনপুট জন্য ধন্যবাদ। আপনি বলেছিলেন যে রাইটিং ইউনিট পরীক্ষাগুলি বিকাশকারীকে প্রয়োজনীয়তা ইত্যাদির বিষয়ে আরও কিছুটা চিন্তা করতে বাধ্য করে That এটি কখনও কখনও সত্যই সমস্যা is বৈশিষ্ট্য এ বাস্তবায়িত হয়েছে এবং কাজ করছে। কিউএ দেবকে বলে যে পরীক্ষার কেস এক্স কাজ করছে না কারণ তিনি সম্ভাব্য পার্শ্ব প্রতিক্রিয়ার কথা ভাবেননি। আমরা আমাদের ইউনিট-পরীক্ষা প্রয়োগের জন্য ক্রমাগত সংহতকরণ ব্যবহার করছি। কেউ যদি কিছু পরীক্ষা করে থাকে তবে সমস্ত পরীক্ষা চালানো হয় So সুতরাং আমরা কিউএ / গ্রাহকদের কাছে শিপিংয়ের আগে সম্ভাব্য পার্শ্ব প্রতিক্রিয়াগুলি ধরব।
লুকারবেলো

1
ইউনিট টেস্টিং একীকরণ পরীক্ষার চেয়ে পৃথক different আমি বিশ্বাস করি যে বিকাশকারী ইন্টিগ্রেশন টেস্টিংয়ের জন্যও দায়বদ্ধ এবং কিউএর ভূমিকা হ'ল এটি নিশ্চিত করা হবে যে সবকিছু ঠিকঠাক হয়েছে (যাচাইয়ের যে পরিমাণ তারা সম্পাদন করতে পারে)। অবশ্যই সংস্করণগুলির মধ্যে সমস্যাগুলি, নিখোঁজ টুকরো টুকরো সমস্যা, সার্ভারগুলিতে কোড বিতরণ ইত্যাদির সমস্যা হতে পারে যা তাড়াতাড়ি ধরা পড়তে পারে না তবে এগুলির প্রয়োজনীয়তা বা ইউনিট পরীক্ষার সাথে কোনও সম্পর্ক নেই।
NoChance
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.