কম্পিউটার টিউটোরিয়াল

বিহেভিয়ার ড্রাইভেন ফ্রেমওয়ার্ক ব্যাখ্যা


বিহেভিয়ার ড্রাইভেন ফ্রেমওয়ার্ক প্রজেক্টের সব স্টেকহোল্ডার (ডেভেলপার, টেস্টার, প্রোডাক্ট ওনার, ম্যানেজার, কাস্টমার, বিজনেস অ্যানালিস্ট) থেকে ইনপুট নেয়। উদ্দেশ্য হলো প্রজেক্টের সব সদস্যকে একই বোঝাপড়ায় আনা।

বিহেভিয়ার ড্রাইভেন ফ্রেমওয়ার্ক টিমের সবার মধ্যে সহযোগিতা এবং সমন্বয়ের ওপর কাজ করে। টেকনিক্যাল কোডিং নলেজ প্রয়োজন নেই কারণ ফাংশনাল রিকোয়ারমেন্ট বা স্পেসিফিকেশন গैर-টেকনিক্যাল, সাধারণ ভাষায় বর্ণনা করা হয়।

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

BDD-এর প্রাইমারি ফোকাস অ্যাপ্লিকেশনের বিহেভিয়ার এবং প্রকৃতি অর্জন, কেবল ইমপ্লিমেন্টেশন এসপেক্টে জোর দেয়া নয়।

বিহেভিয়ার ড্রাইভেন ফ্রেমওয়ার্কের কিছু সুবিধা নিচে দেওয়া হলো -

  • সঠিক রিভিউ এবং ফিডব্যাক - যেহেতু টেস্ট কেস নন-টেকনিক্যাল ভাষায় লেখা হয়, বিজনেস অ্যানালিস্ট সক্রিয়ভাবে অংশ নিতে পারে এবং টেস্ট কেসের কোয়ালিটি ও কভারেজে ফিডব্যাক দিতে পারে।

  • বিহেভিয়ার ড্রাইভেন ফ্রেমওয়ার্ক ডেভেলপমেন্ট এবং টেকনিক্যাল ইমপ্লিমেন্টেশনের চেয়ে বিজনেস ইমপ্যাক্টের সাথে বেশি অ্যালাইন থাকে।

  • ডেভেলপার, QA, প্রোডাক্ট ওনার এবং কাস্টমারের মধ্যে শক্তিশালী সম্পর্ক সৃষ্টি করে, ফলে সহযোগিতা ও সমন্বয় বেড়ে।

  • বিহেভিয়ার ড্রাইভেন টেস্টিং-এ অনেক রিযুজেবল ফিচার থাকে, তাই রক্ষণাবেক্ষণ সহজ।

অতএব BDD প্রসেসটি নিচের মত করে প্রদর্শন করা যায় -

  • অ্যাপ্লিকেশনের প্রকৃতি সাদা ইংরেজিতে বর্ণনা করা হয়।

  • প্রকৃতি বর্ণনার উপর ভিত্তি করে টেস্ট স্ক্রিপ্ট ডেভেলপ করা হয়।

  • তারপর বিহেভিয়ার অনুযায়ী অ্যাপ্লিকেশন কোড ডেভেলপ করা হয়।

  • নতুন ডেভেলপড কোডে অটোমেটেড স্ক্রিপ্ট এক্সিকিউট করা হয়।

  • টেস্ট এক্সিকিউশনের রেজাল্ট АНালাইসিস করা হয়।

  • যদি টেস্ট স্ক্রিপ্ট পাস না করে, কোডে এরর ফিক্স করা হয়।

  • সব টেস্ট স্ক্রিপ্ট পাস করলে কোড রিফ্যাক্টর করা হয় কোয়ালিটি নিশ্চিত করতে।

Given When Then টার্মিনোলজি টেস্ট কেস ডিজাইন করার সময় ব্যবহৃত হয়।

Cucumber হলো বিহেভিয়ার ড্রাইভেন টেস্টিং ফ্রেমওয়ার্কের টুল।


  1. জাভাস্ক্রিপ্টে শর্টহ্যান্ড (Arrow) ফাংশন ব্যাখ্যা

  2. জাভাস্ক্রিপ্টে for...in স্টেটমেন্ট ব্যাখ্যা

  3. জাভাস্ক্রিপ্টে অবজেক্ট সমতা ব্যাখ্যা

  4. React Native-এ SwitchSelector কম্পোনেন্ট ব্যবহার করা