ভাঙা পুরাতন / উত্তরাধিকার ইউনিট পরীক্ষা


13

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

আমার লক্ষ্যটি 100% পরীক্ষায় উত্তীর্ণ হওয়ায় আমরা ইউনিট পরীক্ষায় ব্যর্থতাগুলি ভেঙে ফেলতে পারি, তবে আমি ভাঙ্গা পরীক্ষাগুলি না জানিয়ে আমি এটি করতে পারব না। আমার খুব অল্প বাজেট রয়েছে কারণ রক্ষণাবেক্ষণ বাজেট মূলত সহায়তার জন্য, তবে আমার দলটি কম ঝুলন্ত ফল পরীক্ষাগুলি (বেশিরভাগ কনফিগার / স্থানীয় সংস্থার সমস্যাগুলি) চিহ্নিত করেছে এবং ঠিক করেছে এবং আমরা 30-40 টি সত্যই কুৎসিত পরীক্ষায় নেমে এসেছি।

সেরা অনুশীলন সম্পর্কে কিছু মতামত কি? আমি মনে করি না যে পরীক্ষাগুলি মূল্যবান, তবে আমি জানি না তারা কী পরীক্ষা করছে বা কেন খনন না করে তারা কাজ করে না, যার জন্য আমাদের সময় এবং অর্থ লাগে না probably

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

সেরা পদ্ধতির কি হবে?

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


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

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

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

1
আপনি ইতিমধ্যে আপনার সমাধানটি খুঁজে পেয়েছেন বলে মনে হচ্ছে।
ডক ব্রাউন

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

উত্তর:


17

আমি যা করব তা হ'ল প্রথমে সেই পরীক্ষাগুলি অক্ষম করে যা ব্যর্থ হয় এবং সর্বদা ব্যর্থ হয়।

এটি একটি পরীক্ষায় ব্যর্থ হওয়া বিষয়গুলি করুন।

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

কার্যকারিতা কী পরীক্ষা করা হচ্ছে তা আপনি একবার নির্ধারণ করতে পারবেন:

  • আমরা কি এটি পরীক্ষা করা সম্পর্কে যত্নশীল?
  • এটি পরীক্ষা করা কতটা গুরুত্বপূর্ণ

এবং তারপরে একটি অগ্রাধিকারের তালিকা তৈরি করুন।

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


1
আমি সামনের দিকে পরীক্ষাগুলি অক্ষম করার ধারণাটি পছন্দ করি তবে একটি রক্ষণশীল পরিবেশটি আরও ছোট বর্ধমান পদক্ষেপগুলি পছন্দ করতে পারে। আমি মনে করি এটি আপনার ফার্মের উপর নির্ভর করে?
অ্যারন হল

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

6

আমি নিম্নলিখিত করতে হবে:

  1. ব্যর্থ পরীক্ষাগুলি যাচাই করার চেষ্টা করছে ঠিক তা নির্ধারণের চেষ্টা করা।

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

  3. আপনার প্রোডাকশন কোডটিতে যা যা ভুল তা এখনই ঠিক করুন যে আপনার ভাল পরীক্ষা রয়েছে।

অ্যাকাউন্টিং মনে রাখবেন, কোডের প্রতিটি লাইনই দায়বদ্ধতা, তবে সম্পদ হিসাবে ভুলভাবে মূল্যবান হতে পারে। deleteকী আপনার দৃঢ় জন্য মান অনেক তৈরি করতে পারেন।


একটি দল-শৈলী triage ধারণা খুব সুন্দর!

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

বিবাহ হ'ল সীমিত সংস্থানগুলিতে রেশন দেওয়ার বিষয়ে যেখানে তারা সর্বাধিক মান তৈরি করবে। : এখানে triage এবং সফটওয়্যার বিষয় একটি প্রাসঙ্গিক ব্লগপোস্টের softwaretestingclub.com/profiles/blogs/...
হারুন হলের

5

200-300 ভাঙ্গা পরীক্ষা (সম্ভবত বছরের পর বছর ভাঙ্গা)।

সেকি! আমি একবার একই ধরণের পরিস্থিতির মুখোমুখি হয়েছি কিন্তু tests টি পরীক্ষার মতো ব্যর্থ হয়েছে যেখানে দলটি "সর্বদা ক্রাচ" মানসিকতার কারণে কয়েক মাস ব্যর্থ হয়েছিল এই বিষয়টি উপেক্ষা করে শুরু করে।

আমার লক্ষ্যটি 100% পরীক্ষায় উত্তীর্ণ হওয়ায় আমরা ইউনিট পরীক্ষায় ব্যর্থতাগুলি ভেঙে ফেলতে পারি, তবে আমি ভাঙ্গা পরীক্ষাগুলি না জানিয়ে আমি এটি করতে পারব না।

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

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

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

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

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

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


4

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

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

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


3

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

এই পরীক্ষাগুলি দূরে নিক্ষেপ করুন এবং পিছনে ফিরে তাকাবেন না। যদি তারা বছরের পর বছর ধরে ব্যর্থ হয় এবং এখনই তাদের সমাধান না করা হয় তবে তারা অগ্রাধিকার নয়।

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

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

প্রাসঙ্গিক নতুন পরীক্ষা তৈরি করুন এবং দুর্দান্ত কোড লেখার সাথে চালিয়ে যান।

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