কোড মুছে ফেলার ফলে কি একটি বাগ ঠিক করা যায় তা প্রমাণ করার জন্য আমার কি পরীক্ষা লিখতে হবে?


14

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

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


8
আমি মনে করি যে বাগটি ঠিক করা হয়েছিল তা নির্বিশেষে যে কোনও রিগ্রেশন পরীক্ষাটি দরকারী
ইসমাইল বাদোয়া

1
পরীক্ষার জোর দিয়ে কোডটি সরানো হয়নি - পরীক্ষায় বাগটি স্থির হয়েছে বলে দাবি করা হয়েছে ...
ব্যবহারকার 253751

উত্তর:


50

আপনি এটিকে ভুল উপায়ে দেখছেন। পরীক্ষাটি জোর দেয় না যে কোডটি সরানো হয়েছিল। পরীক্ষা করে একটি নির্দিষ্ট কার্যকারিতা অন্বেষণ করা।

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

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


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

2
পরিষ্কারভাবে মুছে ফেলা কার্যকারিতা কিছু ইনপুট / আউটপুট ভুল পরিচালনা করেছে। স্পষ্টতই পরবর্তী কোনও ব্যক্তি সমস্যাটিকে ভুলভাবে বুঝতে পারে। যদি আপনি পরীক্ষার স্যুট ব্লাটের আশঙ্কা করেন তবে আমি মনে করি না যে টিডিডি আপনার জন্য। যাইহোক টেস্ট স্যুট ব্লাট কী?
ডোরাস

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

উভয় ক্ষেত্রেই, আপনি কখনও পরীক্ষার স্যুটটিতে কোনও পরীক্ষা যোগ করেন না এবং দ্বিতীয় ক্ষেত্রে আপনি একটিও সরিয়ে দেন । যাইহোক, যদি এটির সক্রিয় হয় যে পরীক্ষাটি বাস্তবে অর্থবোধ করে, ভাল, তবে কার্যকারিতা এতটা অযৌক্তিক ছিল না।
Jörg ডব্লু মিটাগ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.