আমি 25 বছর আগে বেশিরভাগ টেস্টিং কম্পিউটার সফটওয়্যার লিখেছি। আমি তখন থেকে বইটির বেশ কয়েকটি অংশের দিকে ইঙ্গিত করেছি যা আমি পুরানো বা সহজভাবে বিবেচনা করি। Http://www.kaner.com/pdfs/TheOngoingRevolve.pdf দেখুন
ব্ল্যাক বক্স সফটওয়্যার টেস্টিং কোর্সের (বিনামূল্যে ভিডিওতে এবং স্লাইডগুলি), www.testingeducation.org/BBST এর জন্য আমার সাইটে আপনি আরও (বর্তমান মতামতগুলি, তবে টিসিএসে সুস্পষ্ট পয়েন্টার ছাড়াই) দেখতে পারবেন www.
এরপরে পরীক্ষার সংস্কৃতি মূলত নিশ্চিতকরণযোগ্য ছিল।
আধুনিক পরীক্ষায়, ইউনিট টেস্টিংয়ের পদ্ধতির বিষয়টি অনেকাংশে নিশ্চিতকরণযোগ্য - আমরা স্বয়ংক্রিয় পরীক্ষার বৃহত সংগ্রহগুলি লিখি যা কেবল যাচাই করে যে সফ্টওয়্যারটি ইচ্ছামত সম্পাদন করে চলে। পরীক্ষাগুলি পরিবর্তন ডিটেক্টর হিসাবে কাজ করে - কোডের এই অংশে এবং এই অংশে যদি এখন কিছু সমস্যা থাকে বা যদি সত্যিকারের বিশ্বে অসম্ভব হিসাবে ব্যবহৃত ডেটা মানগুলি এখন অ্যাপ্লিকেশনটিতে পৌঁছে যায়, তবে পরিবর্তন সনাক্তকারীরা আগুন জ্বালিয়ে সতর্ক করে দেয় রক্ষণাবেক্ষণের সমস্যায় প্রোগ্রামার।
আমি মনে করি নিশ্চিতকরণমূলক মানসিকতা ইউনিট পরীক্ষার জন্য উপযুক্ত, তবে এমন একটি বিশ্ব কল্পনা করুন যেখানে সিস্টেম টেস্টিংয়ের সমস্ত নিশ্চিতকরণযোগ্য ছিল (লোকেদের মধ্যে যারা পার্থক্য তৈরি করে, দয়া করে সিস্টেমের বিষয়ে আমার মন্তব্যে অন্তর্ভুক্ত হিসাবে "সিস্টেম ইন্টিগ্রেশন টেস্টিং" এবং "স্বীকৃতি পরীক্ষা" ব্যাখ্যা করুন) টেস্টিং।) পরীক্ষার মূল বিষয়টিটি নিশ্চিত হয়েছিল যে প্রোগ্রামটি তার নির্দিষ্টকরণের সাথে মেলে এবং প্রভাবশালী পদ্ধতিটি ছিল একটি জিলিয়ন (বা কমপক্ষে কয়েকশ) সিস্টেম-স্তরের রিগ্রেশন টেস্ট তৈরি করা যা প্রোগ্রামটির আচরণগুলির সাথে অনুমানের অংশগুলিকে ম্যাপ করে। (আমি মনে করি সুনির্দিষ্ট-আচরণের নিশ্চয়তা দরকারী, তবে আমি মনে করি এটি বৃহত্তর উদ্দেশ্যটির একটি ছোট অংশ)
এখনও টেস্ট গ্রুপ রয়েছে যা এইভাবে পরিচালনা করে তবে এটি আর প্রভাবশালী দৃষ্টিভঙ্গি নয়। পিছনে তখন, ছিল। আমি দৃhat়তার সাথে লিখেছিলাম এবং এই মানসিকতাটিতে ধারাবাহিকভাবে প্রশিক্ষণপ্রাপ্ত লোকদের প্রতি ইঙ্গিত করার জন্য তীব্র বৈপরীত্য আঁকলাম। আজ, কিছু তীক্ষ্ণ বিপরীতে (এখানে উদ্ধৃত হওয়া সহ) পুরানো। এগুলি ভুল মতামতের আক্রমণ হিসাবে ভুল ব্যাখ্যা করা হয়।
আমি এটি দেখতে পাচ্ছি, সফ্টওয়্যার টেস্টিং কোনও সফ্টওয়্যার পণ্য বা পরিষেবা সম্পর্কে গুণমান সম্পর্কিত তথ্য শেখার একটি অনুপ্রেরণামূলক প্রক্রিয়া।
দরকারী তথ্য প্রকাশের জন্য একটি পরীক্ষা নকশা করা উচিত।
ততক্ষণে, যাইহোক, কেউই "তথ্য" প্রকাশের পদ্ধতি হিসাবে পরীক্ষার বিষয়ে কথা বলেনি। তারপরে, পরীক্ষাগুলি হয় হয় (কিছু সংস্করণের ...) বাগগুলি অনুসন্ধান করার জন্য বা (কিছু সংস্করণ ...) যাচাইকরণের জন্য (পরীক্ষা করা) নির্দিষ্টকরণের বিরুদ্ধে ছিল। আমি মনে করি না যে পরীক্ষাগুলি দরকারী তথ্য প্রকাশের জন্য যে জোর দিয়েছিল তা এই শতাব্দী অবধি পরীক্ষার শব্দভাণ্ডারের মধ্যে এসেছিল।
তাদের তথ্যের মূল্য হিসাবে রেটিং পরীক্ষার কল্পনা করুন। এমন একটি পরীক্ষা যা আমাদের এমন কিছু শিখায় যে সফ্টওয়্যারটি সম্পর্কে আমরা জানি না তার একটি খুব উচ্চ তথ্যের মান থাকবে। এমন একটি পরীক্ষা যা আমরা ইতিমধ্যে প্রত্যাশা করে এমন কিছু নিশ্চিত করে যা খুব ইতিমধ্যে এর আগেও বহুবার প্রদর্শিত হয়েছিল, এর একটি তথ্যের স্বল্প মূল্য থাকবে। পরীক্ষাগুলিকে অগ্রাধিকার দেওয়ার একটি উপায় হ'ল কম তথ্য মান পরীক্ষার আগে উচ্চতর তথ্যের মান পরীক্ষা করা।
যদি আমি এই অগ্রাধিকারটিকে আরও প্রশ্রয় দিয়ে থাকি যাতে এটি কোনও প্রোগ্রামার, প্রজেক্ট ম্যানেজার বা প্রসেসার ম্যানেজারের দৃষ্টি আকর্ষণ করতে পারে যিনি সফ্টওয়্যার টেস্টিংয়ের বিষয়ে অজ্ঞাত রয়েছেন, আমি বলব "একটি পরীক্ষার সময়টি অপ্রয়োজনীয় বলে প্রমাণিত করার জন্য ডিজাইন করা হয়নি । " এটি একটি নিখুঁত অনুবাদ নয়, তবে যে পাঠকরা কোনও সূক্ষ্মতা বা যোগ্যতা বুঝতে বা বুঝতে পারবেন না, এটি এটি যতটা নিকটবর্তী হবে তত কাছাকাছি।
তারপরে, এবং আমি এটি আবার এখানে দেখছি, কিছু লোক যারা পরীক্ষার বিষয়টি বোঝে না তারা প্রতিক্রিয়া জানায় যে কোণার কেসগুলি সন্ধান করার জন্য ডিজাইন করা একটি পরীক্ষা একটি প্রধান ফাংশনের একটি বড় ব্যবহারের পরীক্ষার তুলনায় সময়ের অপচয় করা। তারা দুটি জিনিস বুঝতে পারে না। প্রথমত, যখন পরীক্ষকরা সীমানা মানগুলি পরীক্ষা করার জন্য সময় পান, ততক্ষণে প্রধান ফাংশনগুলির প্রধান ব্যবহারগুলি ইতিমধ্যে বেশ কয়েকবার ব্যবহার করা হয়েছে। (হ্যাঁ, ব্যতিক্রম রয়েছে এবং বেশিরভাগ পরীক্ষামূলক দলগুলি সেগুলি ব্যতিক্রমের দিকে মনোযোগ দেবে)) দ্বিতীয়ত, চূড়ান্ত মানগুলির সাথে পরীক্ষা করার কারণ হ'ল প্রোগ্রামটি চূড়ান্ত মানগুলির সাথে ব্যর্থ হওয়ার সম্ভাবনা বেশি। যদি এটি চূড়ান্তভাবে ব্যর্থ না হয়, আপনি অন্য কিছু পরীক্ষা করুন। এটি একটি কার্যকর নিয়ম। অন্যদিকে, যদি এটি কোনও চূড়ান্ত মূল্যে ব্যর্থ হয় তবে পরীক্ষক থামতে পারে এবং একটি বাগ রিপোর্ট করতে পারে বা পরীক্ষক আরও সমস্যার সমাধান করতে পারে, আরও সাধারণ মানগুলিতে প্রোগ্রাম একইভাবে ব্যর্থ হয় কিনা তা দেখতে। কে এই সমস্যার সমাধান (পরীক্ষক বা প্রোগ্রামার) করেন তা কর্পোরেট সংস্কৃতির বিষয়। কিছু সংস্থাগুলি এটির জন্য পরীক্ষকের সময় বাজেট করে, কিছু প্রোগ্রামারদের বাজেট করে, এবং কেউ কেউ আশা করেন যে প্রোগ্রামাররা কর্ণ কেস বাগগুলি ঠিক করতে পারে যে তারা জেনারামযোগ্য বা না হয় যাতে সমস্যা সমাধানের বিষয়টি প্রাসঙ্গিক নয় fix সাধারণ ভুল বোঝাবুঝি - যে পরীক্ষকরা চূড়ান্ত মানগুলি পরীক্ষা করে সময় নষ্ট করে (সর্বাধিক দক্ষতা না দিয়ে) তার আরও একটি কারণ যা "বাগটি প্রকাশের জন্য ডিজাইন করা হয়নি এমন একটি সময় সময়ের অপচয়" পরীক্ষার্থীদের জন্য উপযুক্ত বার্তা। এটি কিছু প্রোগ্রামারদের দ্বারা উত্সাহিত হওয়ার একটি প্রতিরূপ (কার্যকরভাবে) কখনও পরীক্ষা না চালায় যা প্রোগ্রামটিকে চ্যালেঞ্জ করতে পারে। বার্তাটি বড় আকারের করা হয়েছে, তবে পুরো আলোচনাটি আরও ছাপিয়ে গেছে।
যাইহোক, "তথ্য মান" একমাত্র অগ্রাধিকার সিস্টেম হতে পারে না। ইউনিট টেস্ট স্যুট ডিজাইন করার সময় এটি আমার নিয়ম নয়। আমি যখন বিল্ড যাচাইকরণের পরীক্ষাগুলি (ওরফে স্যানিটি চেকস) ডিজাইন করি তখন এটি আমার নিয়ম নয়। এই দুটি ক্ষেত্রেই আমি পৃথক পরীক্ষার শক্তির চেয়ে কভারেজের প্রকারে বেশি আগ্রহী। অন্যান্য কেস রয়েছে (যেমন উচ্চ-ভলিউম স্বয়ংক্রিয় পরীক্ষাগুলি সেটআপ, চালানো ও নিরীক্ষণের জন্য সস্তা) যেখানে পৃথক পরীক্ষাগুলির শক্তিটি কেবল আমার ডিজাইনের সাথে অপ্রাসঙ্গিক। আমি নিশ্চিত আপনি অতিরিক্ত উদাহরণ সম্পর্কে চিন্তা করতে পারেন।
তবে একটি সাধারণ নিয়ম হিসাবে, যদি আমি কেবল একটি নিয়ম বলতে পারি (উদাহরণস্বরূপ এমন নির্বাহীর সাথে কথা বলা যার মাথা ফেটে যায় যদি তিনি একাধিক বাক্য প্রক্রিয়া করার চেষ্টা করেন), এটি হ'ল একটি কম তথ্য-মূল্য পরীক্ষা সাধারণত সময় নষ্ট হয়।