টেস্ট-চালিত বিকাশ প্রক্রিয়াতে একটি সফ্টওয়্যার আর্কিটেক্টের ভূমিকা কী?


10

আমি যেমন এটি বুঝতে পেরেছি, টেস্ট-চালিত বিকাশ প্রোগ্রামের স্পেসিফিকেশনগুলি সংজ্ঞায়িত করতে পরীক্ষা লেখার বিষয়ে (আমি ভুল হলে আপনি আমাকে সংশোধন করতে পারেন)।

সফ্টওয়্যারটির জন্য স্পেসিফিকেশনগুলি (একটি পাবলিক এপিআই সহ) লেখার জন্য যদি কেউ দায়বদ্ধ থাকেন (আসুন আমরা তাকে সফটওয়্যার আর্কিটেক্ট বলি) তার মানে কি এই যে সফ্টওয়্যার আর্কিটেক্টের অবশ্যই সমস্ত পরীক্ষা লিখতে হবে?

বা সফ্টওয়্যার আর্কিটেক্ট স্পেসিফিকেশনগুলি লিখে এবং তারপরে পরীক্ষাগুলি লেখার জন্য সেগুলি বিকাশকারীদের হাতে দেয়?

বা আপনি কি সমস্ত বিকাশকারীকে তাদের নিজস্ব পরীক্ষা লেখার অনুমতি দিয়ে এবং কোনও সফ্টওয়্যার আর্কিটেক্টের কথা ভুলে যাওয়ার মাধ্যমে স্পেসিফিকেশনগুলিকে জৈবিকভাবে বাড়তে দিয়েছিলেন?


- আছে দ্বারা "সংগঠিত হত্তয়া" আপনি কি বলতে চাইছেন উপর english.se উপর কিছু বিতর্ক english.stackexchange.com/questions/17853/... - ব্যাপারে নিশ্চিত করতে চান :)
JoseK

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

উত্তর:


5
টেস্ট-চালিত বিকাশ প্রোগ্রামের স্পেসিফিকেশনগুলি সংজ্ঞায়িত করতে পরীক্ষা লেখার বিষয়ে

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

পর্যালোচনা করতে, সংক্ষেপে টিডিডি প্রক্রিয়াটি হ'ল:

  • বৈশিষ্ট্যের ক্ষেত্রে একটি প্রকল্প সংজ্ঞায়িত করুন
  • ব্যবহারকারী গল্পগুলি ব্যবহার করে প্রতিটি বৈশিষ্ট্যের স্টেকহোল্ডার, আচরণ এবং লক্ষ্য বর্ণনা করুন
  • পরীক্ষামূলক বিবরণ ব্যবহার করে একটি ব্যবহারকারী গল্পের সাথে সম্পর্কিত প্রত্যাশিত প্রদত্ত ঘটনা, শর্তাবলী এবং আচরণ / ফলাফলগুলি নির্দিষ্ট করুন [এবং এটি 'স্পেসিফিকেশন' সম্পূর্ণ করে]
  • প্রতিটি পুনরাবৃত্তির জন্য বৈশিষ্ট্যগুলির একটি সেট চয়ন করুন; পুনরাবৃত্তিগুলি সংক্ষিপ্ত হওয়া উচিত [আমি বংশবৃদ্ধির জন্য পরিকল্পনা এবং অনুমানের পদক্ষেপগুলি বাদ দিচ্ছি]
    • কোনও বৈশিষ্ট্যের জন্য একটি পরীক্ষা কোড করুন (এটি ব্যর্থ হবে, তবে আপনাকে পরীক্ষার কোড করার জন্য এপিআই সিদ্ধান্ত নিতে হয়েছিল)
    • বৈশিষ্ট্যটি পর্যাপ্ত পরিমাণে প্রয়োগ করুন যাতে পরীক্ষাটি পাস হয়
    • প্রয়োজনে কোডটি রিফ্যাক্টর করুন
    • বৈশিষ্ট্যটি শেষ না হওয়া পর্যন্ত পরবর্তী পরীক্ষার সাথে পুনরাবৃত্তি করুন
    • পুনরাবৃত্তি সম্পন্ন না হওয়া পর্যন্ত পরবর্তী বৈশিষ্ট্যটির সাথে পুনরাবৃত্তি করুন
  • প্রকল্পটি শেষ না হওয়া পর্যন্ত পরবর্তী পুনরাবৃত্তির সাথে পুনরাবৃত্তি করুন

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

নোট করুন যে বিষয়টি গ্রাহক এবং বিকাশকারীদের বৈশিষ্ট্যগুলি নিয়ে আসে এবং পারস্পরিক বোঝাপড়ার জন্য গল্পগুলি এবং পরীক্ষার বিবরণগুলি এক সাথে লেখার জন্য

সুতরাং, উপায় ছাড়াই, আসল প্রশ্নটি ছিল:

টিডিডিতে সফটওয়্যার আর্কিটেক্টের ভূমিকা কী?

এবং সংক্ষিপ্ত উত্তরটি হ'ল:

এটি যেমন ছিল ঠিক তেমনই আগের মতো ছিল। - ডেভিড বায়ার্ন


সম্পাদনা: দীর্ঘ উত্তরটি: পুরো প্রক্রিয়া চলাকালীন স্থপতি যথাযথ দূরদর্শী / তদন্তকারী / খিটখিটে / সমর্থন / ব্যাকস্টপ ভূমিকা পালন করেন, প্রয়োজনীয় হিসাবে।

সম্পাদনা 2: দুঃখিত আমি সাব প্রশ্নগুলির বিন্দুটি মিস করেছি! স্পেসিফিকেশন লেখার জন্য প্রত্যেকে দায়ী; আর্কিটেক্ট সহ সমস্ত বিকাশকারী যদি / যখন উপযুক্ত প্লাস হয় । বিকাশকারীরা পরীক্ষার কোডও দেয় code


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

@ রবার্ট হুঁ ... ভাল প্রশ্ন! প্রযুক্তিগতভাবে অন্যান্য গুলি এক্সপি হবে; আমি একই সাথে এক্সপি এবং টিডিডি শিখেছি এবং সেগুলি আলাদা করার কথা কখনও ভাবিনি। এখন অবধি ;-)
স্টিভেন এ লো লো

@ রবার্ট কিছু রিফ্রেশ রিডিং করেছিলেন; দেখতে সম্পাদনাগুলি (অবগতির জন্য ব্যবহার এক্সপি সুত্র extremeprogramming.org এবং TDD- এ সুত্র agiledata.org/essays/tdd.html#WhatIsTDD )
স্টিভেন উ লো

হুম, আপনি টিডিডির জন্য সরবরাহ করেছেন সেই লিঙ্কটি বলে যে টিডিডি আসলেই টেস্ট-চালিত ডিজাইন। আমি যেখানে ফিরে এসেছি এখন ফিরে এসেছি। " চলমান কোডটি সিদ্ধান্তের মধ্যে প্রতিক্রিয়া সরবরাহ করে আপনি জৈবিকভাবে ডিজাইন করেন।"
রবার্ট হার্ভে

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

1

সফ্টওয়্যার আর্কিটেক্ট সমস্ত পরীক্ষা লিখছে না। এটি আমার মনে এক ব্যক্তির কাঁধে খুব বেশি চাপ দেওয়া হবে।

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

অবশ্যই এমন ঘটনা ঘটতে পারে যেখানে কোনও দল কোনও সফ্টওয়্যার আর্কিটেক্ট না রাখার সিদ্ধান্ত নিতে পারে তবে এপিআই এবং কোম্পানির স্কেলের উপর নির্ভর করে এটি একটি ভাল ধারণা হতে পারে বা নাও পারে।

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