টিডিডি এবং সম্পূর্ণ পরীক্ষার কাভারেজ যেখানে ক্ষতিকারক পরীক্ষার কেসগুলি প্রয়োজন


18

আমি আমাদের ক্লায়েন্টের কাছ থেকে খুব নির্দিষ্ট প্রয়োজনীয়তার জন্য অনুসন্ধানের ফলাফলগুলির একটি নিরক্ষিত তালিকার বাছাইয়ে সহায়তা করার জন্য একটি তালিকার তুলকের সাথে কাজ করছি। প্রয়োজনীয়তাগুলি গুরুত্বের সাথে নিম্নলিখিত নিয়মগুলির সাথে একটি র‌্যাঙ্কড প্রাসঙ্গিকতা অ্যালগরিদমের জন্য কল করে:

  1. নামের সাথে হুবহু মিল
  2. নামে অনুসন্ধানের প্রশ্নের সমস্ত শব্দ বা ফলাফলের প্রতিশব্দ
  3. ফলাফলের নাম বা প্রতিশব্দে অনুসন্ধানের প্রশ্নের কিছু শব্দ (% অবতরণ)
  4. বর্ণনায় অনুসন্ধানের প্রশ্নের সমস্ত শব্দ
  5. বর্ণনায় অনুসন্ধানের প্রশ্নের কিছু শব্দ (% অবতরণ)
  6. সর্বশেষ পরিবর্তিত তারিখ অবতরণ

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

  1. 32
  2. 16
  3. 8 (% অবতরণের উপর ভিত্তি করে গৌণ টাই-ব্রেকার স্কোর)
  4. 4
  5. 2 (% অবতরণের উপর ভিত্তি করে গৌণ টাই-ব্রেকার স্কোর)
  6. 1

টিডিডি স্পিরিটে আমি প্রথমে আমার ইউনিট পরীক্ষা দিয়ে শুরু করার সিদ্ধান্ত নিয়েছি। প্রতিটি অনন্য দৃশ্যের জন্য একটি পরীক্ষার কেস থাকা ন্যূনতম 63৩ টি অনন্য পরীক্ষার ক্ষেত্রে বিধি 3 এবং 5 এ সেকেন্ডারি টাই ব্রেকার যুক্তির জন্য অতিরিক্ত পরীক্ষার কেস বিবেচনা না করে বিবেচনা করা উচিত।

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


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

উত্তর:


17

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

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

তারপরে, দ্বিতীয় প্রয়োজনীয়তা দিয়ে শুরু করুন:

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

এখানে ধরা পড়বে : যখন আপনি প্রয়োজনীয়তা / বিভাগের নম্বর "এন" এর জন্য পরীক্ষার কেসগুলি যুক্ত করবেন তখন আপনাকে কেবল "এন -1" বিভাগের স্কোর "এন" বিভাগের স্কোরের চেয়ে বেশি কিনা তা নিশ্চিত করার জন্য পরীক্ষা করতে হবে will । 1, ..., n-1 বিভাগগুলির প্রতিটি অন্যান্য সংমিশ্রণের জন্য আপনাকে কোনও পরীক্ষার কেস যুক্ত করতে হবে না, যেহেতু আপনি আগে যে পরীক্ষাগুলি লিখেছেন তা নিশ্চিত করবে যে বিভাগগুলির স্কোরগুলি এখনও সঠিক ক্রমে থাকবে।

সুতরাং এটি আপনাকে পরীক্ষাগুলির একটি সংখ্যা দেবে যা প্রয়োজনীয়তার সংখ্যার সাথে প্রায় লিনিয়ার বৃদ্ধি পায়, তাত্ক্ষণিকভাবে নয়।


1
আমি এই উত্তরটি সত্যিই পছন্দ করি। এটি টিডিডি মাথায় রেখে এই সমস্যাটির কাছে যাওয়ার জন্য একটি সুস্পষ্ট এবং সংক্ষিপ্ত ইউনিট পরীক্ষার কৌশল দেয়। আপনি এটি বেশ সুন্দরভাবে ভেঙে দিন।
ম্যাপেল_শ্যাফ্ট

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

13

শর্তের একটি পূর্বনির্ধারিত তালিকার মধ্য দিয়ে যায় এমন একটি ক্লাস লেখার বিষয়ে বিবেচনা করুন এবং প্রতিটি সফল পরীক্ষার জন্য একটি বর্তমান স্কোরকে 2 দ্বারা গুণিত করুন।

এটি বেশ কয়েকটি উপহাসের পরীক্ষা দিয়ে খুব সহজেই পরীক্ষা করা যায়।

তারপরে আপনি প্রতিটি শর্তের জন্য একটি ক্লাস লিখতে পারেন এবং প্রতিটি মামলার জন্য কেবল 2 টি পরীক্ষা রয়েছে।

আমি সত্যিই আপনার ব্যবহারের বিষয়টি বুঝতে পারছি না, তবে আশা করি এই উদাহরণটি সাহায্য করবে।

public class ScoreBuilder
{
    private ISingleScorableCondition[] _conditions;
    public ScoreBuilder (ISingleScorableCondition[] conditions)
    {
        _conditions = conditions;
    }

    public int GetScore(string toBeScored)
    {
        foreach (var condition in _conditions)
        {
            if (_conditions.Test(toBeScored))
            {
                // score this somehow
            }
        }
    }
}

public class ExactMatchOnNameCondition : ISingleScorableCondition
{
    private IDataSource _dataSource;
    public ExactMatchOnNameCondition(IDataSource dataSource)
    {
        _dataSource = dataSource;
    }

    public bool Test(string toBeTested)
    {
        return _dataSource.Contains(toBeTested);
    }
}

// etc

আপনি লক্ষ্য করবেন যে আপনার 2 ^ শর্তগুলির পরীক্ষাগুলি দ্রুত 4+ (2 * শর্ত) এ নেমে আসে। ২০ টি 64৪ এর তুলনায় খুব কম গর্বিত And এবং যদি আপনি পরে আরও একটি যোগ করেন তবে আপনাকে বিদ্যমান ক্লাসগুলির কোনওটি (ওপেন-ক্লোজড নীতি) পরিবর্তন করতে হবে না, সুতরাং আপনাকে new৪ টি নতুন পরীক্ষা লিখতে হবে না, আপনার কেবল আছে 2 টি নতুন পরীক্ষা সহ আরও একটি ক্লাস যুক্ত করতে এবং এটি আপনার স্কোরবিল্ডার ক্লাসে ইনজেক্ট করুন।


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

4
@ ম্যাপেল_শ্যাফ্ট: না, তবে আপনি টিডিডি পরামর্শের সন্ধান করছিলেন এবং এই ধরণের অ্যালগরিদমগুলি প্রচেষ্টাকে হ্রাস করে, এটি প্রচেষ্টাটির পক্ষে মূল্যবান কিনা এই প্রশ্নটি সরিয়ে দেওয়ার জন্য উপযুক্ত। জটিলতা হ্রাস করা টিডিডির মূল চাবিকাঠি।
পিডিআর

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

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

4

তবুও এই পরীক্ষার প্রতিটি মামলা লেখার জন্য যে স্তরের প্রচেষ্টার স্তর তা মূল্যবান?

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

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

Rd৩ তম পরীক্ষাটি সম্ভবত এটির জন্য উপযুক্ত হবে না কারণ এটি আপনার 99.99% আত্মবিশ্বাসী আপনার কোডের যুক্তি বা অন্য কোনও পরীক্ষার দ্বারা আচ্ছাদিত।

টিডিডিতে 100% পরীক্ষার কভারেজের কথা বলার সময় সাধারণত টেস্টিংয়ের এটিই কি স্তর?

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

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


"কভারেজ" সাধারণত কোড কভারেজকে বোঝায় (কোডের প্রতিটি লাইন কার্যকর করা হয়) বা শাখা কভারেজ (প্রতিটি শাখা কমপক্ষে একবার কোনও সম্ভাব্য দিক দিয়ে কার্যকর করা হয়)। উভয় ধরণের কভারেজের জন্য 64৪ টি বিভিন্ন পরীক্ষার ক্ষেত্রে প্রয়োজন নেই। কমপক্ষে, কোনও গুরুতর বাস্তবায়নের সাথে নয় যা 64৪ টির প্রতিটি ক্ষেত্রে পৃথক কোড অংশ ধারণ করে না। সুতরাং 100% কভারেজ সম্পূর্ণভাবে সম্ভব।
ডক ব্রাউন 21

@ ডকব্রাউন - অবশ্যই, এই ক্ষেত্রে - অন্যান্য বিষয়গুলি পরীক্ষা করা শক্ত / অসম্ভব; মেমরি ব্যতিক্রম পাথ বিবেচনা করুন। আচরণ প্রয়োগের জন্য টিডিডি'র চিঠির মাধ্যমে সমস্ত required৪ জনকে কী প্রয়োজন হবে না যা বাস্তবায়নের বিষয়ে অজ্ঞ?
টেলাস্টিন

ভাল, আমার মন্তব্য প্রশ্নের সাথে সম্পর্কিত ছিল, এবং আপনার উত্তরটি এমন ধারণা দেয় যে ওপির ক্ষেত্রে 100% কভারেজ পাওয়া শক্ত হতে পারে । আমি ওটা সন্দেহ করেছি. এবং আমি আপনাকে সম্মত করি যে কেউ এমন কেস তৈরি করতে পারে যেখানে ১০০% কভারেজ অর্জন করা আরও কঠিন, তবে এটি জিজ্ঞাসা করা হয়নি।
ডক ব্রাউন 22

4

আমি তর্ক করব যে এটি নিখুঁত টিডিডি-র জন্য মামলা।

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

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


1

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

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

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

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

এই পদ্ধতির সাথে, উপরে বর্ণিত পদ্ধতির ক্ষেত্রে # 1 এর ক্ষেত্রে সম্ভবত 3 বা 4 ইউনিট পরীক্ষা দেওয়া হবে, সম্ভবত কিছু / সমস্ত ডাব্লু / প্রতিশব্দ 10 টি চশমা - আরও 2 কেস # 2 - # 5 এবং 2 এর সঠিক স্কোরিংয়ের জন্য 4 চশমা চূড়ান্ত তারিখের আদেশের উপর চূড়ান্ত তারিখের 3 টি চশমা, তারপরে 3 থেকে 4 ইন্টিগ্রেশন স্তরের পরীক্ষাগুলি সমস্ত 6 টি কেস সম্ভাব্য উপায়ে একত্রিত করে (আপাতত অস্পষ্ট প্রান্তের মামলাগুলি সম্পর্কে ভুলে যান যদি আপনি আপনার কোডটিতে পরিষ্কারভাবে কোনও সমস্যা দেখতে না পান যা নিশ্চিত করার জন্য অনুশীলন করা প্রয়োজন এই শর্তটি পরিচালনা করা হয়) বা পরবর্তী সংস্করণগুলি লঙ্ঘন / ভাঙ্গা না হয়ে তা নিশ্চিত করে । লিখিত কোডের 100% (যদিও আপনি সরাসরি লিখিত পদ্ধতিগুলির 100% সরাসরি কল করেননি) ব্যায়াম করার জন্য এটি প্রায় 25 বা তাই চশমা দেয়।


1

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

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

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

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

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