Тестеры обеспечения качества - какие шаги вы предпринимаете, чтобы «сломать» программное обеспечение? - PullRequest
1 голос
/ 10 декабря 2010

Используете ли вы программное обеспечение как оно было непреднамеренным? Как вы ломаете свое программное обеспечение?

Ответы [ 3 ]

7 голосов
/ 11 декабря 2010

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

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

Настоящая ошибка иногда просто игнорируется.Система выполняет все функции, которые должен был выполнить программист, но это не то, что нужно клиенту.Ошибка, которая на самом деле уже является ошибкой по требованию.

Помимо этого замечания обычно ошибки присутствуют в таких вещах, как

  • Нет проверки ввода данных
  • Границы не проверены (оченьбольшие значения, очень маленькие значения)
  • Отсутствует обработка ошибок (что приводит к разрыву соединения системы).Диск переполнен и т. Д.
  • Ошибки интерфейса обнаруживаются только после полного тестирования системы
  • Проблемы с недопустимыми символами
  • Проблемы со слишком длинными строками
  • Проблемыс пустыми значениями
  • Проблемы с комбинациями данных не очевидны

Таким образом, систематическое тестирование всех возможных комбинаций необходимо, если вы собираетесь взломать систему

2 голосов
/ 13 декабря 2010

Редко на 100% гарантируется, что система будет использоваться только по назначению.Для команды важно понять, как система будет вести себя, если плохие данные «каким-то образом» попадут в систему.Подобные проблемы на самом деле могут быть очень важными, например, проблемы безопасности, которые могут привести к раскрытию личных данных клиентов, потому что никто не предназначен для ввода операторов SQL в это поле ;это должно было быть только для студенческих имен.Так что, да, я абсолютно проверяю, что происходит, когда система не используется «по назначению».Системы должны изящно выходить из строя, а неуместные сбои - это ошибки.Неподтвержденные сбои или сбои, которые сложно исследовать, также могут быть ошибками.

Точные шаги, которые я предпринимаю для взлома программного обеспечения, зависят от того, что тестируется.Как правило, наша команда делит функциональные тестовые примеры на 3 группы при создании оценок: «Тестирование по счастливому пути», которое просматривает каждую функцию один раз с наиболее простым «ожидаемым входным» вариантом использования, который может предложить тестер.«Странное» тестирование, которое представляет собой более тщательный обзор, охватывающий все крошечные кусочки логики, а также необычные допустимые случаи, о которых программисты могли и не задумываться (в первую очередь, граничное тестирование и тестирование классов эквивалентности).И, наконец, тестирование на «ошибки», которое заключается во введении неверных и неожиданных входных данных для попытки взлома кода и часто включает в себя, в частности, тестирование для регистрации, мониторинга и устранения ошибок.Как правило, тестирование «счастливого пути» довольно быстрое, но «странное» и «ошибочное» тестирование требует много времени.Это просто функциональное тестирование, и оно не включает другие типы тестирования, такие как тестирование интеграции или производительности.

Мы также обычно стараемся получить живые данные для тестирования, когда они доступны;тестировщики могут составить большой список возможных непреднамеренных применений, и при этом пропустить непреднамеренное использование, которое придет заказчику.

1 голос
/ 22 декабря 2010

Короткая история - Исследовательские тесты вместе с чартерами

...