প্রাকৃতিক ভাষাগুলি অস্পষ্ট হলে আচরণের চালিত বিকাশ কীভাবে স্বচ্ছতার উন্নতি করে?


9

আমি বর্তমানে শসার মতো বিডিডি পরীক্ষার ফ্রেমওয়ার্কগুলি অন্বেষণ করছি এবং লোকেরা যখন বলবে তখন আমি এটি কৌতূহলী বোধ করি

যেহেতু বৈশিষ্ট্যগুলি ফাইলগুলি সাধারণ প্রাকৃতিক ভাষায় থাকে এটি স্পষ্টতাকে উন্নত করে এবং একটি পরিষ্কার দৃষ্টি দেয়

তবে, সফ্টওয়্যার ইঞ্জিনিয়ারিংয়ে আমাদের যে সমস্যার মধ্যে সবচেয়ে বেশি সমস্যা রয়েছে তার কারণ কি প্রাকৃতিক ভাষা নয়?

প্রাকৃতিক ভাষা অস্পষ্ট এবং এ কারণেই ক্লায়েন্টদের প্রয়োজনীয়তা এবং বিকাশকারীদের বোঝার ভুল ব্যাখ্যা দেওয়ার কারণে অনেকগুলি সফ্টওয়্যার প্রকল্প ব্যর্থ হয়। আমি কুলুঙ্গি এখানে পাবেন না।

হ্যাঁ, পরীক্ষাগুলিকে ক্ষুদ্রতর সাধারণ করণীয় কর্মে ভাগ করে নেওয়া অর্থবোধ করে এবং একটি নির্দিষ্ট স্তরের স্পষ্টতা দেয় তবে এটি কি পুরোপুরি উত্পাদনশীলতার উন্নতি করে?

পিএস: আমি বিশেষজ্ঞ নই এবং আমি এখানে কোনও মতামত দিচ্ছি না। আমি ধারণাটি বুঝতে আগ্রহী মাত্র।


1
খুব ভাল প্রশ্ন। আমার অবশ্যই বলতে হবে যে আমি কখনই শসাটিকে বাস্তবে কাজের প্রস্তাব দেয় এমন জিনিস কখনও দেখিনি। প্রাকৃতিক ভাষা সুনির্দিষ্ট প্রযুক্তিগত কাজের জন্য যেমন পরীক্ষাগুলি নির্দিষ্ট করে দেওয়া উপযুক্ত নয়।
অ্যান্ড্রেস এফ।

বিডিডির ভাষার ব্যবহারটি ব্যবসায়ের ডোমেনের বিদ্যমান ভাষাটি প্রতিফলিত করার উদ্দেশ্যে তৈরি করা হয়েছে, যা ইতিমধ্যে ব্যবসায়ের পক্ষে উদ্বিগ্ন হওয়া উচিত। উইকিপিডিয়া নিবন্ধটি পাঠ্যের শুরুতে উল্লেখ করেছে।
মার্টিন স্প্যামার

উত্তর:


8

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

এখন বিডিডি কেন এই সমস্যাটি সমাধান না করে সার্থক? কিছু কারণ রয়েছে এবং এই তালিকাটি অবশ্যই সম্পূর্ণ নয়।

অস্পষ্টতা সমাধান করা হয়নি

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

প্রযুক্তিগতভাবে, ভাষা অস্পষ্টতার সমস্যা লোজবানের মতো কৃত্রিম ভাষার সাথে সমাধান করা হয়েছে তবে তারপরে আবার আপনার গ্রাহক এবং বিকাশকারীরা সম্ভবত ভাষাটি জানেন না know

সর্বব্যাপী ভাষা

বিডিডি সর্বব্যাপী ভাষার ধারণার সাথে একসাথে যায়। সমস্ত গ্রাহক, পরীক্ষক এবং বিকাশকারীদের সাথে একত্রে পরিস্থিতি নির্দিষ্ট করতে সক্ষম হওয়ায়, অন্যান্য পদ্ধতির তুলনায় বিডিডিকে কেবল একটি প্রান্ত দেয়।

সমস্ত প্রয়োজনীয়তা লিখতে একটি traditionalতিহ্যগত প্রয়োজনীয়তা প্রকৌশলী বিবেচনা করুন। একবার আপনি পরীক্ষক বা গ্রাহক হয়ে গেলে পুনরায় পর্যালোচনা করার জন্য প্রয়োজনীয় 300 পৃষ্ঠার ডকুমেন্টটি পেয়ে গেলে আপনার সেখানে ব্যবহৃত টার্মিনোলজির চেয়ে অনেক বেশি চাপের সমস্যা হবে।

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

Testability

বিডিডির একটি প্রধান দিক হ'ল আপনার স্পেসিফিকেশনগুলি আসলে এক্সিকিউটেবল (শসা বা এর মতো)। প্রয়োজনীয়তা বা ব্যবহারকারীর গল্পগুলি এই বৈশিষ্ট্যটি সরবরাহ করে না। আমার কাছে ব্যক্তিগতভাবে, এটি বিডির মূল বিক্রয় কেন্দ্র।

প্রচলিত প্রয়োজনীয়তার সাথে এটির বৈসাদৃশ্য করুন - আমরা বয়সের জন্য প্রয়োজনীয় ইঞ্জিনিয়ারদের বলছি যে তাদের প্রয়োজনীয়তা পরীক্ষাযোগ্য। তবুও, প্রতিটি প্রকল্প একটি কেস দেখে যেখানে কোথাও লাইন পরীক্ষকরা বুঝতে পারেন যে কোনও নির্দিষ্ট প্রয়োজনীয়তা পরীক্ষা করতে তাদের কোনও ধারণা নেই।

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

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

আরও সাধারণভাবে, টেস্ট ফার্স্ট এমন একটি নীতি যা সফ্টওয়্যার বিকাশের সমস্ত পর্যায়ে খুব পুরস্কৃত হয়েছে এবং বিডিডি এটি বিকাশের বাইরেরতম স্তরের (ইউনিট স্তরের f.ex. টিডিডি তুলনায়) এর প্রয়োগ application

সারসংক্ষেপ

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


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

4

যখন "প্রাকৃতিক ভাষায়" কিছু লেখা হয় তখন এর অর্থ অনেকগুলি বিষয় হতে পারে:

  • এটি আক্ষরিকভাবে ইংরেজি। যেহেতু ইংরেজি একটি অত্যন্ত দ্ব্যর্থক এবং দ্ব্যর্থহীন ভাষা, তাই এই ইনপুট মোডটি সফ্টওয়্যার বিকাশের প্রসঙ্গে অসন্তুষ্ট।

  • এটি ইংরেজী, তবে প্রাসঙ্গিক পদগুলি স্পষ্টভাবে সংজ্ঞায়িত। এই জাতীয় ভাষা আইনী নথি বা গাণিতিক পাঠ্যে ব্যবহৃত হয়।

  • এটি একটি আনুষ্ঠানিক ভাষা, তবে ভাষাটি প্রাকৃতিক ভাষার সম্মেলনের পরে খুব কাছাকাছিভাবে মডেল করা হয়। এটি কিছু প্রোগ্রাম পর্যন্ত সমস্ত প্রোগ্রামিং ভাষা বর্ণনা করে। ইংরেজির মতো আনুষ্ঠানিক ভাষা যতটা সহজ, প্রশিক্ষণহীন পাঠকদের পক্ষে এটি বোঝা তত সহজ। এই লক্ষ্য সহ প্রোগ্রামিং ভাষার উল্লেখযোগ্য উদাহরণগুলির মধ্যে রয়েছে সিওবিওএল এবং এসকিউএল: select id, name from persons where age > 18অবিলম্বে সুস্পষ্ট। এই ভাষার অসুবিধা হ'ল কার্য কোড লেখার জন্য আপনার আনুষ্ঠানিক ভাষা বুঝতে হবে । এছাড়াও, এই ভাষাগুলি প্রায়শই খুব ভার্জোজ থাকে।

ডিডিডি পরামর্শ দেয় যে প্রকল্পটি ডোমেনটির বর্ণনা দিতে সর্বব্যাপী ভাষা ব্যবহার করে। এটি মূলত কেস 2: প্রাসঙ্গিক পদগুলি সংজ্ঞায়িত করুন যাতে আপনি প্রাকৃতিক ভাষার মধ্যে সুনির্দিষ্টভাবে যোগাযোগ করতে পারেন।

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

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


বিস্তারিত তথ্যের জন্য ধন্যবাদ. আমি অনুভব করি যে শসাটি কেস 2 এবং কেস 3 এর মধ্যে ধূসর অঞ্চলে কিছুটা its আমার সীমিত জ্ঞানের জন্য, শসা "এর দেওয়া", "কখন" এর দৃশ্যের জন্য কীওয়ার্ডগুলির পরে কোনও ধরণের পাঠ্যকে মঞ্জুরি দেয় না? এটি এতটা সহজ হতে পারে তবে আমি একটি অ ইংরেজী নেটিভ দেশ থেকে এসেছি এবং লোকেরা সুনির্দিষ্ট স্নিপেটগুলি সরবরাহ করা সবচেয়ে কঠিন।
রঘুরাম 8892

1
হ্যাঁ, আপনি Given/ When/ এর পরে আপনার ইচ্ছামত যে কোনও কিছু রাখতে পারেন Thenতবে ক) আপনি এবং আপনার দলটি এর অর্থ কী তা সুনির্দিষ্টভাবে সংজ্ঞায়িত করে এবং খ) কোডের ক্ষেত্রে ম্যাচার্সগুলির অর্থ আপনি অর্থাত্ একটি আনুষ্ঠানিক ভাষায় সংজ্ঞায়িত করেন ।
Jörg ডব্লু মিটাগ

0

@ রঘুরাম ৮৮৯২, প্রদত্ত / যখন / তারপরে / এবং কীওয়ার্ডগুলির পরে পাঠ্যটি "স্নিপেট" এর সাথে মেলে, অন্যথায় পদক্ষেপটি অনির্ধারিত বা "মুলতুবি" হিসাবে ব্যর্থ হয়। যেমন, এটি স্ক্রোরিয়ালি কেস 3 এর মধ্যে পড়ে।

"ইংরেজি", শসা এবং এর ভাষা সম্পর্কে, ঘেরকিন আন্তর্জাতিক ব্যবহারের জন্য ডিজাইন করা হয়েছে। আপনি cucumber --i18n helpবর্তমানে কমান্ডটি সমর্থন cucumber --i18n $CODEকরতে পারেন , বর্তমানে সমর্থিত ভাষার তালিকাগুলি দেখতে এবং কোনও নির্দিষ্ট ভাষার কোডের কীওয়ার্ডগুলি দেখতে পারেন। উদাহরণস্বরূপ, cucumber --i18n eoএস্পেরান্তোর জন্য কীওয়ার্ড দেয়।

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