ক্রস-ভাষা পরীক্ষা-চালিত বিকাশ


9

সংক্ষিপ্ত প্রশ্ন: একাধিক ভাষায় বিস্তৃত এমন একটি প্রকল্পে আপনি কীভাবে টেস্ট-চালিত বিকাশকে অনুসরণ করবেন?

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

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

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


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

উত্তর:


9

এক রানে উভয় উপাদানকে ইউনিট পরীক্ষার জন্য কী কৌশল আছে?

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

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


3

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

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

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

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

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

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


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

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

1

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

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

চাচা বব আমার থেকে ভাল এই উপায় ব্যাখ্যা। https://blog.8thlight.com/uncle-bob/2014/04/30/When-tdd-does-not-work.html

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