Основы тестирования

некачественное
программное обеспечение приводило к огромным финансовым
потерям и человеческим жертвам

Программное
обеспечение, разработанное для Therac-25, было способно контролировать состояние оборудования и управлять им. Поэтому
было решено удалить аппаратные средства безопасности и полагаться в этом вопросе на программное обеспечение.

Шесть несчастных случаев с большими передозировками произошли между 1985 и 1987 годами

За короткую жизнь Therac-25 было обнаружено два программных дефекта Та же ошибка при воздействии Therac-20
приводила к отключению машины без передозировки, поскольку
в Therac-20 применялись независимые аппаратные устройства
безопасности, которые предотвращали ее.

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

Тестирование включает в себя:
 планирование,
 управление,
 подготовку тестовых данных и выбор условий,
 разработку и выполнение тестовых сценариев,
 проверку результатов,
 оценку критериев выхода,
 создание отчетов о процессе тестирования

Существуют различные принципы тестирования, но в качестве основных можно назвать следующие:
1) тестирование показывает наличие дефектов, но не доказывает, что их нет. Вероятность наличия дефектов снижается, но отсутствие дефектов не доказывает абсолютную корректность программного обеспечения;
2) тестирование необходимо начинать как можно раньше в
жизненном цикле разработки системы. Тестирование не может
быть бесцельным. У каждой активности необходимо определить четкую цель;
3) полное или исчерпывающее тестирование невозможно,
так как существует огромное количество комбинаций, предусловий,
постусловий и т. д. Для того чтобы наиболее четко определить, как и
что необходимо тестировать, применяются анализ рисков, расстановка приоритетов, оценка критичности функционала и тд

ВИДЫ ТЕСТИРОВАНИЯ

По объекту тестирования

СТАНДАРТЫ, РЕГЛАМЕНТИРУЮЩИЕ ПРОЦЕСС
ТЕСТИРОВАНИЯ

IEEE 12207/ISO/IEC 12207-2008 Software Life Cycle Processes – описывает жизненный цикл программного обеспечения и место
различных процессов в нём;
 ISO/IEC 9126-1:2001 Software Engineering – Software Product Quality – описывает характеристики качества программных продуктов;
 IEEE 829-1998 Standard for Software Test Documentation –
описывает виды документов, служащих для подготовки тестов и тд