টিডিডি টেস্টগুলি কত দানাদার হওয়া উচিত?


18

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

চূড়ান্ত বাস্তবায়নটি এরকম কিছু দেখবে:

if (_importDialog.Show() == ImportDialogResult.SaveButtonIsPressed)
{
   AddPatient();
   AddDevice();
   AddDeviceDataRecords();
}

এটি বাস্তবায়নের জন্য আমাদের দুটি উপায় রয়েছে:

  1. তিনটি পরীক্ষা যেখানে প্রতিটি একটি পদ্ধতি যাচাই করে (অ্যাডপ্যাশেন্ট, অ্যাডডেভাইস, অ্যাডডেভাইস ডেটা রেকর্ডস) ডাকা হত
  2. তিনটি পদ্ধতি যাচাই করে এমন একটি পরীক্ষা বলা হয়েছিল

প্রথম ক্ষেত্রে যদি কোনও দোষ শর্তের মধ্যে কিছু ভুল হয় তবে তারা তিনটি পরীক্ষায় ব্যর্থ হবে। কিন্তু দ্বিতীয় ক্ষেত্রে যদি পরীক্ষা ব্যর্থ হয় তবে আমরা নিশ্চিত যে ঠিক কী ভুল। আপনি কোন উপায়ে পছন্দ করবেন

উত্তর:


8

তবে দ্বিতীয় ক্ষেত্রে যদি পরীক্ষা ব্যর্থ হয় তবে আমরা ঠিক কী ভুল তা নিশ্চিত হতে পারছি না।

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

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

এছাড়াও নোট করুন, যে কোনও উপায়ে, পৃথক পদ্ধতিগুলির প্রত্যেকটি এটি করার কথা বলে তা যাচাই করার জন্য আপনার পৃথক ইউনিট পরীক্ষাও করা উচিত।


শেষ পর্যন্ত এই তিনটি পরীক্ষা একত্রিত করা কি যুক্তিসঙ্গত মনে হবে না?
সাইবেরিয়ানগুই

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

30

আপনার উদাহরণে গ্রানুলারিটি ইউনিট- এবং গ্রহণযোগ্যতা পরীক্ষার মধ্যে পার্থক্য বলে মনে হচ্ছে।

একটি ইউনিট সম্ভব হিসাবে কম নির্ভরতা সহ কার্যকারিতার একক ইউনিট পরীক্ষা করে। আপনার ক্ষেত্রে 4 টি ইউনিট থাকতে পারে

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

ইউনিটসেটগুলি বিকাশকারীদের পক্ষে , তাই তারা আস্থা অর্জন করে যে তাদের কোডটি প্রযুক্তিগতভাবে সঠিক

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

যখন ব্যবহারকারী ডেটা প্রবেশ করে, ক্লিক করে ঠিক আছে এবং ...

  • ... রোগীর তালিকায় যায়, তার দেওয়া নামটির সাথে একটি নতুন রোগী দেখতে হবে
  • ... ডিভাইসের তালিকায় যায়, তার উচিত একটি নতুন ডিভাইস দেখা উচিত
  • ... নতুন ডিভাইসের বিবরণে যায়, তার নতুন ডেটারেকর্ডগুলি দেখতে হবে

গ্রহণযোগ্যতা পরীক্ষা গ্রাহকদের জন্য বা তাদের সাথে আরও ভাল যোগাযোগের জন্য।

আপনার প্রশ্নের উত্তর দেওয়ার জন্য "আপনি কী পছন্দ করবেন": এই মুহূর্তে আপনার কাছে আরও বড় সমস্যাটি কী, বাগ এবং রিগ্রেশন (=> আরও ইউনিটসেট) বা বড় চিত্রটি বুঝতে এবং আনুষ্ঠানিককরণ করা (=> আরও গ্রহণযোগ্যতা পরীক্ষা)


13

এটি বাস্তবায়নের জন্য আমাদের দুটি উপায় রয়েছে:

এটা মিথ্যা।

তিনটি পরীক্ষা যেখানে প্রতিটি একটি পদ্ধতি যাচাই করে (অ্যাডপ্যাশেন্ট, অ্যাডডেভাইস, অ্যাডডেভাইস ডেটা রেকর্ডস) ডাকা হত

আপনি আবশ্যক নিশ্চিত এটি কাজ করে হতে এই কাজ।

তিনটি পদ্ধতি যাচাই করে এমন একটি পরীক্ষা বলা হয়েছিল

আপনি আবশ্যক এছাড়াও নিশ্চিত এপিআই কাজ হতে এই কাজ।

শ্রেণি - ইউনিট হিসাবে - অবশ্যই পুরোপুরি পরীক্ষা করা উচিত। প্রতিটি পদ্ধতি।

আপনি একটি পরীক্ষা দিয়ে শুরু করতে পারেন যা তিনটি পদ্ধতিই কভার করে, তবে এটি আপনাকে খুব বেশি কিছু বলে না।

যদি পরীক্ষা ব্যর্থ হয়, তবে ঠিক কী ভুল তা আমরা নিশ্চিত নই।

সঠিক। এজন্য আপনি সমস্ত পদ্ধতি পরীক্ষা করে দেখুন।

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


2

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

উদাহরণস্বরূপ, কল্পনা করুন যে আপনার সিস্টেমে একটি রোগী যুক্ত করার জন্য কিছু সাবরুটাইন (শিশু ফাংশন) বলা প্রয়োজন:

  1. VerifyPatientQualification
  2. EnsureDoctorExistence
  3. CheckInsuranceHistory
  4. EnsureEmptyBed

আমরা এই ফাংশনগুলির জন্য ইউনিট পরীক্ষাও লিখতে পারি।


2

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

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