Визначення програмної помилки. Blizzard Entertainment наполягає на тому, що моя помилка - це не помилка. Вони праві? [зачинено]


18

За даними Wikipepdia,

Помилка програмного забезпечення - це загальний термін, що використовується для опису помилки, помилки, помилки, відмови чи несправності в комп'ютерній програмі чи системі, яка дає невірний або несподіваний результат або викликає поведінку ненавмисно.

Нещодавно я знайшов "помилку" в StarCraft 2, яка дає несподіваний результат: http://eu.battle.net/sc2/en/forum/topic/2868627470

Проблема полягає в тому, що якщо я триматимуть StarCraft 2 мінімізованим протягом тривалого часу, гра не відключає і не генерує жодної форми очікування. Однак він відключається після першого бою, а іноді також втрачає дані гри (статистика матчів).

На жаль, за версією Blizzard:

Гра не розрахована на мінімізацію протягом такого тривалого періоду часу. (Blizzard) не може вважати таку поведінку помилковою, оскільки StarCraft II не передбачається мінімізувати протягом години.

Отже, чи справді моя помилка - це помилка?


31
Звичайно, це помилка, але вони не збираються її виправити, оскільки вони не вважають цю ситуацію підтримуваною (тобто, оскільки вона не була розроблена таким чином, якщо ви намагаєтесь використовувати її таким чином, ви ви самі). І звичайно, є проста робота - не робіть цього.
Одід

17
Для запису представник Blizzard впорався з ситуацією дуже погано. Вони повинні були сказати: "Дякую, що повідомили про цю помилку. Ми введемо її до нашої системи та виправимо її, як тільки наші розробники вважають її пріоритетною". Неявне припущення було б, що воно ніколи не стане пріоритетним. На мою думку дуже погано впорався.
riwalk

29
@ Stargazer712 Blizzard впорався з цим точно. Вони не повинні встановлювати сподівання, що вони виправлять помилку, яку вони не мають наміру виправляти.
МетБелангер

3
Щоб бути справедливим до TeleShoTTgun, я думаю, що Blizzard повинен був хоча б визначити, що вважається "тривалим періодом часу". Я можу мінімізувати гру, щоб піти до ванної на пару хвилин. Я не думаю, що це дуже давно, але Blizzard? Я вважаю б> 30 хвилин "довгим періодом" у цьому контексті, але я не знаю, чи погодиться Blizzard.
FrustratedWithFormsDesigner

3
Старий вчинок Водвіля - "Доктор, докторе, боляче, коли я це роблю" - "Не до цього!"
Циклоп

Відповіді:


58

Для команди програмного забезпечення помилка - це проблема програмного забезпечення, яку потрібно виправити. Не всі проблеми з програмним забезпеченням потребують виправлення.

Оновлення програмного забезпечення коштує дорого. Blizzard каже вам, що ваша проблема - це кращий випадок. Іншими словами, проблему кращого випадку, яку ви виявили, не обов’язково те, що вони перевіряли чи іншим чином доглядають. Вирішення проблеми допоможе вам, але, швидше за все, це не допоможе багатьом іншим. Однак вартість виправлення помилки може бути високою. Натомість вони можуть інвестувати свої ресурси в нові функції або навіть закінчити Diablo III.


3
Я думаю, ви захопили фактичне, використовуване на практиці визначення. Я збирався відповісти, що помилка - це будь-яка поведінка, яка відрізняється від специфікацій, як інші плакати. Але реальність полягає в тому, що якби помилкова поведінка була в межах специфічного визначення, але мала суттєвий вплив на бізнес, компанія виправить це. І як ви сказали, навіть якщо специфікація каже, що вона повинна працювати, а це не так, якщо рентабельність інвестицій низька, відповідна компанія не виправить це. Чудова відповідь.
Метт Райан

2
@MattRyan: І в реальному світі (що я бачив), якщо технічні характеристики призводять до неправильної поведінки, яку Бізнес-користувачі називають "помилкою", команда розробників, як правило, формально перекласовує рішення як "запит на зміну", не як "виправлення помилок". ;)
FrustratedWithFormsDesigner

3
Іншими словами, "помилка" або "дефект" являє собою вимогу, яка не реалізована правильно. У цьому випадку мінімізація гри не є вимогою.
Рей

22

Цей вид нагадує мені про кота в мікрохвильовій печі , зокрема про справу місіс Сміт 1983 року.

Справа в тому, що ви очікуєте, що продукт працюватиме таким чином. Переважно тому, що ряд подібних продуктів працює так, тобто, якщо ви мінімізуєте їх протягом години, а потім відкриєте їх, вони працюють (хоча навпаки не так вже й рідко, як ви могли подумати).

Місіс Сміт знала зі свого досвіду, що сушіння котів у духовці їм не зашкодить (припускаючи звичайно певну обережність). Точніше з досвіду, який вона мала з усіма печами, які вона пробувала. Потім вона припускала, що це буде те саме для мікрохвильової печі, яку їй дали. Це припущення було помилковим. Мікрохвильові пічки не призначені для сушіння котів. Ні звичайні духовки. Вони просто не вбивають кота в процесі, як побічний ефект фізичних процесів, які вони використовують для отримання тепла.

Тепер як виробник мікрохвильових печей ви можете помістити в мікрохвильову піч нагрівальну котушку та кількість датчиків. Останній визначив би, чи є поточний вміст котом, і використовувати котушку замість мікрохвильових печей.

Таким же чином, що можна було б виготовити мікрохвильову піч, підходящу для сухих котів, Blizzard міг створити версію SC2, яка підходить тримати час у мінімальному стані.

Особисто я хотів би заплатити більше грошей за мікрохвильову пічку з підтримкою котячої сушки лише для задоволення від неї (якщо припустити, що перед цим є великий логотип для сушіння котів, на який я можу гордо вказати). Але я би не переймався грою, яка може мінімізуватися годинами.

SC2 був розроблений для задоволення певних вимог. Ваше очікування не є частиною таких. Ви можете вільно виміряти SC2 відповідно до ваших очікувань. Але незалежно від того, включить чи ні Blizzard усіх із них в обсяг своїх вимог, це в кінцевому рахунку їх вибір.

Все, про що ви справді можете сперечатися, це те, що це невдача в дизайні. Здоровий глузд наказує, що якщо значна частина користувачів не бентежить дизайном або не задоволена ним, це досить добре. Я впевнений, якщо достатньо користувачів стверджує, що вони поділяють ваші очікування, Blizzard поступиться і включить його в дизайн. Це призведе до вашої проблеми фактичною помилкою, і Blizzard виправить її.


Гарна відповідь, жахлива метафора. Я так щасливий, що хтось насправді не був досить тупим для цього!
Дрю

11

Я думаю, що це випадок використання програмного забезпечення, яке не визначено специфікаціями. Вони кажуть

Гра не розрахована на мінімізацію протягом такого тривалого періоду часу.

Що означає, що десь вони мають визначення того, що вважається "тривалим періодом часу". Якщо ви мінімізуєте програму більше, ніж "тривалий проміжок часу", це виходить за межі їх специфікацій і за те, на що вони тестували (якщо припустити, що це офіційно перевірено), і вони не гарантують, що відбудеться. Звичайно, було б добре, якби десь у посібнику було сказано: "Ми протестували лише цю програму, щоб її мінімізували протягом періоду часу, що не перевищує 10 хвилин. Мінімізуйте довше, ніж це, на власний ризик!".

Так ні, я не думаю, що це насправді помилка. У моєму кабінеті це називатиметься "проблемою навчання користувачів" (яка, я б сказала, є формою проблеми зв'язку , оскільки в цьому випадку, оскільки користувачеві не було повідомлено максимального періоду мінімізованого часу), оскільки користувач неправильне використання програми. Не те, що це дуже допомагає Blizzard, якщо вони не помістять його в посібнику ...


3
Для критично важливої ​​системи ми маємо вимогу, яка говорить "ця система повинна залишатися функціонуючою протягом n годин", і ми перевіряємо та документуємо зовні, що система працює протягом n годин. Ми також можемо внутрішньо документувати, що ми робили тест протягом m> n годин і система все ще функціонувала. Для гри, яка не є важливою для місії, вам не обов'язково потрібно це формально захоплене зовні, оскільки більшість людей, мабуть, ніколи не зіткнуться з цим питанням.
Томас Оуенс

8

Не помилка. Помилка - це поведінка, яка не відповідає специфікації. Якщо специфікація говорить про те, що випадок використання не підтримується поведінкою, то будь-яка поведінка - сприймається як дійсна чи ні - в такому випадку використання є "задумом".

У цьому сценарії гра, яка працює взагалі, може сприйматися як невизначена поведінка.


Це масове ухилення. Я зневажаю це кожного разу, коли чую це. Тому що воно виходить лише тоді, коли "специфікація" неповна.
Шон Макміллан

2
@SeanMcMillan: Без подібних речей функція повзування вбила б усіх нас. Так чи інакше, це не ухилення, оскільки це сценарій, який конкретно вказаний як не підтримуваний.
Стівен Еверс

1
@SnOrfus: Це було зазначено. Після факту. Ви дійсно вірите, що існує специфікація, яка чітко вказує, що "Мінімізація програми довше x хв не підтримується"? Ясна річ, що це помилка.
ThomasX

Проблема полягає в тому, що немає жодної специфікації, достатньої для опису справжнього програмного забезпечення. Мета "відповідає специфікації" не дає хорошого програмного забезпечення, це лише привід, що "я не винен", коли щось у програмному забезпеченні погано. Можливо, це не варто виправляти, але "специфікація" - це не причина.
Шон Макміллан

@ThomasX Враховуючи, що проект, над яким я працюю, має специфікацію на 200-400 сторінок і дійсно має межі, визначені для виконання. Так.
Стівен Еверс

5

Якби я був керівником команди розробників у цьому проекті, я б назвав це помилкою, але незначним, оскільки це далеко поза нормальних очікувань роботи програмного забезпечення. Якби над цим взагалі над цим працювали, я, мабуть, призначив його молодшому програмісту або новому найму більше як навчальну вправу для них, ніж щось інше.

Непогано відстежувати ці незначні помилки, оскільки вони можуть вказувати на потенційно більш далекі проблеми. Наприклад, помилка збереження даних, з якою ви стикалися. Це здається незначним через те, як це сталося, але можуть бути й інші випадки, коли дані втрачаються. За допомогою системи звітування про помилки ви можете знайти всі випадки виникнення подібної проблеми та побачити, чи є загальний елемент. У складній системі документування подібного роду може допомогти вам знайти більш серйозні та тонкі помилки.


5

Я збираюся не погодитися з більшістю людей тут.

Як колишній гравець Starcraft (оригінальний), я можу засвідчити, що це (або, принаймні) дуже поширена поведінка. Користувачі виходять із гри 24/7, щоб зайняти своє місце в чатах та приєднатися до ігор, коли вони знову повернуться. Я впевнений, що оновлений Battle.net має деякі вдосконалення, які можуть зменшити потребу в цьому, але все-таки відбувається багато.

Було б набагато більше сенсу, що це не дозволяє вам приєднатися до гри без повторного підключення, якщо ваш сеанс якимось чином, формою чи формою закінчився. Те, що вона дозволяє вам приєднуватися до ігор після закінчення терміну дії вашої сесії, - це помилка для мене. Тут тривожна річ і те, що ще не було вироблено, - це те, що розробники повинні розуміти своїх користувачів. Це може бути справжнім випадком, але це кращий випадок для дуже відданих геймерів, які їм слід налаштувати.

Технічно вони можуть стверджувати, що це задум, і це не те, що вони мають намір виправити. У моїх очах це все-таки є виною, яка, зрештою, залежить від того, класифікують вони це як помилку чи ні. Це не означає, що гравці згодні.

У всякому разі, я думав, що я поставлю трохи іншу відповідь, ніж те, що було розміщено дотепер.


1
Я насправді мінімізував би екран на тривалий період часу, якби насправді грав Starcraft. Я думаю, що питання про помилку не має значення, але здається, що це щось, з чим він повинен впоратися, і він би насправді помилив, якби цього не сталося.
psr

Погоджено - це слід класифікувати як помилку, все це дуже пріоритетний. Хоча вони можуть сказати, що "мінімізація гри на тривалий час не підтримується", що саме означає тривалий проміжок часу? Звідки вони знають, що одне і те ж питання не буде, якщо їх мінімізувати протягом 10 хвилин? По крайней мере, слід розробити та впровадити тайм-аут гри, який відключає користувача, якщо його мінімізують більше х хвилин, якщо вони не мають наміру підтримувати такі дії.
Гевін Коутс

4

Помилка може бути визначена як "будь-яке відхилення від передбачуваної поведінки програмного забезпечення".

Зрозуміло, що вони (і це їх програмне забезпечення, щоб вони могли визначити, як воно має вести себе) ніколи не передбачали, щоб програмне забезпечення обробляло цей сценарій, щоб воно не відповідало цьому визначенню помилки.

Однак те, що я б сказав, принаймні, неоптимальне - це спосіб вирішення цієї умови.

Сміття, вивезення сміття (тобто користувач робить щось дурне чи погане чи несподіване, а в результаті щось трапляється) вважається поганим стандартом поведінки. Я б сказав, щонайменше, він повинен бути більш елегантним у виконанні цієї умови.

Тож не суворо помилка, а погана обробка крайового корпусу.

Це сказало, що якщо б я їх, це не те, що я, мабуть, вважатиму варті виправлення (до дорогого за занадто малу користь), хоча я можу згадати це команді для подальшої довідки, що це щось, з чим вони могли б впоратися краще.


1

Визначення помилки не має нічого спільного з поведінкою програмного забезпечення. Помилка визначається на основі відповідності поведінки програмного забезпечення його намірам. І хто повинен сказати, який був задум? (Оскільки я маю справу з програмістами, я поясню перше речення - не можлива поведінка програмного забезпечення, яке саме по собі становить помилку).

Майте на увазі, що помилка, як правило, має бути виправлена ​​розробниками програмного забезпечення. Отже, визначення помилки базується на тому, що вони хочуть виправити. Наприклад, "правильна робота більше 50% часу - це особливість, яку ми плануємо випустити в майбутніх версіях". Все, що можна визначити, не є помилкою, роблячи вигляд, що програмне забезпечення ніколи не було призначене для вирішення цієї конкретної проблеми. Тож на практиці те, що становить помилку, - суто політичний розгляд.

(Вбік, це скорочує обидва способи. Для клієнта, який не повинен платити за виправлення помилок, але повинен платити за нову розробку, "це не є певною функцією, про яку я тільки думав, але яку я зараз вирішено, що на 100% мається на увазі те, про що я говорив, "явно помилка.)


Чи не OpenBSD заявляє, що щось не документально підтверджене належним чином, помилкою, незалежно від того, що це таке?
Canageek

1

Я б не вважав, що не відключати помилку. Єдина помилка, якщо вона повинна була (за задумом, наміром) відключитися, і це не так. Я б зателефонував, що ви подали запит на функцію.

Однак, втрата даних після бою - це може бути помилка. Я не знаю багато про Starcraft, але я підозрюю, що це не за дизайном.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.