টিডিডি ব্যবহার করে জটিল কোডের ভাল উদাহরণ [বন্ধ]


37

বড়, বাস্তবজীবন, জটিল, প্রকল্পগুলিতে টিডিডি ব্যবহারের একটি উত্তম উদাহরণ কী হবে? আমি এখন পর্যন্ত যে সমস্ত উদাহরণ দেখেছি তা হ'ল একটি বই বা কাগজের উদ্দেশ্যে খেলনা প্রকল্পগুলি ...

আপনি কি এমন কোনও ওপেন-সোর্স প্রকল্পের নাম রাখতে পারেন যা ভারী টিডিডি ব্যবহার করে? সাধারণত সি ++ তে তবে আমি জাভা এবং সি # বা অন্যান্য অনুরূপ ভাষা পড়তে পারি।


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

আমি একটি ভাল উত্তর খুঁজে পেতে খুব আগ্রহী হওয়ার কারণগুলির একটি অংশ হ'ল আমি বর্তমানে একটি সি ++ ইঞ্জিন এবং জাভা জিইউআই সহ একটি ডেস্কটপ অ্যাপ্লিকেশনটিতে কাজ করছি ...
জাভেয়ের নোডেট

উত্তর:


19
  • JUnit 100% পরীক্ষিত চালিত developed প্রকৃতপক্ষে, এটি ইউএনইটিতে 100% পরীক্ষা-চালিত দ্বারা বিকশিত হয়েছিল , যা কেন্ট বেক বলেছে যে বেশ কয়েকবার সত্যিকারের মনস্থির অনুশীলন ছিল।
  • আমি বিশ্বাস করি যে সানের জেডএফএস ফাইল সিস্টেমটি পরীক্ষা-চালিত।
  • জন্য ikj অনুবাদক Ioke নিজেই ভাষা প্রোগ্রামিং ভাষা (জেভিএম), Ioke প্রোগ্রামিং ভাষা (CLI) দ্বারা, সমগ্র Ioke কোর এবং স্ট্যান্ডার্ড লাইব্রেরির জন্য ikc ব্যাখ্যাকারী, এবং আসলে উন্নত ছিল 100% পরীক্ষা চালিত (আসলে আচরণ চালিত )।

ডুনিট - ডেলফির জন্য পরীক্ষার কাঠামো, ডিউনিট নিজেই পরীক্ষার সম্পূর্ণ স্যুট সহ আসে। এবং আমি কেন্টের সাথে একমত, এটি কিছুটা বাঁকানো। ;-)
নিক হোজস

14

SQLite। তাদের সমস্ত কোড খুব, খুব ভারী পরীক্ষিত :

সংস্করণ ৩.7.১৪ অনুসারে, এসকিউএল লাইব্রেরিতে সি কোডের প্রায় ৮১.৩ কেএসলকি রয়েছে। (কেএসএলকে হাজার হাজার "কোডের সোর্স লাইন" বা, অন্য কথায়, ফাঁকা লাইন এবং মন্তব্যগুলি বাদ দিয়ে কোডের লাইন)


1
বাহ, তাদের অনেক পরীক্ষা আছে: |
লুকা ম্যাটেইস

8
ভারী পরীক্ষিত হওয়ার অর্থ এই নয় যে এটি একটি পরীক্ষা-চালিত (টিডিডি) পদ্ধতিতে তৈরি করা হয়েছিল। এটা ছিল? (আমি পুরো পৃষ্ঠাটি পড়িনি, তবে পৃষ্ঠার অনুসন্ধানগুলিতে আমি "টিডিডি" বা "চালিত"
কোনওটিই

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

9

যদি আমি মনে করি ফিটনেস টিডিডি দিয়ে লেখা আছে, এবং প্রকল্পটির মূল অবদানকারী চাচা বব মার্টিন, তাই সম্ভবত এটি সম্ভবত পরিষ্কার কোড


আমি এটা কটাক্ষপাত ছিল, এবং এটি হল সত্যিই পরিষ্কার কোড।
রবার্ট হার্ভে

3

মাইক্রোসফ্টে পিঅ্যান্ডপি টিমের সাথে আমার আলোচনা থেকে, এন্টারপ্রাইজ লাইব্রেরিটি টিডিডি দিয়ে লেখা হয়েছিল।


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

@ রবার্ট - তারা আমাকে যা বলেছিল তা আমি কেবল আপনাকেই বলতে পারি ... এটি লেখার সময় তারা টিডিডি ব্যবহার করেছিল।
ওয়াল্টার

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

1
@ জেফ: এটি স্পষ্ট করার জন্য ধন্যবাদ। আমি মনে করি যেভাবে টিডিডি ব্যাখ্যা করা হয় (হ্রাসকারী, যান্ত্রিক পদ্ধতিতে), এবং বাস্তবে যেভাবে বাস্তবে বাস্তবে ব্যবহৃত হয় তার মধ্যে কিছু পার্থক্য রয়েছে।
রবার্ট হার্ভে

3

আমি টিডিডি ব্যবহার করে এমন কোনও ওপেন সোর্স প্রকল্পের নাম রাখতে পারি না, তবে আমি আপনাকে বলতে পারি যে আমি বাস্তব-বিশ্ব প্রকল্পে কাজ করেছি যেখানে টিডিডি ব্যবহৃত হয়েছিল ... এবং জীবনকাল ছিল!


1
আপনি - বা অন্যরা - এই অভিজ্ঞতাগুলি ভাগ করেছেন? একটি ভাল যুদ্ধ গল্প মত শোনাচ্ছে।

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

আমি তোমাকে বিশ্বাস করি. আমি শুধু গল্প শুনতে পছন্দ করি। আপনি কুইকচেকটি আকর্ষণীয় খুঁজে পেতে পারেন - en.wikedia.org/wiki/QuickCheck - আমি একটি উপস্থাপনা দেখেছি যা 15 বছরের পুরানো প্রোডাকশন কোডে মাল্টিথ্রেডিং বাগ খুঁজে পেয়েছে।

"কারণ ম্যানুয়াল পরীক্ষকগণ প্রতিটি ক্রিয়াকলাপের পরে ডাটাবেস অখণ্ডতা পরীক্ষা করে না" - সীমাবদ্ধতা এবং একটি ভাল ডিজাইনের ডিবি স্কিমা আরও বেশি শিলা করে এবং আপনি তত্ক্ষণাত ত্রুটিটি দেখেছেন বলে একটি দিন পরীক্ষায় ব্যয় করার বিরক্তিতে আপনাকে এতটা বাঁচিয়ে দিতেন you' ।
gbjbaanb

@gbjbaanb: এক্ষেত্রে, 'চেক' সরল স্কিমা অখণ্ডতার চেয়ে অনেক জটিল ছিল, এ কারণেই এটির জন্য একটি স্বয়ংক্রিয় পরীক্ষা আছে
স্টিভেন এ। লোয়ে

0

টিডিডিতে সম্পূর্ণরূপে করা আমার প্রথম প্রকল্পটি ২০০২ সালে একটি মুক্ত উত্স ছিল You আপনি এখনও এটি এখানে পেতে পারেন:

http://sourceforge.net/projects/camelos/

এখন কর্মক্ষেত্রে আমি বেশিরভাগ টিডিডিতে কাজ করি তবে আমাদের দলের সবাই তা করেন না, দিন শেষে পরীক্ষাগুলি লেখার ব্যবস্থা করা ভাল provided

মূল অংশটির জন্য টিডিডি ব্যবহার করে আমরা একটি সম্পূর্ণ gwt-gee অ্যাপ্লিকেশনও লিখেছি। http://netnumero.appengine.com/company/mycompany

আমি এই কোডটি প্রকাশ করতে পারি না তবে আমি জিডাব্লুটিটির জন্য টিডিডিতে সম্পন্ন একটি সম্পূর্ণ উদাহরণ প্রকল্পে কাজ করছি, এটি ইউআইতেও টিডিডি ব্যবহার করছে।

যত তাড়াতাড়ি আমি শেষ করব (ক্রিসমাসের ছুটিগুলি) আমি এটি এখানে পোস্ট করব https://github.com/ubertob/gwt-tdd-example

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