লোকেরা কীভাবে তাদের পরীক্ষার স্যুট বজায় রাখবে?


17

বিশেষত, আমি নিম্নলিখিত দিকগুলি সম্পর্কে কৌতূহলী:

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

  2. আপনি কীভাবে জানবেন যে আপনার পরীক্ষার স্যুটটি এখন পর্যাপ্ত নয় এবং নতুন পরীক্ষার কেসগুলি যুক্ত করা উচিত? আমি অনুমান করি প্রয়োজনীয় পরিবর্তনগুলির সাথে এটির কিছু আছে তবে পরীক্ষার স্যুটটির পর্যাপ্ততা পরীক্ষা করার জন্য কি কোনও নিয়মতান্ত্রিক পদ্ধতি রয়েছে?


4
প্যারাফ্রেজ করতে: কে পরীক্ষা দেয়?
কনরাড রুডল্ফ

উত্তর:


11

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

দীর্ঘ উত্তর:

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

  • কোবার্টুরার মতো কোড কভারেজ সরঞ্জামগুলি ব্যবহার করে আপনি প্রদত্ত শ্রেণীর বা জটিল পদ্ধতির জন্য পরীক্ষার কেসগুলি সনাক্ত করতে সক্ষম হবেন না। আপনার সর্বত্র 100% কোড কভারেজ পৌঁছানোর দরকার নেই এবং বেশিরভাগ ক্ষেত্রে এটি অর্জন করা শক্ত হবে এবং প্রয়োজনীয়ভাবে দরকারী নয়; তবে কোনও প্রোগ্রামের সবচেয়ে গুরুত্বপূর্ণ দিকগুলির জন্য পরীক্ষাগুলি কোড কভারেজের কমপক্ষে 80% লক্ষ্য রেখে বজায় রাখা উচিত।
  • ব্যবহার ক্রমাগত তৈরি করুন এবং ইন্টিগ্রেশন সরঞ্জাম যেমন জেনকিন্স সঙ্গে একযোগে, যা আমি খুব অনুরাগী নই সোনার প্লাগইন, আপনি সেট ট্রিগার যে সাম্প্রতিক পরিবর্তন জন্য দায়ী ব্যক্তি ইমেল এবং সতর্কতা অন্যান্য ধরনের পাঠাতে সক্ষম। বিভিন্ন গ্রাফ এবং পরিসংখ্যান (সোনার অন্যান্য অনেক সরঞ্জামের মধ্যে কোবার্টুরাকেও ব্যবহার করে) কোড পর্যালোচক এবং পরীক্ষার কেস বিকাশকারীদের কী গুরুত্বপূর্ণ তা ফোকাস করতে সহায়তা করে।

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

আমি প্রথম প্রশ্নের জন্য যা লিখেছি তা আপনার দ্বিতীয় প্রশ্নের উত্তরের অংশ answer আমি এখানে নিম্নলিখিত পয়েন্টগুলি যুক্ত করব:

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

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

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

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

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

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

9

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

অতএব, (1) যদি আপনার পরীক্ষার স্যুটটি অসম্পূর্ণ থাকে তবে তা দেখার সহজ কোনও উপায় নেই। কোড কভারেজ বিশ্লেষণ প্রমাণ করতে পারে যে কোডের কয়েকটি লাইন কখনই কার্যকর হয় না, অর্থাৎ স্যুট কোনওভাবেই ঘাটতি হয়, তবে সেই ঘাটতি কতটা তীব্র তা নয় এবং এটি কখনও প্রমাণ করতে পারে না যে এটি পর্যাপ্ত। এমনকি 100% কোড কভারেজ সহ আপনার সমস্ত প্রাসঙ্গিক রাজ্যের কোনও গ্যারান্টি নেইসিস্টেমটির ব্যবহার করা হয় এবং যে কোনও রাজ্য যে সংখ্যক রাজ্যের অস্তিত্ব থাকতে পারে তার কারণে সম্পূর্ণ রাষ্ট্রীয় কভারেজ কোনও বাস্তববাদী ব্যবস্থার পক্ষে অগ্রহণযোগ্য। আপনি যা পরীক্ষা করেছেন তা যাচাই করার জন্য আপনার কেস কেসটি কমপক্ষে সঠিক কিনা তা নিশ্চিত করার একটি ভাল কৌশল হ'ল পরীক্ষাটি লিখতে হবে, এটি সত্যই ব্যর্থ হয়েছে কিনা তা যাচাই করে কোডটি লিখুন / পরিবর্তন করুন এবং তারপরে এটি পাস হয়েছে কিনা তা যাচাই করুন। অতএব পরীক্ষা-চালিত বিকাশের জন্য উত্সাহ: এটি আপনাকে পৃথক পরীক্ষা সঠিক কাজ করে তা পুরোপুরি নিশ্চিত করার অনুমতি দেয় এবং যদি আপনি আপনার পুরো কোড বেসটি তৈরি করেন তবে আপনি একটি বৃহত সিস্টেমেও একই স্তরের আস্থা অর্জন করতে পারেন।

(২) যখনই প্রয়োজনীয়তাগুলি পরিবর্তন হয় একটি পরীক্ষার স্যুট সাধারণত অপর্যাপ্ত হয়ে যায় - আপনার অনুমান করার দরকার নেই। যদি গ্রাহক কিছু নির্দিষ্ট আচরণ পরিবর্তন করতে চায় এবং আপনার পরীক্ষাগুলি পরিবর্তনের আগে এবং পরে উভয় ক্ষেত্রেই সফল হয় তবে স্পষ্টতই তারা সেই নির্দিষ্ট ইনপুট / আউটপুট সম্পর্কটি ব্যবহার করছে না।

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

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