Основы тестирования
некачественное
программное обеспечение приводило к огромным финансовым
потерям и человеческим жертвам
Программное
обеспечение, разработанное для 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 –
описывает виды документов, служащих для подготовки тестов и тд