Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения. Фундамен...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
935.81 Кб
Скачать

Глава 2: Желаемое и действительное в жизни тестировщика 47

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

Программа не работает правильно

По примерным оценкам на обнаружение и исправление ошибок тратит­ся от 40 до 80 процентов общей стоимости разработки программного обес­печения. Такие огромные деньги компании платят не за то, чтобы убедиться, что программы работают. Они вынуждены тратить деньги пото­му, что их программы не работают — в них есть ошибки, и владельцы компаний хотят, чтобы эти ошибки были исправлены. Как бы грамотно, по самым современным методикам, ни была организована разработка, ошиб­ки остаются всегда.

Сколько в программе ошибок?

По оценкам Бейзера (Beizer), сделанным им в 1990 году, передаваемые на тестирование программы в среднем содержат от 1 до 3 ошибок на каж­дые 100 исполняемых операторов. И хотя есть очень талантливые програм­мисты, у которых ошибок мало, все же совсем без ошибок не работает никто.

Текущие ошибки _

От 1 до 3 ошибок на 100 строк кода в программе остается тогда, когда программист сдает работу тестировщику, утверждая, что она проверена и ошибок в ней нет. Но сам Бейзер приводил количество ошибок, допускае­мых им в ходе проектирования и написания программы, — 1,5 ошибок на 1 ис­полняемый оператор. Сюда он включил все ошибки, в том числе и опечатки.

Это значит, что, если каждый оператор записан в отдельной строке, на 10 строк кода приходится 150 ошибок.

Большинство программистов сами исправляют 99% своих текущих ошибок. Не удивительно, что они полагают, что исправили все. Но 1% ошибок все же остается: найти их и есть ваша работа.

Если программа работает неправильно, значит ли это, что тестирование выполнено плохо?

Это прозвучит смешно, но в нашей практике встречались менеджеры, возмущавшиеся, что тестировщики все еще выявляют ошибки, когда сро­ки работ уже подходят к концу. Иногда их недовольство высказывалось в полушутливом топе, а иногда выражалось и в прямых обвинениях: “Все

48 Часть I: Основы

ошибки да ошибки! Когда же наконец вы подтвердите, что программа работает и мы можем ее продавать?” Столкнувшись с таким отношением, не стоит теряться. Убедиться, что программа работает — это мечта неопыт­ных менеджеров, а вовсе не ваша задача.

Не стоит приступать к тестированию с надеждой на отсутствие ошибок

Для работы тестировщика очень важно то, как он настроен (Майерс, 1979). Если вы уверены, что в программе есть ошибки, вы будете искать их гораздо тщательнее, чем если скажете себе: “Это прекрасная программа, и она правильно работает, мне нужно просто в этом убедиться”. Любой пси­холог охотно подтвердит, что человек всегда видит только то, что хочет видеть. Поэтому, например, так трудно при чтении текста заметить в нем орфографические ошибки: ведь ум сразу корректирует увиденное глазами.

Изучая работу различных исследователей ученые-психологи выявили ряд интересных закономерностей. Они обнаружили, что, если исследова­тель подсчитывает количество определенных сигналов, регистрируемых не приборами, а его собственными органами восприятия, результаты подсче­тов очень сильно зависят от его ожиданий (Green & Sweets, 1966). Напри­мер, если исследователь предполагает, что сигналов будет мало, он может часть их просто не заметить. Если к влиянию собственных предположений исследователя добавляются еще и другие психологические факторы, напри­мер, поощрение при одних результатах исследования и неприятности при других, результаты эти будут искажены еще сильнее.

То же будет и с вами: если вы ожидаете, что программа полна ошибок, за выявление которых вас к тому же еще и поощряют, то обнаружите их множество. Несколько выявленных ошибок будут даже ложной тревогой. Но если вы думаете, что программа работает правильно, а заказчики еще и жалуются на каждую найденную ошибку и очень недовольны, если тре­вога оказывается ложной — тогда вы пропустите много серьезных проблем.

А вот еще одно наблюдение психологов: даже самые умные, опытные, аккуратные и ответственные экспериментаторы подсознак-льно пропускают те тесты, которые могут опровергнуть их теорию или создать сложности в дальнейшей работе. Если же пропустить тест невозможно, его результаты неверно интерпретируются, игнорируются или при их анализе допускаются ошибки (Rosenthal, 1966).

Итак, чтобы лучше всего выполнить свою paOoiv, нацельте себя на выявление максимального количества ошибок. Нужно считать программу плохой, желать, чтобы в ней произошел сбой, и ммик-пгрироваться на поиске ее самых слабых мест.

Какой бы суровой ни казалась такая ионншн, именно она наиболее эффективна.