গেমসের জন্য টেস্টিং কৌশল


13

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

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

আমি এখন 10+ বছর ধরে অ্যাপ্লিকেশন বিকাশকারী হয়েছি এবং এটি আমাকে বিভ্রান্ত করে। এন্টারপ্রাইজ বিশ্বে, একটি অ্যালগরিদম সর্বদা একইভাবে কাজ করে। আমি একটি অ্যালগরিদমের জন্য একটি ইউনিট পরীক্ষা লিখব, আমি মানটি 42 আশা করব এবং আমি যদি এই মানটি না পাই তবে এটি ত্রুটি ঘটবে।

যখন গেমসের কথা আসে তখন আমি হারিয়ে যাই। আমি কীভাবে সেগুলি পরীক্ষা করব? আমার কাছে পরীক্ষাগার রয়েছে। আমি ইউনিট পরীক্ষা লেখার সময় ব্যয় করতে পারি।

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

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

এটাই কি সেরা কৌশল? গেম সংস্থাগুলি কীভাবে গেম পরীক্ষা করে?

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


বই / অফ-সাইট রিসোর্স সুপারিশগুলি হেল্প সেন্টারে স্পষ্টভাবে অফ-টপিক । দেখুন meta.programmers.stackexchange.com/questions/6483/...
মশা


এটি কোনও সদৃশ নয়। এই প্রশ্নটি কীভাবে ইউনিট পরীক্ষা লিখতে হয় তা জিজ্ঞাসা করছে। আমি কৌশল চাইছি।
জেফকোলিজ


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

উত্তর:


16

এন্টারপ্রাইজ বিশ্বে, একটি অ্যালগরিদম সর্বদা একইভাবে কাজ করে। আমি একটি অ্যালগরিদমের জন্য একটি ইউনিট পরীক্ষা লিখব, আমি মানটি 42 আশা করব এবং আমি যদি এই মানটি না পাই তবে এটি ত্রুটি ঘটবে।

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

অনেকগুলি মোড এবং পতাকা সহ, সম্ভাব্য বৈকল্পগুলির সংখ্যার কারণে গেমটি দ্রুত পরীক্ষা করা খুব কঠিন হয়ে উঠতে পারে। এই অসুবিধায় প্রারম্ভিক ঝুঁকিটি শীঘ্রই প্রশমিত করার জন্য, আপনার উচিত:

  • মারাত্মকভাবে মক / স্টাব । পরীক্ষিত অংশগুলি ছোট রাখুন এবং তারা নির্ভর করে এমন সমস্ত বিষয় উপহাস করুন।

    তারা যদি সময়ের উপর নির্ভর করে তবে প্রকৃত সময়ের চেয়ে স্বতন্ত্রভাবে সর্বদা একটি নির্দিষ্ট ফলাফল বা নির্দিষ্ট ফলাফলের সেট দেওয়ার জন্য সময় অবজেক্টকে উপহাস করুন।

    যদি তারা নির্ভর করে তবে random()প্রতিবার একটি ধ্রুবক সরবরাহ করার জন্য এটি উপহাস করুন।

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

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

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

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


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