10 причин появления багов в софте

Автор: | 03.01.2009

Кроме шуток:

habrahabr → Тестирование → Тестирование ПО: как объяснить руководителю, что 2 х 2=4?

Простой, но внезапный вопрос чуть не поставил в тупик: «Почему тестировать должны тестировщики, а не аналитики, разработчики или пользователи?»

К записи 55 комментариев, и ни одного внятного ответа.

Далее следует мой любительский и очень краткий, буквально тезисный перевод свежей заметки “Top 10 reasons why there are Bugs/Defects in Software!” от 15 дек 2008.

Наверное, это ответ на процитированный вопрос хабрахабравчанина.

Почему в программном обеспечении бывают ошибки?

  1. Человеческий фактор

    Софт делают люди. А люди не совершенны.

    Собственно, на этом пункте можно и остановиться, настолько он всеобъемлющ и великолепен…

  2. Проблемы в общении

    Расхождение между ожидаемым и фактическим, когда “Мы же думали, что вы имеете ввиду…” и “Имеем мы ввиду то, что вы там думали…”

  3. Нереальные сроки разработки

    Недостаток временных ресурсов так же критичен, как и недостаток финансирования.

    Но даже если у девелопера есть вечность на разработку очередного калькулятора, я потом к нему зайду и все равно буду обеспечен работой…

  4. Плохой дизайн софта

    В эпоху комплексного программного обеспечения для поиска наилучшего решения постоянно приходится балансировать на гранях предположений, догадок и понимания о том, что, собственно, кодим…

  5. Кривые руки кодеров

    Иногда ошибки возникают как следствие плохого кодинга…

  6. Плохой контроль версий

    Недостаточный или же поверхностный контроль версий кода – логово багов, которые “вылезают” при регрешне.

    Да, это страшно!

  7. Дефекты во внешних приложениях

    Иногда проблема может быть не только в том, что делаем, но и в том, посредством чего делаем.

    Плохому танцору вечно что-то мешает…

  8. Низкие навыки тестирования

    Тестировщики в этом не признаются, но будем честны: это бывает.

    Самое время для того, чтобы сказать “Вооот! Нет тестировщиков на проекте, ну и воооот вам…”

  9. Изменения “в последнюю минуту”

    Изменения могут быть внесены в последнюю минуту и в требованиях, и в инфраструктуре, и в инструментах девелоперов, и в платформе…

Эй, пацаны, а вы заметили, что я обещал десять пунктов, а написал только девять? Аааа, это же страшный баг! Почему бы вам самим не приписать тут десятый (11-тый, 12-тый…) пункт?

Один из комментариев к переводимому тексту принадлежит сэру Кему Канеру. Суть:

Development groups rely on test groups the way that countries rely on regulators. We trust them to do their work well and we do other things ourselves instead of redoing the work that we know will be done by the testers (regulators). If the testers do their work poorly, problems stay in the product — partially because the testers don’t find them and partially because the testers don’t alert management to more general trends of weakness that cause corrective action in design and programming.

So, I agree, in some contexts, bad testing can certainly lead to lower quality.

Автор блога немедленно распоясался 🙂

@ Dr. Cem Kaner,

You have made me the Happiest tester today by leaving behind your comment on my blog.

It is a privilege and honor to have comment of a testing guru like you on my post, who also happens to be one of the pioneers of Context Driven Community.

It is simply brilliant how you correlated regulators (Security and Exchange Commission) with testers.

Оно и понятно…

10 причин появления багов в софте: 7 комментариев

  1. Алексей Лупан

    если вы не наймете тестеров, вам придется заставить программистов заниматься тестированием. а если не нравится что тестеры часто меняются, то как вам понравится, если придется искать замену классному программисту
    тестеры дешевле, поэтому они и тестируют

  2. kat

    Ах, как печально это Ваше “тестеры дешевле”.
    Думаю, не стоит забывать и про психологическую сторону такого разделения труда.
    Мотивация программиста – это создать продукт и желательно побыстрее.
    Мотивация тестировщика – это найти ошибки, и желательно побольше и посерьезней.
    При наличии оппозиции, знании того, что работа будет тщательно проверяться, программист будет тщательнее подходить к задаче.
    А программист без тестировщика – это как однопартийная система (тут пофантазируйте о последствиях).
    P.S. Cem Kaner скорее Сэм, чем Кем. Или Вы что-то знаете?

  3. Алексей Лупан

    Знаю. Видео-урок Канера, в первых секундах которого он произносит: “Май нэйм из Кем Кэнер”.

    При наличии оппозиции, знании того, что работа будет тщательно проверяться, программист будет тщательнее подходить к задаче

    Не согласен, сужу по собственным наблюдениям за бытом программистов.
    Им не нужен надсмотрщик-проверяльщик, призрак которого где-то маячит и скоро как придет да как проверит всё и вся… Им нужен помощник, равноценный им по уму-разуму чувак, который понимает, что, как и зачем они делают, и может подсказать, если где-то как-то слажали.
    Пресловутый пользователь на эту роль не подходит. Менеджер проекта – тоже. Голодные дети дома и кредит за машину – тоже нет.
    Мотивация программиста – создать продукт, об авторстве которого будет приятно сообщать когда-то потом, + забрать себе все существующее бабло и пойти домой.
    Мотивация тестировщика – та же самая.
    Вот если тестировщику будет суждено “вариться” ТОЛЬКО в обществе тестировщиков, то да, единственной пузомеркой является количество и важность найденных багов. Причем количество считается более ценным, почему-то…

  4. kat

    Надо же, как хорошо про мотивацию написали. В самую точку. Но снова как-то печально получается, неужели деньги и немного славы – это все, ради чего мы работаем?

  5. Алексей Лупан

    Деньги – это как средства гигиены, например, наличие зубной пасты в ванной. Если рано утром выясняется, что зубной пасты нет…
    А когда она есть, особого внимания к себе не привлекает. Ну, есть. Должна быть. “А что, бывает иначе? Как вы там в своей стране живете-то?
    Слава – это ориентир того, что до сих пор ты все делаешь правильно, и заслуживаешь признание и одобрение коллег.
    Мы стадные существа. Поэтому мнение стада относительно себя самого – неимоверно важно для каждого.

    Например, для журналиста (настоящего журналиста, который в газетах пишет так, что все кругом шатаются от восторга), единственным ориентиром собственной крутости (или ничтожества) было есть и будет мнение его коллег, а не читателей или подписчиков. Конечно, у подписчиков и читателей по этому поводу очень-очень другое мнение…

    От мнения окружающих зависит не только состояние личного “эго”, но и положение в стаде. Ну, или в обществе.
    В некотором смысле, количество денег сильно влияет на это положение, но в действительности интересует признание личных достижений, а не признание наличия большого количества зубной пасты 🙂
    Да, связь между существенным признанием и, вследствие этого, вероятностью увеличения денежного запаса, тоже была, есть и будет (есть).

  6. White_Tiger

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

  7. Алексей Лупан

    Наладьте с ними отношения, бо это нездоровый подход.
    Хотя поначалу весьма прикольно.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.