Бірліктер
1. Ойын әзірлеудегі жасанды интеллектке кіріспе: рөлдер, шекаралар, тексеру, авторлық құқық және этика 2. Прототип және механикалық дизайн: идеядан ойнатылатын ядроға дейін жылдам итерация 3. NPC мінез-құлық және диалог жүйелері: кейіпкерді тірілтетін жасанды интеллект 4. Процедуралық мазмұнды генерациялау (PCG): деңгей, карта, квест және баяндау 5. Актив және визуалды өндіріс: концепт өнері, 2D/3D және текстура 6. Дыбыс, музыка және әсерлер өндірісі: Ойынның естіген әлемі 7. Код жасау және қозғалтқышты біріктіру: Unity (C#) және Unreal (Blueprint/C++) 8. Ойын балансы, модельдеу және үнемдеу: сандармен әділ ойын 9. Сапаны қамтамасыз ету (QA), жөндеу және автоматтандырылған тестілеу 10. Авторлық құқық, түпнұсқалық, лицензия және этика: Жарияланатын және жауапты мазмұн 11. Ақырғы жұмыс процесі, өндірістік желіні біріктіру, басқару және тікелей қызмет көрсету
Бірлік 9 / 11

Сапаны қамтамасыз ету (QA), жөндеу және автоматтандырылған тестілеу

Табыстар:

  • Функционалдық, регрессия, шеткі жағдай және апаттық сынақ қабаттарын түсіну және жасанды интеллектпен сынақ сценарийлері мен шеткі жағдайлар тізімдерін жасау мүмкіндігі
  • Жасанды интеллектпен автоматты сынақ кодын жазу және журнал мен апатты талдаудағы үлгілерді шығару арқылы жөндеуді жылдамдату мүмкіндігі
  • Жасанды интеллект қателік диагностикасы дәлел емес, гипотеза екенін түсіну үшін, себебі журналдар мен көбейту арқылы дәлелденуі керек және қате туралы есептің қайталанатын маңыздылығы.

Ойын шығарылған кезде, ойыншылар оны әзірлеуші ​​ойламаған тәсілдермен ойнайды: қабырғаларға кептелу, қорларды пайдалану, мүмкін емес жерлерге жету, апатқа ұшырау. Сапаны қамтамасыз ету (QA — сапаны қамтамасыз ету); Бұл ойынды шығарар алдында жүйелі түрде сынау және қателерді (қателерді), бұзылуларды, тұрақсыздықтарды және жағымсыз тәжірибелерді табу және түзету процесі. Бұл ойын өндірісіндегі ең көп еңбекті қажет ететін, бірақ маңызды буындардың бірі. AI көптеген нүктелерде QA жылдамдатады: сынақ жағдайын жасау, қате туралы есептерді талдау, журналды қарап шығу, сынақ кодын автоматты түрде жазу, жөндеу және өндіріс қадамдарын нақтылау. Бірақ AI адамның тестісінің интуициясы мен ойын сезімін бағалауын алмастырмайды.

Бұл бөлімде сіз QA және жөндеуде AI пайдалануды үйренесіз; Сіз сынақ сценарийін құрастыруды, журналды талдауды, сынақты автоматты түрде жазуды және қателер туралы есеп беруді үйренесіз.

QA қабаттары және АИ орны

QA көп деңгейлі. Функционалдық тестілеу: функция жұмыс істейді (есік ашылады, жазу жүктемесін орындайды). Регрессиялық тестілеу: жаңа өзгеріс бұрын жұмыс істеп тұрған нәрсені бұзды ма? Шеттік регистрді тексеру: әдеттен тыс кірістер (түгендеуді қалпына келтіру, бірден екі кілт, шекаралық мәндер). Өнімділік/қатты сынау: ойын тұрақты. Ойын / тәжірибе сынағы: көңілді, интуитивті. Алғашқы төртеуінде AI күшті: сценарийлерді жасау, шеткі жағдайларды тізімдеу, сынақ кодын жазу, журналдарды талдау. Соңғысы — тәжірибе — адамға тиесілі.

Қадамдық QA ағыны:

  1. Сынақ жағдайларын жасаңыз (AI бар функционалды және шеткі істер тізімі).
  2. Автоматтандырылған тестілеуді жазыңыз (қайталанатын тексерулер үшін код).
  3. Іске қосу және жинау (қателерді журналдар, журналдар, бұзылулар).
  4. Талдау (жүйені және қате үлгісін AI көмегімен тексеріңіз).
  5. Есеп беру және тексеру (айқын, қайталанатын қате туралы есеп; сынақты түзету).
Нұсқау: Дизайнер өз ойын «дұрыс» ойнайтындықтан, шеткі жағдайларды табу қиын. AI-дан «ойыншы бұл жүйені бұзғысы келсе, не істейді?» Деп сұраңыз. Эксплуатациялар мен шеткі жағдайларды тізімдеңіз.

Автоматты тестілеу: қайталауды машинаға қалдырыңыз

Әрбір шығарылымда бірдей нәрселерді қолмен сынау шаршатады және қателеседі. Автоматтандырылған тестілеу бұл тексерулерді кодқа енгізеді: функция шақырылған сайын дұрыс нәтижені қайтара ма, бұл күтілетін күйдегі жүйе. Unity және Unreal ұсыныстарын тестілеу шеңберлері; AI бұл сынақтарды жазуда жылдам. Бұл әсіресе регрессия үшін құнды: егер өзгеріс бұрын жұмыс істеп тұрған нәрсені бұзса, сынақ қызыл болады. AI шығаратын сынақтарды қарап шығыңыз, олардың шын мәнісін тексеретініне көз жеткізіңіз - бос сынақ сынақтан гөрі нашар.

Абайлаңыз: Түзету кезінде AI кейде «ықтимал себеп» (галлюцинация) ретінде ойдан шығарылған түсініктеме береді. AI сізге айтқандықтан ғана қатенің себебін қабылдамаңыз; Тіркеу, көшіру және сынау арқылы себебін дәлелдеңіз. Қате диагноз дұрыс диагнозды табуды кешіктіреді.

Қайта шығару: жөндеудің жүрегі

Қатені түзетудің бірінші талабы оны сенімді түрде қайта жасау болып табылады. "Кейде болады" деп сипатталған қатені түзету мүмкін емес, себебі түзетудің жұмыс істегенін тексере алмайсыз. Сонымен, жөндеудің ең құнды жұмысы қате пайда болатын нақты жағдайларды (қандай қадамдар, қандай жағдай, қандай уақыт) қысқарту болып табылады. AI мұны қысқартуға көмектеседі: сіз белгілерді және ішінара көбейту қадамдарын бере аласыз және «осы мінез-құлықты тудыруы мүмкін шарттар мен тарылту стратегиясын ұсыныңыз» деп айта аласыз. Бірақ сіз ойынды іске қосу арқылы тарылтуды жасайсыз; AI гипотеза жасайды, сіз оларды жоясыз.

Әсіресе уақытпен байланысты (жарыс жағдайы) және жад күйіне байланысты қателер жасырын болып табылады; олар тек белгілі бір реттілікте немесе жүктемеде орын алады. Мұндай қателер үшін журналға уақыт белгісі мен күй туралы ақпаратты қосу өте маңызды; AI осы бай журналды талдап, үлгіні көре алады («қате әрқашан осы екі оқиға жақында болған кезде болады»). Түзетудің алтын ережесін есте сақтаңыз: алдымен түсініңіз, содан кейін түзетіңіз. Түсінбестен түзету қатені жасырады, бірақ оны шешпейді және жиі басқа жерде жаңа қатені жасайды.

үш шағын іс

1-жағдай — Шеттік корпусты іздеу. RPG ойынында команда инвентарлық жүйені «қалыпты» геймплейде сынап көрді және оны қатты деп санады. Олар AI «осы инвентаризацияны бұзуға тырысыңыз» деді және 30 шеткі жағдай сценарийін жасады; Оның 4-і шынайы қателер болды (0 салмақ элементін бөлу, бір уақытта бір реттік). Жариялану алдында түзетілді.

2-жағдай — Журнал талдауы бұзылуды шешті. Ойын кездейсоқ бұзылды; апат журналдары жүздеген жолдар болды. AI журналдарын беріп, үлгіні сұраған кезде, апат әрқашан белгілі бір сахнаға өту кезінде және төмен жадыда болғаны анықталды. Осы анықтаманың көмегімен бағдарламашы жадтың ағып кетуін тапты; Бұзылу көрсеткіші нөлге дейін төмендеді.

3-жағдай - қате диагноздан қайтару. Бағдарламашы AI-ның «бұл қате осы функциядан туындады» деген түсініктемесіне сеніп, жарты күн бойы онымен айналысты; нәтиже шықпады. Ол өндіріс қадамдарын қайта түсіндіріп, тіркегенде, қате мүлдем басқа жерде болды. Сабақ: АИ диагностикасы дәлел емес, гипотеза.

Көшірілетін төрт үлгі

1) Edge жағдай/пайдалану сценарийін құру:

Сіздің рөліңіз: зиянды QA тестішісі. Мен келесі жүйені сипаттаймын: [жүйе, ережелер]. Тапсырма: осы жүйені бұзуға, пайдалануға немесе күтпеген күйге шығаруға тырысатын 20 шеткі жағдай сценарийін тізіп көрсетіңіз. Әрқайсысы үшін: не істеу керек, күтілетін нәтиже, мүмкін қате.

2) Автоматтандырылған тест жазу:

Қозғалтқыш: [Unity 2022.3 / Unreal 5.3]. Сынақ жүйесі: [көрсетіңіз].Келесі функция/жүйе үшін автоматтандырылған сынақтарды жазыңыз: [сипаттама/код]. Қалыпты жағдайды, шекті регистрді және қате енгізуді қосыңыз. Әрбір сынақ шынымен мағыналы нәрсені растайтынына көз жеткізіңіз; Бос/мағынасыз тесттер жазу.

3) Журнал/жаңылау талдауы:

Төменде ойынның бұзылу/қате журналдары берілген: [журнал]. Тапсырма: қайталанатын үлгілерді, жалпы жағдайларды (көрініс, жад, уақыт) және мүмкін болатын негізгі себептерді белгілеңіз. Әрбір себепті «дәлелденетін гипотеза» ретінде көрсетіңіз; анық сөйле. Сондай-ақ қалай тексеру керектігін айтыңыз.

4) Қате туралы есептің түсіндірмесі:

Келесі анық емес қате туралы есепті анық және қайталанатын етіп жасаңыз: [шикі есеп]. Нәтиже: тақырып, кезең-кезеңімен жаңғырту, күтілетін нәтиже, нақты нәтиже, жиілік, орта. Егер ақпарат жетіспейтін болса, қандай ақпарат қажет екенін көрсетіңіз.

Әлсіз шақыру / Күшті шақыру

Әлсіз шақыру:

Менің ойынымда қате бар, оны түзетіңіз.

Мәтінмән жоқ, журнал жоқ, қайта шығару жоқ; AI болжамды және галлюцинация қаупі жоғары.

Күшті шақыру:

Менің Unity 2022.3 ойынымда қате бар: ойыншы жылдам жүктеуді орындаған кезде түгендеу кейде екі еселенеді. Көшіру: [қадамдар]. Қатысты код: [қою]. Журнал: [қою].Тапсырма: дәлелденетін гипотезалар ретінде ықтимал түбірлік себептерді тізіп, тексеру жолдарын көрсетіңіз және әрқайсысы үшін ықтимал түзету. Болмайтын себепті жасаңыз; Сенбесеңіз, маған хабарлаңыз.

Репродукция, код, журнал және «гипотеза ретінде ұсыну» сұрауы диагнозды сенімді етеді.

QA қабатының кестесі

қабат

Ол нені сынайды?

AI үлесі

адам үлесі

функционалдық

Функция жұмыс істей ме?

Сценарий, сынақ коды

Қабылдау туралы шешім

регрессия

Ескі зат бұзылды ма?

автоматты сынақ

Ауқымды шешім

төтенше жағдай

әдеттен тыс кіріс

Сценарий өндірісі

басымдық

Апат/өнімділік

анықтау

Журналды талдау

Түбірлік себептерді растау

Тәжірибе

ойын-сауық, интуиция

шектелген

толығымен адам

Жалпы қателер

  • Тек «қалыпты» ойынды сынау. Шеттік қораптар шығарылғаннан кейін жарылып кетеді.
  • Дәлел ретінде AI диагнозын қателесу. Неліктен журнал және тестілеу арқылы дәлелденді.
  • Бос автоматтандырылған тесттерді жазу. Мағынасыз тестілеу сенімділік елесін береді.
  • Бұлыңғыр қате туралы есеп. Қайталанбайтын қатені түзету мүмкін емес.
  • Регрессиялық тестілеуді өткізіп жіберу. Әрбір түзету жаңа қателерді тудыруы мүмкін.

Қысқаша айтқанда

QA - бұл ойынды ойыншыға дайын ететін тәртіп. AI; шеткі жағдай сценарийлерін жасайды, автоматтандырылған сынақтарды жазады, журналдарды талдайды және қате есептерін нақтылайды. Бірақ олардың диагноздары гипотеза, тәжірибені бағалау адамға тән, ал әрбір түзету қайта тексеруді қажет етеді. «Мұны кім және қалай бұза алады» рефлексін АИ-мен қайталаңыз; Сіз дәлелдерді жинайсыз.

Қолданбалы тапсырма

Ойыныңыздан жүйені таңдаңыз. 20 сценарийді «шеттік жағдай/пайдалану сценарийін құру» үлгісімен жасаңыз және ең қауіпті 5 сценарийді сынаңыз. "Қате туралы есептерді нақтылау" үлгісімен табылған қате үшін қайталанатын есепті жасаңыз.

бақылау парағы

  • [ ] Мен "Мұны кім және қалай бұза алады?"
  • [ ] Қайталанатын тексерулер үшін автоматтандырылған тестілеуді жазды және қарады.
  • [ ] Мен AI диагнозын гипотеза ретінде қарастырдым және оны журнал/тест арқылы дәлелдедім.
  • [ ] Мен қателерді қайталанатын түрде хабарладым.
  • [ ] Мен регрессия үшін әрбір түзетуді қайта сынадым.