بازی و سرگرمی

گیمولوژی | رسانه تحلیلی بازی سازی | پرونده تست بازی: روش ها و حوزه های مختلف تست

*** قسمت اول این پرونده را از اینجا مطالعه نمایید***

1 محدوده و تعاریف

این آزمون در نگاهی ساده برای شناسایی باگ های موجود در نرم افزار است تا بتوان آن ها را رفع کرد. شیوه های مختلفی از آزمون ها و روش های آزمایش کردن وجود دارند که می توان آن ها را به عنوان روش «Black Box» و روش «Clear Box» دسته بندی کرد. (روش Clear Box در صنعت طراحی نرم افزار با نام «White Box» هم شناخته می شود)

2 فلسفه تست

این امتحان کردن ها در واقع نه کار یک نفره است و نه مسئولیت تیم تست بازی و نرم افزار. هر کسی که عضوی از تیم طراحی بازی و یا نرم افزار است باید این نکته را در ذهن داشته باشد و هر عضو گروه مسئول کیفیت و کمیت کاری است که در حال انجام آن است. این شیوه آزمایش کردن تنها روش موجود نیست و هرگز نباید در انزوا انجام شود.

برنامه ریزی آزمون و نیازمندی هایش

1 مشخص کردن نیازمندی ها

نیازمندی آزمون یکی از اهدافی است که حتماً باید مشخص شود. تستر حتماً باید نیازمندی های یک بازی را بداند و آن ها را تبدیل به شرایط عملکردی کند(برای مثل، چه چیزهایی باید سنجیده شوند، چه چیزهایی قابل سنجش هستند، اهداف و هدف گیری ها و …) تا طراحی و پیاده سازی جزییات به طراحان سپرده شود.

2 مشخص کردن محدوده های زمانی

وقتی یک پروژه بازی سازی برای یک بازه زمانی خاص برنامه ریزی شده است؛ ما باید یک نقطه شروع برای پروژه در نظر بگیریم تا زمان کافی برای تستر ها فراهم شود تا فعالیت هایی نظیر: تکرار تست برای به روزرسانی و یا ویژگی های تازه بازی، چرخه کامل آزمون پسرفت برای هر نسخه، آزمون پسرفت کافی برای مشکلات قبلی، باگ های بسته شده و یک آزمون پسرفت کامل برای بخش های اتفاقات، دنیا و محیط انجام شده تا بازی برای نسخه آلفا، بتا و نسخه نهایی آماده شود. این نقطه آغازین با توجه به بازی تحت ساخت متفاوت خواهد بود و تستر ها باید نیازمندی های روش «Bare Bone» را شناخته و با مدیر پروژه همگام شوند.

تست بازی و روش های تست

اسناد اولیه تست بازی برخی از ویژگی ها و وجوه آزمایش بازی را به خوبی توضیح می دهند. این بخش شامل بررسی تست سیستماتیک است و توضیح می دهد چگونه می توان بخش های مختلف بازی را به کوچک ترین بخش های قابل تست تقسیم بندی کرد:

1 اجزای بازی و ریز کردن ساختار

تست بازی به معنا امتحان کردن تمامی بخش های بازی است. این قسمت شامل:

·         منو و عملیات های آن

·         طراحی هنری (مدل شخصیت ها، بافت، زمین یا دنیا، جمعیت، اشیاء و …)

·         انیمیشن (حس و حال تحرک، واقعی بودن، نرخ فریم و …)

·         صدا و افکت های صوتی ( در گرو بخش انیمیشن : هماهنگی صدا با حرکت لب و زمان بندی انیمیشن)

·         موسیقی

·         دوربین ( منظره سینمایی، زوم بیرون یا داخل، بازبینی)

·         جریان بازی و منطق

·         دنیا، مرحله و سکانس

·         ویژگی های بازیکن

·         ویژگی های اکشن

·         شرایط رسیدن به مرحله بعدی (قوانین رسیدن به مرحله بعدی چیست؟)

·         استفاده از اشیاء محیطی

·         راه اندازی اتفاقات و یا اشیاء

·         سیستم امتیازدهی

·         پیشرفت درجه سختی

·         منطق هوش مصنوعی (هم برای بازی دفاعی و هم برای بازی تهاجمی، حرکت بازیکن و نحوه قرارگیری)

·         آمار (قبل و بعد از بازی؛ برای مثال آمار بازی و بالاترین امتیازها)

·         صفحه آغازین

·         NIS (سکانس های غیر تعاملی)

·         SFX ( جلوه های ویژه صوتی)

·         هر گونه کلیپ تصویری

·         استفاده از دسته بازی

·         استفاده از دستورهای چند دکمه ای (در اصطلاح همان فشار دادن چندین دکمه همزمان)

·         اسانی در استفاده از دکمه ها

·         شوک و یا لرز موجود در دسته بازی

·         استفاده از حالت دیجیتال و آنالوگ

·         فرم های قانونی

·         گزینه های بازی ( شروع بازی یا منو، راهنماها، توقف بازی، منو توقف بازی و گردش بین منو های مختلف در روی صفحه)

2 تکنیک های تست بازی (نکات و روش ها)

در بخش جزییات و تکنیک های مختلف تست ذکرشده اند:

·         حتماً باید کل صفحه بررسی شود نه یک بخش کوچک از آن

·         آشنایی با قوانین بازی و قوانین تست گیم پلی و روی به روی هم قرار دادن این قوانین

·         تست برای مختصر کردن (برای این که دو یا پند پولیگان یا پولیگان اشیاء  را باهم بپوشانیم یا آن ها را باهم خنثی کنیم)

·         بررسی همپوشانی (در جایی که یک شی نیمه شفاف بر روی یک شی جامد رنگ تر و یا پیش زمینه قرار می گیرد) و اینکه همپوشانی در اندازه و جای مناسب انجام شده است تا هدف و اطلاعات مورد نیاز آن فراهم شود.

·         تست برای یافتن برخوردهای صحیح و غیر صحیح (شرایطی که در آن دو شی باید باهم برخورد داشته باشند). تصور کنید که دو ماشین در حال برخورد به هم هستند. این دو ماشین باید در بخورد دچار آسیب شوند. در مورد فیزیک هم برخورد زمانی انجام می شود که دو شی با جرم همسان به همان میزان و در جهت مخالف تکانه ایجاد کنند. به این ترتیب وقتی یک هواپیما با زمین برخورد می کند این هواپیماست که باید تأثیرات برخورد را نشان بدهد زیرا هواپیما در مقایسه با زمین از جرم کمتری برخوردار است.

·         شخصیت قابل بازی را از میان تمام اشیا و مراحل عبور داده و تغییراتش را مورد مطالعه قرار دهید (ممکن است باعث برخورد، رخداد شی و یا رخداد یک اتفاق شود)

·         تست Grayed Out (برای وقتی که یک گزینه و یا ایکون قابل نباشد)

·         تست بارگذاری و ذخیره کردن بازی توسط دستگاه ذخیره سازی ( دیسک سخت و یا کرات ذخیره سازی) و مطمئن شدن از نمایش پیغام های صحیح روی صفحه

·         مطمئن شدن از پیغام صحیح بارگذاری و نشان دهنده های عملیات بارگذاری (خط بارگذاری) روی صفحه نمایش

·         مطمئن شدن از مدت زمان مناسب برای بارگذاری (هیچ کس دوست ندارد بیشتر از بیست ثانیه صبر کند)

·         گشتن دنبال توقف های کوچکی که ممکن است در بازی به وجود بیایند اما به صورت کامل باعث ثابت و به هم ریختن بازی نمی شوند. این اتفاق به عنوان مانعی برای گیم پلی به حساب می آید.

·         تست برای بخش چندنفره (بازی چندنفره روی یک دستگاه و بازی آفلاین) وقتی که دو و یا چند بازیکن بر روی یک دستگاه بازی می کنند.

·         تست بازی برای پیدا کردن نشت حافظه و پر شدن حافظه به هنگام اجرای بازی

·         تست محدوده های بازی (همان طور با نام انتها و یا لبه دنیا شناخته می شود). بازی نباید به بازیکن اجازه بدهد تا از حریم های بازی عبور کند زیرا بازی در این صورت ناپایدار می شود. (برای مثال  کرش کردن، از بین رفتن باف ها، گیر کردن شخصیت بازی در بخش های خاصی از نقشه)

·         تست برای سازگاری با پلتفرم. پلتفرم مورد نیاز برای تست بازی نیاز به تلاش های فراوانی برای تست بازی های PC و بازی های آنلاین دارد:

برای یک بازی PC آزمایش سیستم عامل هایی چون ویندوز 95 ،97 ،98، 2000 و NT (این بخش شامل نصب، حذف نصب و گیم پلی بازی می شود). همچنین آزمایش کارت های صدا و گرافیک و لوازم جانبی مختلف موجود در بازار (بررسی مدل های مختلف لوازم جانبی با مدیر بخش فنی)

·         تست قابلیت شبکه بازی با سرعت های مختلف مودم و اینترنت (عمق و پوشش برای آزمایش شبکه بازی بزرگ تر خواهد شد اگر بازی برای انجام به سرور متکی باشد و از بازی چندنفره استفاده کند)

·         اگر بازی قرار است برای کشورهای اروپایی عرضه شود تبدیل PAL را هم بررسی کنید ( بازی های ما امروزه برای آمریکای شمالی عرضه می شود و ما از NTSC استفاده می کنیم)

·         تست برای بومی سازی (نیاز به زبان های خارجی) اگر مورد نیاز بود. این لیستی از تکنیک های معمول برای تست بازی است. با این حال این یک لیست کامل نیست. اگر از یک تستر باسابقه سوال کنید او به شما پیشنهاد خواهد کرد تا از ذهن خود استفاده کنید تا در هر کجا که نیاز شد خلاقیت را مورد استفاده قرار دهید.

3 نکات قابل توجه برای تست بازی

قبل از این که کارمان تمام شود باید از هشداری هم راجع به Crack Bugها و جایگزین ها بدهم زیرا در اکثر موارد با باگ های واقعی اشتباه گرفته می شوند:

Crack Bugها: (برای مثال: باگی که در اصل باگ نیست و توسط یکی از طراحان بازی ساخته شده است)

جایگزین ها: (برای مثال لقتی مثل Dummyup روی صفحه نمایش برای زمانی است که بخواهیم تا آماده شدن ویدیو، بافت، موسیقی و یا شی خاص از آن استفاده کنیم)

توسعه برنامه تست بازی

دو حالت مختلف از شرایط تست وجود دارند:

یکی از این  انواع تست مربوط به قابل اجرا بودن یک محصول است که در صنعت با نام Positive testing شناخته می شود.

 نوع دیگر آزمون دوام و سطح تحمل و مقاومت بازی است که با نام Negative Testing شناخته می شود (همان طور با نام های Stress Test و یا Load Test هم شناخته می شود). نوع Negative این آزمون برای خرد کرد جزییات بازی در ذهن استفاده می شوند تا آزمون برای شرایط خاص و برخورد با این شرایط آماده باشد. مثال های این شرایط خاص به شرح زیر است:

          بارگذاری بازی بدون کارت حافظه یا خرج کردن کارت حافظه در حال بارگذاری.

          اجرا کردن بازی بیشتر از 48 ساعت تا میزان استفاده از حافظه و مدیریت آن را بررسی کرد.

          وقتی اجزای مختلف بازی به درست از حافظه استفاده نمی کنند و بازی را غیرقابل بازی می کنند (برای مثال منجمد شدن بازی بعد از مدت زیادی بازی کردن)

          برای آزمون قابل بازی بودن فکر کنید یک سناریو برای حالت HeadToHead ورزش Snowboarding در اختیاردارید. ما یک بازیکن 1 داریم که به سرعت در حال حرکت است و زورتر از نفر دوم مسابقه را تمام می کند که بسیار کند حرکت می کند. از نظر ما بازی باید بتواند این موقعیت های حساس را به درستی انجام دهد. (بدون انجماد، کرش، ادامه پیدا کردن امتیازدهی همان طور که باید) تا بازیکن دوم بازی اش را تمام کند.

تست برنامه و تکنیک های تست

1    پروسه تست یک نرم افزار

این بخش از مطلب شامل بررسی تست نرم افزار است. پروسه هایی که معمولا برای تست نرم افزار انجام می شوند نکات زیر را شامل می شوند:

          بررسی کد: کد و منطق ساختار اصلی آن با توجه به استانداردهای موجود نظیر استفاده از کامنت، تکامل مستندات و یا معانی برنامه بررسی شود.

          تست تمرکز افزایشی: بررسی بخش و یا اجزای کد با خوراندن آن به مذل های منزوی تر و بررسی حد وسط این نتایج. معمولا تأسیسات اجرایی، ابزار اشکال زدایی و یک Dummy FrontEnd مورد استفاده قرار می گیرد تا بررسی توسط اشیا مربوطه انجام شوند.

          آنالیز اطلاعات: بررسی اطلاعات در پایگاه اطلاعات؛ یا آنالیز یک بخش خاص از سیستم که بخشی از اطلاعات را بهبود می بخشد. با دنبال کردن رد آیتم های اطلاعاتی در گیم پلی تیتر می تواند استفاده از داده،تفسیر و دست کاری اطلاعات توسط مدل و یا اشیاء را تأیید کند.

          آزمایش مسیر و جریان: تایید اینکه بخش صحیح اشیاء و یا قطعات برای یک مسیر پایان به پایان استفاده می شوند.

          تست الگوریتم محور: آزمایش یک بازی سناریو خاص بازی و یا تنظیمات خاص (و افزایش سرعت)متغیرها و مقادیر داده به کد و اجرای آن ها در تأسیسات اجرایی. با توجه تفاوت های تست تمرکز افزایشی، این آزمایش برای تصحیح کد هایست که یک بخش مهمی از بازی را تشکیل می دهند.

          آنالیز هوش مصنوعی: تولید یک نسخه استاتیک و قابل برنامه ریزی که از قدرت هوش مصنوعی استفاده می کند. این نتایج برای تایید حرکت های از قبل طراحی شده (مثل گرفتن یک لبه در Snowboard) و یا بازی (جکی چان و ترکیب مشت و لگد در جهت های مختلف) استفاده می شوند. و در نهایت  تایید اینکه منطق هوش مصنوعی صحیح و منطقی است ( برای مثال در یک بازی بسکتبال اگر امتیاز گیری با دانک 90 درصد باشد و امتیازگیری با پرش 10 درصد داده ها منطقی نیست).

2 تکنیک های تست نرم افزار (نکات و روش ها)

بخش زیر شامل خلاصه ای از وظایف و تکنیک های یک تیتر نرم افزار می شود و هر تستری به هنگام کار بر روی یک پروژه بازی باید از آن ها اطلاع داشته باشد.

          ساختار فایل: هر تستر نرم افزاری باید با ساختار فایل رادیکال آشنا باشد. در این زمینه فایل های مکتوب خوبی در زمینه بازی و فن آوری پایه اسناد تکنیکی هم وجود دارند. هدف یادگیری هم صرفاً یادگیری بازی های رایانه ای و چگونگی جریان آن است تا با نیازمندی های فایلی یک بازی آشنا شوید. وقتی که در حال بررسی یک مدل هستید دانستن متود تست بازی و بخش های درونی که به آن وابسته اند ضروریست. همین موضوع به شما و سرعت باگ یابی شما کمک می کند و پروسه آنالیز شما را بهبود می بخشد.

          ساختن فایل: یکی تستر نرم افزار مسئولیت ساخت نسخه های شبانه را دارد. هر شب یک نسخه با آخرین مدل ها ساخته می شود تا فردا صبح همه بتوانند بر روی کد به روزرسانی شده کار کنند. گاها اتفاقی غیر منتظره برای نسخه شبانه می افتد پس بهتر است نسخه ای ساخته شود تا در صورت خراب شدن نسخه شبانه بخش مخرب شناسایی شود. شما می توانید از این فایل برای بررسی های آینده خود استفاده کنید. معمولا امکان دارد بخشی از کد با بخش های دیگر همخوانی نداشته باشند. اینجا وظیفه تستر است مسئولیت به عهده گرفته و مدل ها خراب را بررسی کند و در صورت امکان آن ها را تصحیح کند. اگر تصحیح کردن آن ها خیلی سخت است بهتر است فردی که مسئولیت نوشتن کد را بر عهده داشته است را خبر کنید. وقتی که مشکل حل شد این نسخه باید دوباره ساخته شده و تایید شود. شماره هر نسخه هم باید به صورت خودکار اصلاح شود تا نشانگری برای نسخه روزانه باشد. این شماره ها به شما اجازه می دهند تا بتوانید رد باگ ها را گرفته و آن ها را در نسخه ای خاص شناسایی کنید. برای مثال: ممکن است کسی با یک باگ از نسخه های اولین نزد شما بیایید. اگر شما بتوانید نسخه درخواستی را شناسایی کنید و بدانیم کدام نسخه تکمیل شده است می تواند تبدیل به ترمیم ساده تبدیل شده و یک نسخه ترمیم شده از آن بسازیم. همین طور ممکن است ایده خوبی باشد تا یک ایمیل فرستاده و آن ها را از نسخه جدید مطلع کنیم. نکته دیگری که در ساخت نسخه ها مهم است نشان گذاری تاریخ عرضه است زیرا ممکن است مشکلی به وجود امده فقط مختص به یک نسخه خاص باشد. متود تست بازی های رایانه باعث می شود تا از بارگذاری اطلاعات در مکان صحیح مطمئن شویم. در شرایط خاص تر می توانید همیشه پایگاه اطلاعات را بررسی کرده و از نبودن ارور اطلاع حاصل کنیم. تکنیک خوب دیگر شانسی سازی بررسی بر روی آمار هر کاربر است تا بدانیم اطلاعات بدست آمده صحیح است.

          پوشش: حتماً مطمئن شوید که پوشش به صورت کامل بارگذاری شود. یک تستر ممکن است برنامه ای برای تأیید پوشش ها بنویسد و پس از شناسایی مطمئن شود که فرد دیگری از آن استفاده نمی کند.

          Front End: بیشتر صفحات Front End می تواند به آمار متصل شود (که می دانید در پایگاه داده موجود است). بهترین کار نگاه کردن به Text Bible است، برای مثال تناسب متن، نام گذاری و بررسی آن ها بر اساس استانداردهای تولیدکنندگان و نیازهایشان و حتی حجی کردن.

          نرم افزارهای شناسایی باگ: تستر نرم افزار باید طریقه کار با PVCS را بداند تا بتواند باگ ها را شناسایی کرده و دنبال کند. همچنین باید طریقه کار با قالب های استاندارد را دانسته تا  نقص پایگاه داده را برای پروژه های جدید بر طرف کند. این موضوع ممکن است به عنوان حقوق مدیریت شناخته شود و بقیه کاربران را با اکانت مجهز کرده و پایگاه داده را مدیریت کند (ID ورودی کاربران جدید، زمینه ها و اطلاعات) .

مقالات مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا