টিডিডি: প্রথম ইউনিট পরীক্ষার আগে কী ঘটে?


17

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

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

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


5
আমি নাট প্রাইস এবং স্টিভ ফ্রিম্যানের জিওএস বইটি পুঙ্খানুপুঙ্খভাবে পড়ার পরামর্শ দিচ্ছি ... কার্যকারিতার একটি 'পাতলা টুকরো' দিয়ে শেষ-শেষের পরীক্ষাটি পাস করার বিষয়ে দুর্দান্ত তথ্য রয়েছে।
ফাঁকা

উত্তর:


6

আমি বৈশিষ্ট্যগুলির একটি তালিকা দিয়ে শুরু করতে চাই এবং প্রতিটি বৈশিষ্ট্যের জন্য ব্যবহারকারীর গল্প লিখি, তারপরে প্রতিটি গল্পের জন্য পরীক্ষার বিবরণ লিখি।

কিছুক্ষণের জন্য নকশাটি সম্পর্কে ভাবুন, তারপরে একটি পরীক্ষার বিবরণ চয়ন করুন এবং কোডিং শুরু করুন: লাল-সবুজ-রিফ্যাক্টর।

সমস্ত পরীক্ষা পাস না হওয়া পর্যন্ত পুনরাবৃত্তি করুন।

হ্যাঁ, গ্রহণযোগ্যতা পরীক্ষাগুলি যথাযথ কাহিনীর সাথে যুক্ত এটির অংশ হিসাবে বিবেচনা করা উচিত।


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

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

18

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

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

আমি আমাদের পরিবারকে ছোট ছোট কাজগুলি পরিচালনা করতে সহায়তা করতে একটি অ্যাপ্লিকেশন লিখতে চাই।

কুল। যদি সেই অ্যাপটি কাজ করে, তবে এটি কী করবে? ঠিক আছে, কোনও কাজ কোনও ব্যক্তিকে দেওয়া যেতে পারে, তাই না?

Person fred = new Person("fred")
Chore mow = new Chore("mow the lawn");
mow.assignTo(fred);
assertEquals(fred, mow.whoIsAssigned());

একটা শুরু আছে। আপনার যে জায়গাটি শুরু করতে হবে তা নয়, শুরু করার জন্য সেরা জায়গাটি নয় - তবে এটি একটি জায়গা। এটি এমন কিছু যা আপনি আপনার কোডকে সমর্থন করতে চান (যদিও আমি নিশ্চিত আপনি আরও ভাল নাম নিয়ে আসতে পারেন)। সেখানে শুরু করুন, দেখুন এটি ব্যর্থ। এটি পাস করুন। এটা পরিষ্কার. হালকা, ধুয়ে ফেলা, পুনরাবৃত্তি।


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

5
এখানে কোন সামনে আপ নকশা আছে। পরীক্ষায় কোন শ্রেণীর এখনও উপস্থিত থাকার প্রয়োজন নেই। নকশা পরীক্ষায় ঘটে, তখন সেগুলি পরীক্ষার পাস করার জন্য তৈরি করা হয়।
Torbjørn

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

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

1
এটি একটি দলে কীভাবে কাজ করে তা বড় এবং ভিন্ন প্রশ্ন। এবং টিডিডি নিজেই দলের কাজের সমন্বয় সম্পর্কে অনেক কিছুই বলার নেই। জুড়ি প্রোগ্রামিং এবং পরিকল্পনা গেমটি এতে সহায়তা করতে পারে; আপনি যা পরিকল্পনা করেছেন তার প্রসঙ্গে, টিডিডি এখনও প্রয়োগ করে। jamesshore.com/Agile-Book/t__lanna_game.html স্ক্রামেরও একটি দলের কাজের পরিকল্পনা কীভাবে করা যায় সে সম্পর্কে কিছু বলতে হবে।
কার্ল ম্যানাস্টার

5

হ্যাঁ, টিডিডির এই সমস্যা আছে। এজন্য আমি এখন আচরণের চালিত বিকাশের প্রস্তাব দিই।

ম্যানুয়ালি শুরু করুন। ব্যবহারকারীর গল্পের অনুরূপ কিছু লিখুন:

  • ব্যবহারকারী হিসাবে
  • আমি যখন শপিং কার্টে যুক্ত নির্বাচন করি তখন আমি পণ্যটি পটভূমিতে স্বচ্ছভাবে যুক্ত হতে চাই
  • যাতে আমি আমার শপিংয়ের অভিজ্ঞতাটি নিরবচ্ছিন্নভাবে চালিয়ে যেতে পারি

এখন সেই বৈশিষ্ট্যগুলি কী কী সেই লক্ষ্যটিকে সমর্থন করে ('তাই' অংশ)?

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

এগুলি আপনি যা করতে পারেন তা হ'ল এবং ম্যানুয়ালি পরীক্ষা করা উচিত।

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

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

রুবিতে অটোমেশন পরীক্ষার জন্য শসা এবং নিম্ন-স্তরের এপিআই পরীক্ষার জন্য আরএসপেক রয়েছে

জাভাস্ক্রিপ্টে জুঁই এবং কিউনিট রয়েছে।

ডট ডট ডট



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

আমি বিডিডি পছন্দ করি এবং স্টোরকিউ ব্যবহার করি। কাহিনীটি দেওয়া / যখন / তারপরে সেনেরিয়োতে ​​প্রসারিত করা যায় তা উল্লেখ করতে ভুলবেন না। প্রদত্ত কিছু জিনিস ঘটেছে যখন আমি এটি করি এবং এটি তখন আমি এটি এবং এটি প্রত্যাশা করি। টেকএইড চ্যানেল 9.msdn.com/Events/TechEd/NorthAmerica/2010/DPR302 এ সম্পর্কে ডেভিড স্টারের আলোচনাটি দেখুন এবং আপনি যদি নেট নেট .q.odeplex.com
তে

3

আমি এই ধারণা থেকে আমার প্রথম পরীক্ষায় যাব কীভাবে? আমি শুরুর আগে কতটা সিদ্ধান্ত নেওয়া উচিত এবং আমি পরীক্ষাগুলি লেখার পরে আর কতটা বের করব?

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

তারপরে গল্পটিকে কিছু কাজ করে ফেলুন। (উদাহরণস্বরূপ Eclipse এ একটি প্রকল্প তৈরি করুন, একটি কোড ভান্ডার সেট আপ করুন) আপনি যখন কোনও কোডিং টাস্কে পৌঁছান, আপনার প্রথম পরীক্ষাটি লিখুন।

আমি কখন কোনও পাঠ্য ফাইল বা একটি ডাটাবেসে ডেটা সঞ্চয় করতে হবে সে বিষয়ে সিদ্ধান্ত নেব?

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


3

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

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


0

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

ধুয়ে ফেলুন, পুনরাবৃত্তি করুন ইত্যাদি

আমার জন্য, এটি কীভাবে আপনি এটি গুরুত্বপূর্ণভাবে পরীক্ষা করতে পারবেন তা আপনার চিন্তাভাবনা এবং এটিই আপনার নকশাটিকে চালিত করতে পারে।

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