পরীক্ষার্থীদের সন্ধানের জন্য কোডে ইচ্ছাকৃত বাগ ছেড়ে দেওয়া


267

আমরা আমাদের ফার্মে এটি করি না, তবে আমার এক বন্ধু বলেছে যে তার প্রকল্প পরিচালক ম্যানেজার প্রতিটি বিকাশকারীকে পণ্য QA যাওয়ার ঠিক আগে ইচ্ছাকৃত বাগগুলি যুক্ত করতে বলেছিল। এটা এভাবে কাজ করে:

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

ঠিক আছে, এভাবেই চলে। তারা বলে যে এই পদ্ধতির নিম্নলিখিত সুবিধা রয়েছে।

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

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

কিছু স্পষ্টতা:

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

59
"একটি পরীক্ষা বিকাশকারীর মতো ভাবা উচিত" ... আকর্ষণীয়। আমি ভেবে দেখেছি এটা স্পষ্ট যে একজন পরীক্ষককে বিকাশকারীর মতো নয় বরং ব্যবহারকারীর মতো ভাবা উচিত।
ট্রিলারিয়ন

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

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

7
"আমরা আমাদের ফার্মে এটি করি না, তবে আমার এক বন্ধু বলেছে যে তার সিটিও প্রতিটি বৈশিষ্ট্য বিকাশ চক্রের শুরুতে প্রতিটি পণ্য পরিচালককে অতিরিক্ত বৈশিষ্ট্য যুক্ত করতে বলেছিল ..."
মার্কো

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

উত্তর:


462

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

  • এই QA কঠোর পরিশ্রম করবে না যতক্ষণ না তারা জানেন যে তারা প্রতিদিন পরীক্ষা করা হচ্ছে (যা মনোবলের পক্ষে ভাল হতে পারে না)

  • QA- এর সন্ধানের জন্য সফ্টওয়্যারটিতে অজান্তেই প্রবর্তিত ত্রুটি নেই

  • এই কিউএর কাজটি বাগগুলি খুঁজে পাওয়া - এটি নয়; এটি সফ্টওয়্যারটি উত্পাদন মানের কিনা তা নিশ্চিত করা

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

এটি একটি ভয়ানক ধারণা এবং প্রজেক্ট ম্যানেজারটি হ'ল একটি হতাশ / বোকা যারা মানুষ এবং অনুপ্রেরণা সম্পর্কে কিছুই বুঝতে পারেন না। এবং এটি ব্যবসায়ের পক্ষে খারাপ।


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


17
এই কিউএর কাজটি বাগগুলি খুঁজে পাওয়া - এটি নয়; এটি সফ্টওয়্যারটির উত্পাদনমান নিশ্চিত করার জন্য এটির কিছুটা ব্যাখ্যা দরকার requires প্রডাক্ট কোয়ালিটি সফ্টওয়্যার শিপিংয়ের বাগ পৃথকীকরণ এবং ফিক্সিং একটি গুরুত্বপূর্ণ প্রক্রিয়া।
কৃষ্ণভদ্র 11

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

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

42
আমি আরেকটি বিষয় যুক্ত করব: ইচ্ছাকৃত বাগটি সত্যিকারেরটিকে লুকিয়ে রাখতে পারে যদি ইচ্ছাকৃত বাগটি প্রক্রিয়াটি না থামায় (উদাহরণস্বরূপ একটি ব্যতিক্রম ছুঁড়ে দিয়ে) আগে।
nkoniishvt

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

209

ভাল, আমি যা শিখেছি তার উপর ভিত্তি করে:

  1. এটি স্কুল বা চাকরীর সাক্ষাত্কার নয়;
  2. পরীক্ষকরা শিশু নন;
  3. এটি কোনও খেলা নয়;
  4. এটি কোম্পানির অর্থ অপচয় করে।

কিউএ কেবল ত্রুটিগুলি খুঁজে বের করার জন্যই নয় তবে সিস্টেমটি কতটা স্বজ্ঞাত , ব্যবহারকারীটির জন্য ব্যবহারযোগ্যতা এবং সাধারণভাবে অ্যাক্সেসযোগ্যতার জন্য শেখার বক্রতা কী তা নিয়েও চিন্তিত । উদাহরণস্বরূপ: "সিস্টেমটি কি কুরুচিপূর্ণ ?", "ব্যবহারকারীর রঙ অন্ধ এবং স্টাফ কি লাল এবং সবুজ?" তাদেরও অভিযোগ করা উচিত।

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

TL; ড

এটি কেবল বাগ নয়, পরীক্ষকদের এই সংকীর্ণ দৃষ্টিকোণ থেকে বাড়তে হবে।


26
+1 সমস্ত 4 পয়েন্টের সাথে দৃ agree়ভাবে একমত, বিশেষত প্রথমটি। প্রতিযোগিতামূলক পদ্ধতির যে অনেক নতুন দেবগণ প্রায়শই তাদের 15 বছরের বিদ্যালয়ের প্রতিফলন দেখায় - একটি অত্যন্ত প্রতিযোগিতামূলক পরিবেশ - কর্মক্ষেত্রের বিপরীতে যেখানে সহযোগিতা আরও ভাল পদ্ধতির হতে পারে।
মাইকেল ডুরান্ট

1
উপরের উত্তরের এই উত্তরটি অনেক বেশি পছন্দ করে।
ফারাপ

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

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

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

100

খারাপ ধারণা।

পরীক্ষকের দৃষ্টিকোণ থেকে: "সুতরাং তারা কঠোর পরীক্ষা করবে, কারণ তারা জানে যে বাগ উপস্থিত রয়েছে এবং তাদের খুঁজে না পাওয়া তাদের অযোগ্যতা হিসাবে বিবেচনা করা যেতে পারে।" মূলত ডেভসরা কোডটি বুবি-ট্র্যাপ করছে। খুব কম লোকই এমন কাজ করা পছন্দ করেন যা শেষ পর্যন্ত অর্থহীন (কারণ বাগগুলি আগে থেকেই জানা ছিল) তবে তারা কীভাবে অনুধাবন করে তা প্রভাবিত করে। বুবি-ফাঁদগুলি খুঁজে না পাওয়ার জন্য যদি শাস্তিযোগ্য শাস্তি হয় তবে আরও অনেক কিছু। এবং আপনি কি জানেন যে পরীক্ষাগুলি বাগগুলি সন্ধানে সাফল্য লাভ করে? এটি বিষাক্ত মুখোমুখি পরিবেশের মতো শোনাচ্ছে; একটি QA খুশি হওয়া উচিত যদি তারা কোডটি পরীক্ষা করে দেখছে যে উচ্চমানের। তবুও যদি বাগের মাধ্যমে তাদের অর্থ প্রদান করা হয় ... http://thedailywtf.com/articles/The-Defect-Black-Market

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


32
যদি তারা প্রতি বাগের জন্য অর্থ প্রদান করে তবে এটি
BЈовић

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

প্রথম যে বিষয়টি আমার মনে ঝাঁপিয়ে পড়েছিল তা হচ্ছিল ওয়ালি আজ বিকেলে অন্য কাউকে মিনিওয়ান কোড করতে চলেছে
ড্যান নীলি

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

58

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

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

  1. প্রথম বিবৃতিটির উপর ভিত্তি করে, আপনি কখনই এই দুটি পাসে আপনার অভিযুক্ত উত্পাদন কোডটি পরীক্ষা করেন না

  2. আমি কল্পনা করব যে কোনও গ্রাহকের পরিবর্তনের জন্য ছুটে যাওয়ার চেষ্টা করার সময় আপনি প্রকাশিত প্রোডাকশন কোডটিতে দুর্ঘটনাক্রমে একটি 'ইচ্ছাকৃত' বাগ অন্তর্ভুক্ত করার সম্ভাবনাটি ব্যাপকভাবে বৃদ্ধি করবেন। কোনও সময়ে কয়েকটি লাল গাল সৃষ্টি করতে পারে।

  3. আমি কল্পনা করব যে এটি কেবলমাত্র আপনার পরীক্ষকদের আপনার বিকাশকারীদের মতো চিন্তা করতে প্রশিক্ষণ দেয় (যেমন টম এখানে কীভাবে একটি বাগ যুক্ত করবেন) যা সম্ভবত টম সম্পর্কে চিন্তা করেনি এমন বাগগুলি খুঁজে পাওয়ার সম্ভাবনা তাদের কম করে তোলে।


43
আপনার জন্য +1 কখনই এই দুটি পাসে আপনার অভিযুক্ত উত্পাদন কোডটি পরীক্ষা করে না। আপনি এমনকি প্রোডাকশন কোডটি পরীক্ষা না করে ছাড়ার বিষয়ে কীভাবে ভাবতে পারেন তা আমার বাইরে; যদি আপনি উদ্দেশ্যমূলক বাগগুলি ছাড়াই আবার পরীক্ষা করে নিচ্ছেন তবে আপনি আপনার প্রচেষ্টাটি পুনরাবৃত্তি করছেন এবং প্রাথমিক প্রচেষ্টাটি নষ্ট করছেন।
adamdc78

51

সম্পাদন করা

আমি পরিষ্কার হতে চাই যে এই উত্তরটি কেবল আপনার QA প্রক্রিয়াটি পরীক্ষা করার ধারণা সম্পর্কেই কথা বলছে, এবং আমি প্রশ্নের বর্ণনায় নির্দিষ্ট পদ্ধতিটির প্রতিরক্ষা করছি না।

সম্পাদনা শেষ করুন

আপনার পরীক্ষা / চেকিংটি আসলে কাজ করছে কিনা তা যাচাই করার একটি বৈধ কারণ রয়েছে। আমি আপনাকে উত্পাদন থেকে একটি উদাহরণ দিতে পারি, তবে নীতিটি একই।

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

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

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

একইভাবে অনেকগুলি উপায়ে একটি QA বিভাগ ব্যর্থ হতে পারে। সম্ভবত স্বয়ংক্রিয় পরীক্ষাগুলি চালিত হয়নি এবং রিপোর্টটি পরীক্ষার তথ্যের একটি পুরানো অনুলিপিটির দিকে তাকাচ্ছে। সম্ভবত কেউ তাদের কাজ সঠিকভাবে করছেন না। কিউএ বিভাগ পরীক্ষা করা যুক্তিসঙ্গত কাজ।

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


1
মন্তব্যগুলি বর্ধিত আলোচনার জন্য নয়; এই কথোপকথন চ্যাটে সরানো হয়েছে ।
ইয়ানিস

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

3
সুতরাং বর্ণিত পদ্ধতির স্থায়ী প্রক্রিয়া হিসাবে নয়, মাঝে মাঝে QA পরীক্ষার জন্য ব্যবহার করা যেতে পারে ।
জের্লো

30

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

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

সিরিয়াসলি। এমনকি যদি প্রধানমন্ত্রীর প্যারানিয়া এই নির্দিষ্ট ক্ষেত্রে সুপ্রতিষ্ঠিত হতে দেখা যায়, তবে এটি এমন কোনও ব্যক্তি নয় যার কোনও ব্যবসায়ের পরিচালন পরীক্ষক রয়েছে has


28

ব্যক্তিগতভাবে, আমি এই পদ্ধতির সাথে অস্বস্তি বোধ করি।

যে বিষয়টি আমাকে উদ্বেগ দেয় তা হ'ল ইচ্ছাকৃত বাগগুলি tingোকানোর কার্যকারিতা । এটি অনুমানযোগ্য যে কোনও উপায়ে করা আমার পক্ষে কঠিন বলে মনে হয়।

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

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

সুতরাং, সামগ্রিকভাবে, বিশ্বাসী না।

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


1
আমি মতামত লুপ পাওয়ার ধারণা পছন্দ করি!
jxramos

23

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

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

QA পাওয়া প্রকৃত বাগের সংখ্যা গণনা করে আপনি এটি আরও প্রসারিত করতে পারেন এবং জাল বাগ অনুপাত প্রয়োগ করতে পারেন। আমাদের উদাহরণস্বরূপ, যদি QA 200 রিয়েল বাগ খুঁজে পেয়েছে তবে আপনি সিদ্ধান্তে পৌঁছাতে পারেন যে তারা কেবলমাত্র এর 60% পেয়েছেন, সুতরাং 133 টি রয়ে গেছে।

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

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

এটি একটি মেট্রিক , এবং পরিচালন অনুপ্রেরণামূলক সরঞ্জাম হিসাবে হাইজ্যাক করা উচিত নয়।


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

1
এসকিউএল ইঞ্জেকশন এটির জন্য ভাল কারণ আপনি এলোমেলোভাবে "ব্রেক" করতে এন এসকিএল স্টেটমেন্ট বেছে নিতে পারেন
ইয়ান

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

20

খারাপ ধারণা।

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

এই ধরণের চিন্তাভাবনা কিউইগুলির সাথে একত্রিত হয় কেবল ম্যানুয়াল পরীক্ষক এবং পরীক্ষার অধীনে প্রকৃত কোড বুঝতে অনুপ্রাণিত হয় না।

আমি একজন প্রবীণ কিউ এবং আমি বেশিরভাগ সংস্থায় কাজ করেছি এটি একটি পরিচিত সমস্যা।


7
আমার স্ত্রী 8 বছর কিউএ করেছিলেন, এবং কেবল দেবের উদ্দেশ্যে রওয়ানা হয়েছিল - মূলত এই জাতীয় বিশ্বাসের কারণে। এটি কেবল পরীক্ষকের অপমানজনক।
ব্রায়ান বোয়েচার

19

আমি খারাপ ধারণা বলব।

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

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

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

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


"টু" তে অনুমান সম্পর্কে সেই বিষয়টি একটি দুর্দান্ত উপমা।
কিরেলেসা

14

আমি সত্যিই এটি একটি খারাপ ধারণা মনে করি না । এখানে আরও অনেক কিছুই রয়েছে যা আমি আরও ভাল কাজ অনুমান করতে পারি:

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

  2. একাধিক কিউএ দল রয়েছে, যা প্রতিযোগিতা করতে পারে। আপনার অবশ্যই একটি বুদ্ধিমান মেট্রিক অনুসন্ধান করা দরকার। অবশ্যই ইস্যু সংখ্যা নয়। প্রস্তাবিত বর্ধনের ত্রুটি বা ব্যবসায়িক মান (স্টেকহোল্ডারদের দ্বারা নির্ধারিত) এর তীব্রতায় ফ্যাক্টরিংকে সহায়তা করা উচিত।

QA "যথেষ্ট ভাল" কিনা তা বলা শক্ত। QA এর "সদা উন্নতি" হওয়ার উপায়গুলি খুঁজে পেতে দীর্ঘমেয়াদে এটি আরও সহজ এবং সম্ভবত আরও ভাল।

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


5
আপনি যদি প্রথম বাক্যটি ছেড়ে দেন তবে আমি আপনাকে +1 করতাম কারণ সমস্ত কিছু ভাল :) :) এটি কেবল একটি ভয়ানক ধারণা, খারাপটি একটি ছোটোখাটো বিষয়। কিউএকে জবাবদিহি করার সহজতম উপায় হ'ল ক্ষেত্রের মধ্যে কী পরিমাণ বাগের সংখ্যা রয়েছে তার উপর নজর রাখা। প্রস্তাবিত পদ্ধতিটি এর সুবিধাগুলি বলে দাবি করে যে সমস্ত একাই এটি সম্পাদন করবে।
ডাঙ্ক

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

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

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

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

9

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

একে মিউটেশন টেস্টিং বলে । ধারণাটি হ'ল উত্স কোডে ছোট পরিবর্তনগুলি (যাকে মিউট্যান্ট বলা হয়) তৈরি করতে স্বয়ংক্রিয় করতে সফ্টওয়্যার ব্যবহার করা। পরিবর্তনগুলি বিভিন্ন আচরণ তৈরির জন্য ডিজাইন করা হয়েছে, উদাহরণস্বরূপ, আমরা পরিবর্তন করতে পারি

if x < 10:
    print "X is small!"

মধ্যে

# we flipped the inequality operator
if x > 10:
    print "X is small!"

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


7

আমি ধারণা পছন্দ। এটা কি জেনারেল প্যাটন বলেছিলেন, "আপনি যত শান্তিতে ঘাম পাচ্ছেন, আপনি যুদ্ধে রক্তপাত কম করবেন।"

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

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

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


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

1
"আসল" এর অনুলিপি বাগ-মুক্ত নাও হতে পারে এবং সংজ্ঞা ছাড়াই এটিও রয়েছে (কারণ কোডটি বাগ যুক্ত করার জন্য পরিবর্তন করা হয়েছিল)।
রজার রোল্যান্ড

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

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

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

7

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

ইতিবাচক ফলাফল - কিউএ টিম বাগগুলি খুঁজে পেতে আরও কঠোর পরিশ্রম করে। কে জানে, তারা এটিকে চ্যালেঞ্জ হিসাবে দেখবে। এটি একটি বন্ধুত্বপূর্ণ খেলা। বা তারা কেবল কারণেই তাদের দেখা হচ্ছে (হাথর্ন এফেক্ট?) Doing

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

কোনও প্রভাব - আমার কাছে এই শব্দটি কোনও পার্থক্য করে না, তবে কেন বিরক্ত করবেন? আপনি কেবল সময় নষ্ট এবং লোকজনকে বিরক্ত করার ঝুঁকি নিয়ে যান।

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


নিট-পিকি সমস্যার প্রতিবেদন হওয়ার কারণে এটির সাথে অবশ্যই একমত হন।
অ্যাডাম জনস

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

7

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

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

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

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


4
কোডগুলিতে বিকাশকারীদের "ইনজেকশন" দেওয়ার পরিবর্তে তাদের বাগগুলি কীভাবে শুরু হতে পারে এবং কীভাবে এই বাগগুলি ঘটতে পারে না বা সঠিকভাবে পরিচালনা করতে পারে না তা নিশ্চিত করার জন্য কোডটি সংশোধন করে কোডটি কীভাবে সংশোধন করতে পারত তা চিহ্নিত করার চেয়ে আরও ভাল সময় দেওয়া হবে সফটওয়্যার. একটি প্রকল্প বিকাশের লক্ষ্য কিউএ সিস্টেম পরীক্ষা করা নয়, এটি একটি ব্যবহারযোগ্য দৃ rob় এবং কার্যক্ষম সিস্টেম তৈরি করা যা এর ব্যবহারকারীরা যা করতে চায় তা করে does
ডাঙ্ক

4

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

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


2

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

সুতরাং আপনি যদি এটি সঠিকভাবে কাঠামো করেন তবে আপনি যে কৌশলটি প্রেরণ করতে চলেছেন তাতে কতগুলি ভিত্তিহীন বাগ রয়ে গেছে তা অনুমান করার জন্য আপনি এই কৌশলটি ব্যবহার করতে পারেন। সুতরাং কল্পনা করুন যে আপনি কৃত্রিমভাবে আপনার পরীক্ষা বিল্ডে 100 টি বাগ তৈরি করেছেন এবং পরীক্ষকরা সেগুলি 50 পেয়েছেন। তারপরে আপনি অনুমান করতে পারেন যে একটি নির্দিষ্ট সম্ভাবনা রয়েছে যে তারা যদি 50 টি বিবিবিযুক্ত বাগও পেয়ে থাকে তবে সম্ভবত 50 টি বাকী রয়েছে।

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

তবুও - জ্ঞান শক্তি, এবং এই কৌশলটি ছাড়াই আপনার কোড বেসের গুণমান সম্পর্কে আপনার ধারণা কম। আপনি যদি শ্রদ্ধার সাথে এবং সঠিক কারণে এটি বাস্তবায়ন করতে পারেন তবে আমি বলব "কেন নয়?"


2

একটি জিনিস এখনও অন্য কেউ উল্লেখ করেনি: মিউটেশন পরীক্ষা

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

যদি সমস্ত পরীক্ষা পাস হয় তবে দুটি সম্ভাবনা রয়েছে:

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

মনে রাখবেন যে, আপনার প্রস্তাবের বিপরীতে, আমি উপরে বর্ণিত সমস্ত কিছুই স্বয়ংক্রিয় । আপনি হাতে হাত দিয়ে অর্থহীন বাগ tingোকানোর জন্য বিকাশকারীদের সময় নষ্ট করছেন না। এবং আপনি পরীক্ষাগুলির জ্ঞাত বাগগুলি খুঁজে পেতে সময় নষ্ট করছেন না। কেবলমাত্র আপনি যা ব্যবহার করছেন তা হ'ল মেশিন সময়, যা অনেক সস্তা। (মেশিনগুলি 20,000 বার একই পরীক্ষা করতে বিরক্ত হয় না a কিছুক্ষণ পরে মানুষ যত্ন নেওয়া বন্ধ করে দেয়!)

আমি পরামর্শ দেব যে স্বয়ংক্রিয় রূপান্তর পরীক্ষা আপনি যে ম্যানুয়াল দৃশ্যের কথা বলছেন তার তুলনায় অনেক দূরে, আরও ভাল পদ্ধতির।

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


1

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

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

এরপরে পরীক্ষাগুলি এখনও কাজ করে কিনা তা যাচাই করতে আপনি ইচ্ছাকৃতভাবে উত্পাদন কোডটি ভেঙে ফেলতে পারেন।

একাধিক স্তর রয়েছে যার উপর এটি সম্ভব:

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

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

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

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

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

প্রোডাকশন কোডে ইচ্ছাকৃতভাবে ত্রুটিগুলি ইনজেকশনের ধারণাকে বলা হয় নাশকতা , ইনজেকশনের ত্রুটিটিকে সাবোটিউর বলা হয় ।


1

কোনও পরীক্ষক যিনি সরাসরি সংগ্রহস্থল থেকে কোড-টু-টেস্ট-টেস্ট নিচ্ছেন না তিনি এটি ভুল করছেন। (1)

একটি ডেভেলপার যারা হয় চেক জ্ঞাত-ত্রুটিপূর্ণ কোড মধ্যে সংগ্রহস্থল এটা ভুল করছে। (2)


সুতরাং এই পর্যায়ে, ইতিমধ্যে এই স্কিমটির পক্ষে কাজ করার কোনও উপায় নেই যে উভয় পক্ষই কীভাবে উন্নয়ন এবং পরীক্ষা করা উচিত তা খুব মৌলিক প্রাঙ্গনে লঙ্ঘন করে না।


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

(২) আপনি কেবল পরীক্ষক ড্রাইভারের বাইরে না হয়ে ব্যর্থতার প্রত্যাশা করছেন


এটি একটি সংক্ষিপ্ততম, "লিফট পিচ" কারণে একটি প্রচেষ্টা যা দেব, পরীক্ষক এবং পরিচালনা উভয়কেই তাত্ক্ষণিকভাবে উপলব্ধি করা উচিত।


1
এটি একটি বিজ্ঞপ্তি যুক্তি। আপনি বলছেন "একটি পরীক্ষা বিল্ডে বাগের বাগগুলি ভুল কারণ বিকাশকারীদের জানা ত্রুটিযুক্ত কোড সহ কোনও বিল্ড তৈরি করা উচিত নয়"।
ডোমিনিক ক্রোনিন

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

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

0

আপনি QA- এ প্রেরণ করা প্রতিটি বিল্ডে ইচ্ছাকৃতভাবে ইনজেকশন দেওয়ার বিরুদ্ধে সুপারিশ করছি।

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

যদি তারা আপনার লিখিত চেয়ে বেশি কর্মক্ষম প্রান্তের বাগগুলি খুঁজে পায় তবে অবশ্যই এটি আপনার কিউএ নয় যা তদারকি প্রয়োজন ... ;-)


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