ইউনিট টেস্টিং কি সেই চেষ্টাটির পক্ষে মূল্যবান? [বন্ধ]


572

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


25
আপনি কীভাবে এমন প্রশ্ন করতে পারেন .. ইউনিট টেস্টিং এত হিপ :)? সিরিয়াসলি ... সাধারণ ধারণাটি একই ... ইউনিট টেস্টিং করুন যদি আপনি মনে করেন যে বেনিফিটগুলি ব্যয়কে ছাড়িয়ে যায় ... যদি আপনার অন্যথায় বিশ্বাস করার কারণ থাকে তবে .. অন্যরকম কিছু আবিষ্কার করুন যা সহায়তা করে।
গিশু

14
(ডিবাগ-রিলিজ বিল্ড + ক্লাস + ডেডিকেটেড ডামি টেস্টারে ক্লিন ইন্টারফেস সহ নিয়মিত
জবাব

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

7
@ ভিক্টরসেহর: ইউনিট পরীক্ষাগুলি পরিষ্কার ইন্টারফেসের বিরোধী নয়, আসলে টিডিডি প্রয়োগ করার সময় এগুলি বিপরীত। হয়, বা ড্রাইভারের আসন + স্টিয়ারিং হুইল> গ্যারেজ।
জোনাস বাইস্ট্রোম

5
ইউনিট টেস্টিং হ'ল সময়ের অপচয়, যা খুব কমই ত্রুটিগুলি আবিষ্কার করে তবে 30% বাগ-ফিক্সিং এবং বিকাশের সময় এবং বাজেট খায়
ডমিনিক

উত্তর:


722

আমাদের অফিসে প্রতিদিন একটি এক্সচেঞ্জ হয় যা কিছু এরকম হয়:

"ম্যান, আমি শুধু ইউনিট পরীক্ষা পছন্দ করি, আমি কিছু কাজ করার পদ্ধতিতে কেবল একগুচ্ছ পরিবর্তন করতে পেরেছি এবং তারপরে পরীক্ষাটি চালিয়ে আমি কিছুই ভেঙে ফেলতে পারি নি তা নিশ্চিত করতে সক্ষম হয়েছি ..."

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

কিন্তু, তা উপেক্ষা করে, এখানে আমার চেষ্টা!

  1. ইউনিট টেস্টগুলি আপনাকে কোডে দ্রুত পরিবর্তন করতে দেয়। আপনি জানেন যে এটি এখন কাজ করে কারণ আপনি পরীক্ষাগুলি চালিয়েছেন, যখন আপনার প্রয়োজনীয় পরিবর্তনগুলি করা দরকার তখন পরীক্ষাগুলি আবার কাজ করা দরকার। এটি ঘন্টা বাঁচায়।

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

  3. আরও ভাল কোড অর্জনের জন্য পরীক্ষা এবং কোডগুলি একত্রে কাজ করে। আপনার কোডটি খারাপ / বগি হতে পারে। আপনার পরীক্ষা খারাপ / বগি হতে পারে। টিডিডিতে আপনি দুজনেই খারাপ / বগি কম হওয়ার সম্ভাবনা নিয়ে ব্যাংকিং করছেন । প্রায়শই এটি পরীক্ষার জন্য ফিক্সিংয়ের প্রয়োজন তবে এটি এখনও একটি ভাল ফলাফল।

  4. টিডিডি কোডিং কোষ্ঠকাঠিন্যে সহায়তা করে। পরীক্ষাগুলি লেখার আগে কাজের একটি বৃহত এবং মজাদার টুকরোটির মুখোমুখি হয়ে গেলে আপনি দ্রুত এগিয়ে চলেছেন।

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

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

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

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

  9. ভাল ইউনিট পরীক্ষাগুলি ডকুমেন্টকে সহায়তা করতে পারে এবং কোনও কিছু করার কথা তা নির্ধারণ করতে পারে

  10. ইউনিট পরীক্ষাগুলি কোড পুনরায় ব্যবহারে সহায়তা করে। আপনার কোড এবং আপনার পরীক্ষাগুলি উভয়ই আপনার নতুন প্রকল্পে স্থানান্তর করুন । আবার পরীক্ষা চালানো না হওয়া পর্যন্ত কোডটি টুইঙ্ক করুন।

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


আপনি কি উপস্থাপনাটি একটি .xul লিঙ্ক করেছেন?
ব্যবহারকারী 2427

3
প্রশ্নটি ইউনিট পরীক্ষার বিষয়ে ছিল। ইউনিট পরীক্ষার চেয়ে টিডিডি সম্পূর্ণ ভিন্ন জিনিস thing
জুনটজু

421

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

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

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

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

আপনি যদি নিজের কাজের মধ্যে ইউনিট টেস্টিং প্রবর্তনের চেষ্টা করছেন এবং আপনি যে সমস্ত রোদ এবং বৃষ্টিপাতের প্রত্যাশা নিয়ে এসেছেন তা যদি না দেখেন তবে নিজেকে দোষ দেবেন না। সত্যই আপনার জন্য ইউনিট পরীক্ষার কাজটি করার জন্য আপনার একটি নতুন কাজ সন্ধানের প্রয়োজন হতে পারে।


15
দারুণ উপাখ্যান!
স্যান্ডার ভার্স্লুয়াইস

68
আপনার ধারণা আমার জন্য আগ্রহী এবং আমি আপনার নিউজলেটার সাবস্ক্রাইব করতে চান।
ক্রিস্টোফার পার্কার

165
ক্র্যাপ, আমি ইতিমধ্যে ইউনিট পরীক্ষা করেছি তবে এখন আপনি আমাকে জিমের কাছে যাওয়ার দরকার মনে করছেন।
ভিনস

16
আমিও পছন্দ করি না আমি একজন গীক হিসাবে এবং একজন মানুষ হিসাবে ব্যর্থ হয়েছি।
গ্রেগ

13
+1: প্রচুর পরিচালক ইউনিট টেস্টিংয়ের প্রশংসা গাইবেন, তবে এর অর্থ এই নয় যে এটি যখন গুরুত্বপূর্ণ তখন তারা এটির জন্য প্রস্তুত থাকবেন ... আপনার পক্ষে ইউনিট পরীক্ষার কাজটি করার জন্য আপনাকে নতুন কোনও কাজের সন্ধান করতে হতে পারে। - দুর্দান্ত পয়েন্ট। খুবই সত্য.
জিম জি।

136

বোঝানোর সর্বোত্তম উপায় ... একটি ত্রুটি সন্ধান করুন, এর জন্য একটি ইউনিট পরীক্ষা লিখুন, বাগটি ঠিক করুন।

সেই বিশেষ বাগটি আর কখনও দেখা দেওয়ার সম্ভাবনা নেই এবং আপনি এটি পরীক্ষা দিয়ে প্রমাণ করতে পারেন।

আপনি যদি এটি পর্যাপ্ত পরিমাণে করেন তবে অন্যরা দ্রুত তা ধরবে।


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

7
@ রেই - প্রবেগযোগ্য বাগ রিপোর্টটি দুর্দান্ত তবে আপনি কেবলমাত্র বাগের পুনরুত্পাদন করতে যাচ্ছেন। 2 বছর পরে, আপনার ইউনিট পরীক্ষাটি এখনও ত্রুটি প্রতিবেদনটি বন্ধ করে ভুলে যাওয়ার পরেও কোডটি চেক করতে চলেছে।
অরিওন এডওয়ার্ডস

4
এটি ফিক্স বাগ 1 সংরক্ষণ করে ... পরীক্ষা ... ভাল। ব্যবহারকারীরা বাগ 2 খুঁজে ... ঠিক আছে ... পরীক্ষা ... ভাল। ব্যবহারকারীরা আবার বাগ 1 খুঁজে পান। হালকা, ধুয়ে ফেলা, পুনরাবৃত্তি। এটি ঘটে কারণ আপনার একটি বাগের জন্য ঠিক করা, অন্যটির কারণ হয় এবং তদ্বিপরীত হয়।
ক্যাফগিকে

1
@ রেই মিয়াসাকা: "যদি আপনার প্রকল্পের রক্ষণাবেক্ষণ করতে বেশিরভাগ লোক থাকে" - আমি বলব প্রায় সমস্ত অ-তুচ্ছ প্রকল্পগুলি করে projects হিসেবে "শুধু একটি মন্তব্য": সমস্যা হলো সেখানে (অর্থাত পারে হবে ) অন্য কোড সঙ্গে পারস্পরিক ক্রিয়ার যা বাঁধানো বাগ কারণ হতে পারে হবে। এজন্য আপনাকে আসলে এটি পরীক্ষা করতে হবে।
sleske

5
দ্রষ্টব্য, তবে, যে প্রতিরোধগুলি প্রতিরোধের জন্য পরীক্ষাগুলি সাধারণত একীকরণ পরীক্ষা এবং ইউনিট পরীক্ষা নয় (কারণ আমার অভিজ্ঞতায় বেশিরভাগ বাগগুলি কেবল কোডের একটি অংশে থাকে না, তবে কোডের কয়েকটি অংশের সংমিশ্রণ থেকে উত্পন্ন হয়, তাই আপনি কেবলমাত্র এই সমস্ত টুকরা একত্রিত করে তাদের পুনরুত্পাদন)।
sleske

69

থ্যালকিংওয়ালট জিজ্ঞাসা করেছেন:

ইউনিট পরীক্ষার মান টিমের সংশয়ী বিকাশকারীদের বোঝানোর জন্য কিছু ভাল উপায় কী?

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

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

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

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

    • যদি কোনও বিকাশকারী যুক্তি দেখান যে কোনও পদ্ধতি ব্যর্থ হওয়ার পক্ষে খুব সহজ বলে মনে হচ্ছে, তবে এটির জন্য একটি সাধারণ 5-লাইনের ইউনিট পরীক্ষা লেখার জন্য 60 সেকেন্ডের প্রয়োজন কি নয়? এই 5 টি লাইন কোড পরের বছর বা তারও বেশি সময় ধরে প্রতি রাতে চলবে (আপনি রাত্রে তৈরি করেন, তাই না?) এবং প্রচেষ্টাটি উপযুক্ত হবে যদি একবারই এমন সমস্যা দেখা দেয় যা সনাক্ত করতে 15 মিনিট বা তার বেশি সময় নিয়েছে এবং ডিবাগ। এছাড়াও, সহজ ইউনিট পরীক্ষাগুলি লিখতে ইউনিট পরীক্ষার গণনা চালানো হয়, যা বিকাশকারীকে দেখতে দুর্দান্ত দেখায়।

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

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

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

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

সবচেয়ে খারাপ বিষয়, সফ্টওয়্যার বিকাশের সম্ভবত একমাত্র নিশ্চিততা হ'ল "পরিবর্তন অনিবার্য"। ধরে নিন কঠোর দোকান (90% ইউনিট পরীক্ষা / 10% উত্পাদন কোড) এমন একটি পণ্য তৈরি করে যার ঠিক 2 টি বৈশিষ্ট্য রয়েছে (অনুমান করে 5% উত্পাদন কোড == 1 বৈশিষ্ট্য)। যদি গ্রাহক উপস্থিত হন এবং বৈশিষ্ট্যগুলির মধ্যে 1 টি পরিবর্তন করেন তবে সেই পরিবর্তনটি কোডের 50% (ইউনিট পরীক্ষার 45% এবং উত্পাদন কোডের 5%) ট্র্যাশ করে। ল্যাক্স শপের (10% ইউনিট পরীক্ষা / 90% উত্পাদন কোড) এর 18 টি বৈশিষ্ট্যযুক্ত একটি পণ্য রয়েছে যার মধ্যে কোনওটি খুব ভাল কাজ করে না। তাদের গ্রাহক তাদের বৈশিষ্ট্যগুলির 4 টির জন্য প্রয়োজনীয়তাগুলি পুরোপুরি পুনর্নির্মাণ করে। যদিও পরিবর্তনটি চারগুণ বড়, তবুও কোড বেসের অর্ধেক অংশ ট্র্যাশ হয়ে যায় (~ 25% = ~ 4.4% ইউনিট পরীক্ষাগুলি + 20% উত্পাদন কোড)।

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


47
যদি ভি এর খুব কম বৈশিষ্ট্য থাকে তবে আপনি এটি ব্যবহার করছেন না। ;)
স্টেফান মাই

1
+20 স্টেফানের জন্য, যদি আমি পারতাম :)
রব গ্রান্ট

1
টেস্টিভাস টেস্ট কভারেজ - googletesting.blogspot.com/2010/07/…
বার্ট এফ

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

সরল কোড ব্লকের জন্য পরীক্ষার
কেসটি

38

আমি বেশ কয়েকবার ইউনিট টেস্টিংয়ের সাথে কথা বলেছি এবং এখনও আমার দৃ .় বিশ্বাস রয়েছে যে আমার পরিস্থিতি বিবেচনা করে এটি চেষ্টা করা সার্থক।

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

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

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


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

4
পরীক্ষা সুখ সম্পর্কে। আমার কাছে একটি 3900-লাইনের প্যাকেজ (পিএল / এসকিউএল) রয়েছে যা সাধারণ খাত্তরের সিস্টেমে স্বয়ংক্রিয় পোস্টিংগুলি পরিচালনা করে। এখন, আমি ব্যক্তিগতভাবে অ্যাকাউন্টেন্টদের সাথে লেনদেন করতে ঘৃণা করি - তারা ভগ্নাংশের পেনিস এবং স্টাফের মতো ছোট জিনিস সম্পর্কে খুব পছন্দসই। বুঁচা পায়ুপথ-প্রতিরোধমূলক পাটিগণিত গিক্স ... আমি জানি না। অ্যাকাউন্টিং প্যাকেজের জন্য আমার ইউনিট পরীক্ষা প্যাকেজটি প্রায় 22000 লাইনের, এবং কেবল 18000 পরীক্ষার অধীনে চলে। এটি অ্যাকাউন্টিংয়ে হেড হানচোকে সকলকে খুশি রাখে এবং যতক্ষণ না তার ছোট বেনি-কাউন্টি-ক্যাপের প্রপেলারটি সুখে কাটছে, আমি খুশি ... :-)
বব জার্ভিস - মনিকা পুনরায়

31

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


26

প্রাথমিক বিনিয়োগটি ইউনিট-টেস্টিংয়ের পক্ষে ভাল। কয়েক বছর আগে ইউনিট-টেস্টিং ব্যবহার শুরু করার পরে, আমি কিছু বাস্তব সুবিধা পেয়েছি:

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

কোড স্নিপেটগুলি পরীক্ষার তৈরির ওভারহেড হ্রাস করতে একটি দুর্দান্ত সহায়তা হতে পারে। স্নিপেটগুলি তৈরি করা কঠিন নয় যা একটি শ্রেণীর রূপরেখা তৈরি করতে সক্ষম করে এবং সেকেন্ডে কোনও ইউনিট-পরীক্ষার সংযুক্তি তৈরি করে।


25

আপনার যতটা সম্ভব পরীক্ষা করা উচিত!

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

প্রায়শই আমি প্রচুর পরীক্ষাগুলি দেখতে পাই যা কখনই ভাঙবে না, বড় এবং আনাড়ি এবং প্রচুর মান দেয় না, তারা আপনাকে ধীর করে দেয়।


23

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


21

[আমার উপরে একটি বক্তব্য রয়েছে যা আমি উপরে দেখতে পাচ্ছি না]

"প্রত্যেকে ইউনিট পরীক্ষা করে, তারা অগত্যা তা উপলব্ধি করে না - সত্য"

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

এটি ইউনিট টেস্টিং - বেসিক এবং খারাপভাবে একসাথে রাখা তবে আপনি কয়েকটি ক্ষেত্রে কোডের টুকরোটি পরীক্ষা করেন।

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

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


16

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

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

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

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

রাতারাতি পরিবর্তনগুলি ঘটবে না, তবে কিছুটা ধৈর্য নিয়ে আপনি নিজের লক্ষ্য অর্জন করতে পারেন।


12

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


11

যদি আপনার বিদ্যমান কোড বেসটি ইউনিট পরীক্ষায় নিজেকে ndণ না দেয় এবং এটি ইতিমধ্যে উত্পাদিত হয়, তবে আপনি আপনার কোডের সমস্ত রিফ্যাক্টর চেষ্টা করে সমাধান করার চেয়ে আরও বেশি সমস্যা তৈরি করতে পারেন যাতে এটি ইউনিট-টেস্টেবল হয়।

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

আমার মনে এটির সর্বোত্তম উদাহরণ হ'ল গ্রিডভিউয়ের সাথে লিঙ্কিত একটি এএসপিএক্স পৃষ্ঠায় এম্বেড করা স্কেলডাটাআরেডার। কোডটি সবই এএসপিএক্স ফাইলে রয়েছে। এসকিউএল একটি সঞ্চিত পদ্ধতিতে রয়েছে। আপনি ইউনিট পরীক্ষা কি? পৃষ্ঠাটি যা করার কথা বলেছিল তা যদি করে তবে আপনার নিজের থেকে কিছু স্বয়ংক্রিয়রূপে থাকার জন্য সত্যিই কি এটি কয়েকটি স্তরে পুনরায় ডিজাইন করা উচিত?


10

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

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

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

সর্বশেষ পরামর্শের এক অংশটি হ'ল কেবল আপনার কোডটি ইউনিট পরীক্ষা না করা, তবে প্রথমে পরীক্ষা করা শুরু করুন (আরও টিডিডি এবং বিডিডি দেখুন)


8

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


7

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

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

সামনের দিকে সামান্য প্রস্তুতি নেওয়ার জন্য সামনের দিকে প্রস্তুতি নিন এবং মূল বৈশিষ্ট্যগুলি / কার্যকারিতা সহ যখন আপনাকে চারপাশে ডিকিং শুরু করতে হয় তখন এটি 10 ​​গুণ দেয়।

আমি এই বইটি কিনেছি - এটি এক্স ইউনিট পরীক্ষার জ্ঞানের একটি বাইবেল - এটি সম্ভবত আমার তাকের সর্বাধিক উল্লেখযোগ্য বইগুলির একটি, এবং আমি এটি প্রতিদিনই পরামর্শ করি: লিঙ্ক পাঠ্য


+1: তবে মানুষ ওহ মানুষ ওহ মানুষ, কিছুই নেই, এবং আমি বলতে চাইছি কিছুই বিকাশকারীকে ইউনিট পরীক্ষার সমৃদ্ধ সংখ্যার চেয়ে আরও আত্মবিশ্বাসের সাথে পরিবর্তনগুলি করার ক্ষমতা দেয়। - আসলেই সত্য. আমি আশা করি আমি তাড়াতাড়ি এটি বুঝতে পেরেছি।
জিম জি।

7

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

ইউনিট পরীক্ষা লেখার জন্য অল্প পরিমাণে সময় নেওয়া ভবিষ্যতের ডিবাগের কয়েক ঘন্টা বাঁচাতে পারে।


+1: ইউনিট পরীক্ষা লেখার জন্য অল্প পরিমাণ সময় নেওয়া ভবিষ্যতের ডিবাগের কয়েক ঘন্টা বাঁচাতে পারে। - হা!
জিম জি।

7

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

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


আপনি কি নতুন কোড বা ফিক্সগুলির জন্য ইউনিট পরীক্ষা যুক্ত করেন?
oɔɯǝɹ

6

ইউনিট টেস্টিং অবশ্যই চেষ্টা করা মূল্যবান। দুর্ভাগ্যক্রমে আপনি একটি কার্যকর (তবে দুর্ভাগ্যক্রমে সাধারণ) দৃশ্যাবলী বেছে নিয়েছেন যাতে এটি কার্যকর করা যায়।

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

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


6

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


6

আমি জানি না. অনেক জায়গাতে ইউনিট পরীক্ষা হয় না, তবে কোডের মানটি ভাল। মাইক্রোসফ্ট ইউনিট পরীক্ষা করে তবে বিল গেটস তার উপস্থাপনায় একটি নীল পর্দা দেয়।


নোট যে প্রায় 15 বছর আগে ছিল, যখন ইউনিট টেস্টিং আজকের মতো জনপ্রিয় ছিল না।
fwielstra

1
এবং ইন্টারনেট এক্সপ্লোরার এখনও অনেক ওয়েবপৃষ্ঠা সংরক্ষণ করতে ব্যর্থ।
সিস টিমারম্যান

5

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

"পরীক্ষার পরে" যাচাইকরণের দৃষ্টিকোণ থেকে ইউনিট টেস্টিংয়ের কথা বলার পরিবর্তে, আপনি যখন প্রয়োগের আগে কোনও নির্দিষ্ট / পরীক্ষা / ধারণা লিখতে শুরু করেন তখন আমাদের পাওয়া সত্যিকারের মূল্যটি দেখতে হবে।

এই সহজ ধারণাটি আমার সফ্টওয়্যারটি লেখার পদ্ধতি পরিবর্তন করেছে এবং আমি "পুরানো" পথে ফিরে যাব না।

পরীক্ষার প্রথম বিকাশ কীভাবে আমার জীবনকে বদলে দিয়েছে


1
+1 - এবং অবশ্যই অবশ্যই এটি অবশ্যই অবাক করে দেবে যে ব্লগ এন্ট্রিটি কতটা ট্রলকে আকর্ষণ করেছে (আপনার আগে এখানে পোস্ট করার আগে, যদি আমি ভুল না করি)।
জেফ স্টার্নাল

হা হাও রাজি হয়েছে :) </ reddit প্রথম পৃষ্ঠায় এটি মনে হচ্ছে>
তোরণ বিলুপস

3

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

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


3

আমি সম্প্রতি আমার কর্মক্ষেত্রে ঠিক একই অভিজ্ঞতার মধ্য দিয়ে গিয়েছি এবং তাদের বেশিরভাগই তাত্ত্বিক সুবিধাগুলি সম্পর্কে জানতাম তবে তাদের সুবিধার জন্য বিশেষত তাদের বিক্রি করতে হয়েছিল, তাই আমি যে বিষয়গুলি ব্যবহার করেছি (সফলভাবে):

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

এবং বড় ...

  • আপনার ইউনিট টেস্টিংয়ের দরকার পড়বে না, তবে যখন অন্য কেউ এসে সম্পূর্ণ বোঝা ছাড়াই কোডটি সংশোধন করে তখন তারা তাদের যে মূর্খ ভুল করতে পারে তার অনেকটা ধরা পড়তে পারে।

+1: • আপনার ইউনিট টেস্টিংয়ের প্রয়োজন নাও হতে পারে, তবে যখন অন্য কেউ এসে সম্পূর্ণ বোঝা ছাড়াই কোডটি সংশোধন করে তখন তারা তাদের যে মূর্খ ভুল করতে পারে তার অনেকটা ধরা পড়তে পারে। - হা. এবং সফ্টওয়্যার শিল্পে টার্নওভারের পরিমাণ দেওয়া, এটি একটি বিশাল সুবিধা।
জিম জি।

3

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

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

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


3

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

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

পরীক্ষাগুলি আপডেট করার সময় ব্যয় করা সময় যা নতুন বৈশিষ্ট্যগুলির কারণে ভঙ্গ হয়ে গেছে প্রতিবার আপনি সংগ্রহশালা থেকে আপডেট করবেন না উত্পাদনশীল বা মজাদার নয়।


2

আপনি যদি NUnit ব্যবহার করছেন তবে একটি সাধারণ তবে কার্যকর ডেমো হ'ল তাদের সামনে NUnit এর নিজস্ব পরীক্ষা স্যুট (গুলি) চালানো। কোডবেসকে একটি ওয়ার্কআউট দেওয়ার আসল পরীক্ষার স্যুটটি হাজার শব্দের জন্য মূল্যবান ...


2

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


2

ইউনিট টেস্ট স্যুট দিয়ে বাকী বৈশিষ্ট্যগুলি অক্ষত রেখে কেউ কোড পরিবর্তন করতে পারে। এটি একটি দুর্দান্ত সুবিধা। আপনি যখন নতুন বৈশিষ্ট্য কোডিংয়ের কাজ শেষ করেন তখন কি আপনি ইউনিট পরীক্ষা স্যুটি এবং রিগ্রেশন টেস্ট স্যুট ব্যবহার করেন?


2

আমি এখানে সংখ্যাগরিষ্ঠের বিপরীতে দৃষ্টিভঙ্গির সাথে একমত: ইউনিট টেস্টগুলি লেখার জন্য এটি ঠিক নয় বিশেষত প্রোটোটাইপ-ভারী প্রোগ্রামিং (উদাহরণস্বরূপ) ইউনিট পরীক্ষার সাথে একত্রিত করা শক্ত।

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