double arrow

Тестирование ПП

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

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

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

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

Сократить количество ошибок можно несколькими путями:

1. применять спец.методы и средства написания программы (например, case-средства)

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

3. строго соблюдать и контролировать (!) соответствие создаваемых программ в проектной документации

4. еще один эффективный, но трудоемкий метод сокращения ошибок – тестирование. Обычно ресурсов для полного тестирования не хватает. Поэтому полное тестирование с проверкой системы во всех режимах и со всеми параметрами труднореализуемо.

Одной из основных особенностей тестирования является отсутствие эталона программы, в которой можно было бы сравнивать вновь созданный продукт. Отсюда возникает трудность определения момента, когда необходимое качество программы достигнуто. Эталоном в этом случае служит проектная документация, которая приводит разницу взглядов различных людей на качество программы к единому знаменателю. При отсутствии такой документации невозможно протестировать программу, т.к. взгляд на объем и качество выполняемых функций не совпадает не только у разных людей, но и может различаться у одного человека в разные промежутки времени.

Важно определить достижения необходимого качества программ.

1. отсутствие синтаксических ошибок и аварийных остановок в программе, что достигается прогоном программы с различными данными по максимальному числу ветвей. Для определения участков, которые ни разу не были запущены при прогоне программы, существуют спец.средства. Из практики работы можно сделать вывод, что участок программы, который ни разу не был запущен при тестировании, примерно в 80% случаев - неработоспособен.

2. выполняемые функции программ соответствуют технической документации

3. расчетные значения, полученные при помощи процедур расчета, соответствуют эталонным.

Часто первые два уровня можно протестировать одновременно, внося соответствующие коррективы в программную документацию. Последний уровень – самый длительный и трудно тестируемый, т.к. сложно подготовить тест на все возможные сочетания данных. Поэтому существует т.н. β-тестирование, т.е. тестирование с самими пользователями.

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

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

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

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


Сейчас читают про: