কীভাবে বিপুল সংখ্যক ব্যর্থ পরীক্ষার মোকাবেলা করতে হবে? [বন্ধ]


22

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

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

আমরা কি করতে পারি? এত পরিমাণ উত্তরাধিকার পরীক্ষার সাথে কীভাবে এগিয়ে যাবেন?


6
বাস্তব প্রশ্নের উত্তর আছে। আপনার পরিস্থিতি কেন ভয়াবহ, বা আপনার বস / সহকর্মী আপনাকে কেন অসন্তুষ্ট করে তা বোঝানোর পরিবর্তে, আরও ভাল করার জন্য আপনি কী করতে চান তা ব্যাখ্যা করুন। আরও তথ্যের জন্য, এখানে ক্লিক করুন ...
gnat

13
আপনি কেন পরীক্ষাগুলি প্রথম স্থানে ব্যর্থ হতে শুরু করলেন? বিটিডাব্লু 4000 10 এমএলকি
for

6
ড্রপ এবং রোল বন্ধ.
নবীন

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

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

উত্তর:


37

তাদের ত্যাগ করুন।

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

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

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


9
আমি আপনার বক্তব্যটিতে যুক্তি দেখতে পাচ্ছি না: "একটি পরীক্ষা স্যুইট আপনাকে আত্মবিশ্বাস দেবে বলে মনে করা হচ্ছে যে সিস্টেমটি যা করার কথা বলেছিল তা করে। [...] এখন আপনার যা দরকার তা পরীক্ষাগুলির একটি নতুন স্যুট যা কোনও চালানো ছাড়াই চলে is ত্রুটি। " আপনার যদি ত্রুটিযুক্ত কোড থাকে যা পরীক্ষাগুলি ব্যর্থ করে তোলে তার অর্থ এই নয় যে আপনার পরীক্ষাটি আবার লিখতে হবে যাতে ত্রুটিযুক্ত কোডটি পাস হয়।
ডিবেডেনকো

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

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

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

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

29

যান এবং পরীক্ষা ঠিক করুন।

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


পরীক্ষার ব্যর্থতার যাচাইকরণ - এটি যদি পণ্য বা পরীক্ষায় সমস্যা হয় তবে কয়েক মাস সময় লাগে। আমরা পুরানো পরীক্ষাগুলি অপসারণ করতে পারি না কারণ তারা জানত না যে তারা কী পরীক্ষা করছে!

দেখে মনে হচ্ছে আপনার সংস্থায় আরও বড় সমস্যা রয়েছে, যেহেতু আপনি পরিষ্কার প্রয়োজনের সাথে কাজ করছেন না। আমি বুঝতে পারি না যে আপনি (বা অন্য কেউ) সঠিক আচরণের নিশ্চয়তা দিতে পারবেন না।


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

@ শাউটিহ ডাব্লুটিএফ পরীক্ষাগুলি ডাব্লুটিএফ কোড ব্যতীত যায় না, সুতরাং পরীক্ষার ফিক্সিংয়ের অর্থ সাধারণত কোডটি রিফ্যাক্টর করা হয়। এবং এলোমেলোভাবে পরীক্ষায় ব্যর্থ হওয়া পরীক্ষা-নিরীক্ষার অক্ষমতা sign এবং আপনার কলেজের তত্ত্বাবধায়ক তাদের কাজ না করার জন্য দায়বদ্ধ।
BЈовић

2
কখনও কখনও জীবন কঠোর হয়: ডাব্লুটিএফ পরীক্ষার জন্য দায়ী ব্যক্তি (এবং কোড) দলে সর্বাধিক বেতন অর্জন করেছিল (আমার চেয়ে ২০ +% বেশি), এবং যখন তিনি প্রকল্পের মাঝামাঝি থেকে চাকরি ছেড়েছিলেন (কারণ তিনি উচ্চ বেতনের চাকরি খুঁজে পেয়েছিলেন) ) আমি তার কিছু
দেবকে গ্রাহ্য

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

@ বিটা কখনও কখনও টিডিডিতে ব্যবহৃত সংজ্ঞাটির সাথে বেশ অনুরূপ বলে মনে হয়: "একটি বাগ একটি পরীক্ষা যা আপনি এখনও লেখেন নি" "
মনিকা পুনরায়

22

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

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

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

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

অস্থায়ীভাবে ব্যর্থ পরীক্ষাগুলি অক্ষম করুন।

আপনার পরিবেশের উপর নির্ভর করে আপনি এটি করতে পারেন এমন বেশ কয়েকটি উপায় রয়েছে যা আপনি স্পষ্টভাবে বর্ণনা করেন না তাই আমি কোনও নির্দিষ্টের প্রস্তাব দিতে পারি না।

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

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

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

আপনি পরীক্ষাগুলি এমন উত্স ট্রিতে স্থানান্তর করতে পারেন যা সাধারণত বিল্ডটিতে অন্তর্ভুক্ত থাকে না।

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

লক্ষ্যটি হ'ল জেনকিন্সকে যত তাড়াতাড়ি সম্ভব সবুজতে যেতে দেওয়া, আপনি যত তাড়াতাড়ি সম্ভব সঠিক দিকে যাত্রা শুরু করতে পারেন।

পরীক্ষাগুলি প্রাসঙ্গিক রাখুন।

কোড যুক্ত করার সাথে সাথে সংশোধন করার সাথে সাথে নতুন টেস্ট যুক্ত করার সমাধান করুন এবং সমস্ত উত্তীর্ণ পরীক্ষাগুলি পাস করার প্রতিশ্রুতিবদ্ধ।

পরীক্ষাগুলি বিভিন্ন কারণে ব্যর্থ হতে পারে, এগুলি সহ যে তারা শুরুতে ভাল লিখিত পরীক্ষাগুলি ছিল না including তবে একবার আপনি জেনকিন্সকে সবুজ করে তুললে, সেভাবে রাখা সত্যিই গুরুত্বপূর্ণ।

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

প্রতিটি পরীক্ষার জন্য অভিপ্রায় নির্ধারণ করুন।

একের পর এক প্রতিবন্ধী পরীক্ষাগুলির মধ্য দিয়ে যান। আপনি সবচেয়ে ঘন ঘন পরিবর্তিত মডিউলগুলি প্রভাবিত করে তাদের সাথে শুরু করুন। পরীক্ষার অভিপ্রায় এবং ব্যর্থতার কারণ নির্ধারণ করুন।

  • এটি কি এমন কোনও বৈশিষ্ট্য পরীক্ষা করে যা উদ্দেশ্য ভিত্তিতে কোড বেস থেকে সরানো হয়েছিল? তাহলে আপনি সম্ভবত এটি মুছতে পারেন।

  • এটি কি কোনও বাগটি ধরছে যা এখনও কেউ লক্ষ্য করেনি? পরীক্ষাটি পুনরায় ইনস্টল করুন এবং বাগটি ঠিক করুন।

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

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

  • অ্যাপটির আর্কিটেকচারটি কি স্বীকৃতির বাইরে পরিবর্তিত হয়েছে, সুতরাং পরীক্ষার ফলে আর কোনও কার্যকর হয় না? মুছে ফেল.

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

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


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

এটি সমস্যার স্কেলের উপর নির্ভর করে। তবে আমি একমত, আমি আসলে তা পরিষ্কার করে দেখিনি।
বিল মিশেল

"আমরা সবুজ তবে প্রতিটি পরিবর্তনের ফলে জিনিসগুলি লাল হয়ে যায়" এবং "আমরা এতক্ষণ লাল হয়ে গেছি, সবুজ দেখতে কেমন তা ভুলে গেছি"
বিল মাইকেল

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

11

4000 পরীক্ষা একটি জটিল সমস্যা। 40 টি পরীক্ষা আরও ট্র্যাকটেবল। চালনা এবং বিশ্লেষণের জন্য এলোমেলোভাবে পরীক্ষার একটি পরিচালনাযোগ্য সংখ্যা নির্বাচন করুন। ফলাফলগুলি শ্রেণীবদ্ধ করুন:

  1. অকেজো পরীক্ষা
  2. দরকারী পরীক্ষা যা পরিষ্কার চালায়
  3. কার্যকর পরীক্ষা যা ব্যর্থ হয়

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

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


2
+ + (int-) (pi / 3) এর প্রকৃত ও সহজ উপায় প্রদানের জন্য পরীক্ষা পরীক্ষা স্যুট - যখন আমি সম্মত হন যে একটি চলতি নিয়ম হিসাবে, যেমন পরীক্ষা যেমন ওপি দ্বারা বর্ণিত একটি ত্রুটিপূর্ণ নকশা চিহ্ন হয় - কিন্তু ছাড়া পরীক্ষামূলক কী ভুল, পরীক্ষার স্যুট সম্পর্কে নিজেই যে কোনও পরামর্শ দেওয়া (এটি "তাদের ছেড়ে দিন", "পরীক্ষা ঠিক করুন", "নতুন পরীক্ষা লিখুন") কেবল সাধারণ অকেজো। ঠিক যেমনটি আপনি বলেছেন: আমি যদি 4 কে পরীক্ষা করে নিই এবং 40/3 এর মধ্যে সম্পূর্ণরূপে এলোমেলো 3/4 ক্রেপী এবং অকেজো - আমি পুরো স্যুটটি ডাম্প করার জন্য হিস্টিটিং করব না। যদি এর 3/4 প্রকৃতপক্ষে উপযোগী হত - আমি ছেড়ে যাব এবং কোডটি উন্নত করতে ফোকাস করব।
ভ্যাক্সকুইস

7

যদি এই বক্তব্যটি সত্য হয়,

পরীক্ষাগুলি ... প্রতিটি বড় কোড পরিবর্তনের সাথে পাগলের মতো ব্যর্থ হচ্ছে।

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

আপনার সর্বশেষতম কোড বেস না হওয়া পর্যন্ত পুনরাবৃত্তি করুন।

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

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

3

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

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

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


1
এই কারণেই আমি JUnit এর @Ignoreটীকাটি পছন্দ করি - আপনি নিজের পরীক্ষা রাখতে পারেন, তবে তা কার্যকর করতে পারেন না। তারপরে এগুলি কেবল তাদের পুনরায় সক্ষম করার এবং একবারে তাদের ঠিক করার বিষয়। এটি আপনাকে হাজার হাজার ব্যর্থতার কারণে অভিভূত না হয়ে একবারে কেবলমাত্র কয়েকটি মুখ্য পরীক্ষায় আপনার ফোকাসকে সঙ্কুচিত করতে দেয়।
টিএমএন

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

2

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

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

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

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


-3

আমরা পুরানো পরীক্ষাগুলি অপসারণ করতে পারি না কারণ তারা জানত না যে তারা কী পরীক্ষা করছে!

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


2
এই নিছক পুনরাবৃত্তি বিন্দু ইতিমধ্যে প্রণীত বলে মনে হয় এবং ব্যাখ্যা শীর্ষ উত্তর
মশা

4
ব্যর্থতা "অর্থহীন" নয়, এর অর্থ আপনি সিস্টেমটি যেমন বুঝতে পারছেন না ঠিক তেমন ভেবেছিলেন যা আপনি করেছেন।
বেন ভয়েগট

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