আমি কীভাবে এমন পরিবেশ তৈরি করব যেখানে ফিক্সিং টেস্টগুলিকে অগ্রাধিকার হিসাবে দেখা হয়?


22

আমি একটি মাঝারি আকারের সংস্থায় একটি সফটওয়্যার ইঞ্জিনিয়ার। আমাদের টিমসিটিতে চলছে মোটামুটি শক্তিশালী পরীক্ষার প্ল্যাটফর্ম। এটি প্রতিটি চেকিনে ইউনিট পরীক্ষা করে এবং একটি দৈনিক ইউনিট পরীক্ষা / বিভিটি চালায়।

সমস্যাটি হ'ল - আমাদের ভাঙা ইউনিট পরীক্ষার একটি দুর্দান্ত কাজ রয়েছে।

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

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

আমি ঘুষ (বেকড পণ্য!) চেষ্টা করেছি, কেবল সরল জিজ্ঞাসা করেছি এবং দলের নেতৃত্বের সাথে কথা বলছি। প্রত্যেকেই বলেছে এটি একটি ভাল ধারণা, তবে আমি একমাত্র এটি সম্পর্কে কিছু করতে দেখছি।

অন্যদের পরীক্ষা ঠিক করতে উত্সাহিত করার এবং তাদের স্প্রিন্টের মধ্যে পরীক্ষা ফিক্সিংকে অগ্রাধিকার দেওয়ার সর্বোত্তম উপায় কী?

এটি জিজ্ঞাসার জন্য যদি আরও কম বিষয়গত উপায় থাকে তবে আমি কোনও পরামর্শ মেনে খুশি হব।


2
লোকটি বিল্ডটি ভেঙে দেওয়ার উদ্দেশ্যে অটোমেটিক এনআরপি বন্দুক ...
র‌্যাচেট ফ্রিক

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

7
ইউনিট পরীক্ষাগুলি ভেঙে বোঝা উচিত বিল্ডটি ভেঙে দেওয়া। ;)
জেরোইন ভেনেভেল

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

2
যদি ডোনাট ব্যর্থ হয় তবে আপনি টোস্ট। :-)
রস প্যাটারসন

উত্তর:


28

এটি তৈরি করুন যাতে পরীক্ষাগুলি ঠিক না করে আসলে কোনও কিছুই প্রকাশ করা অসম্ভব।

  1. কোনও পরীক্ষা ব্যর্থ হলে বিল্ডটি ব্যর্থ করুন।
  2. কোনও পরীক্ষা উপেক্ষা করা গেলে বিল্ডটি ব্যর্থ করুন।
  3. পরীক্ষার কভারেজ একটি নির্দিষ্ট স্তরের নীচে চলে গেলে বিল্ডটি ব্যর্থ করুন (যাতে লোকেরা কেবল এটির চারপাশে কাজ করার জন্য পরীক্ষাগুলি মুছতে পারে না)।
  4. আপনার রিলিজ বিল্ডগুলি করতে সিআই সার্ভারটি ব্যবহার করুন এবং কেবলমাত্র সার্ভারের বিল্ড ড্রপ থেকে বিল্ডগুলি ইউএটি / স্টেজিং / প্রোডাকশন / যাই হোক না কেন প্রচার করুন।

বিষয়টির সত্যতা হ'ল, যদি আপনার বিল্ডটি একবারে প্রায় 15 মিনিটেরও বেশি সময়ের জন্য ভেঙে যায় (এবং এতে ব্যর্থ পরীক্ষাগুলি অন্তর্ভুক্ত থাকে) তবে আপনি অবিচ্ছিন্ন একীকরণ করছেন না

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

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

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

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


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

@ ইউজার 40989: আমি আপনাকে শুনছি। সংস্কৃতি হ'ল এমন কিছু যা আপনার চাষাবাদ করতে হবে। যদি আপনি চান যে লোকেরা কীভাবে গুরুত্বপূর্ণ পরীক্ষাগুলি বুঝতে পারে তবে আপনাকে মাঝে মাঝে এটি তৈরি করতে হবে যাতে লোকেরা এটিকে উপেক্ষা করতে না পারে। লোকেরা একবার উচ্চ স্তরের কোড কভারেজ এবং সবুজ পরীক্ষায় অভ্যস্ত হয়ে গেলে তারা আর ফিরে যেতে চাইবে না এবং তারপরে আপনার নিজস্ব বিকাশকারীরা এটি নতুন নিয়োগকারীদের জন্য প্রয়োগ করবে। আচ্ছা, আশা করি। একটি পায়ুপথ-প্রতিরোধমূলক দলের নেতৃত্ব এবং / অথবা বিল্ডিং মাস্টার এবং / অথবা ম্যানেজার সহায়তা করে। :)
অ্যারোনআউট

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

10

ইউনিট পরীক্ষাগুলি যে ব্যর্থ হয় তা সমস্যা নয়। এগুলি একটি লক্ষণ

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

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

কোন সহজ উত্তর নেই।


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