Часть полного текста документа: 2.1. Введение. Понятия процесса программирования качественно изменились.Производство программ приобрело массовый характер, существенноувеличились их объем и сложность. Разработка программных комп-лексов потребовала значительных усилий больших коллективовспециалистов. Программы перестали быть только вычислительнымии начали выполнять важнейшие функции по управлению и обработкеинформации в различных отраслях. Развитие и применение технологий проектирования комплексовпрограмм приводит к необходимости измерения и сравнения их эф-фективности прежде всего по степени влияния на качество прог-раммного продукта. Обеспечение высокого качества сложных комплексов программсвязано со значительными затратами труда разработчиков. Затра-ты на создание программ быстро увеличиваются при возрастаниитребований, причем для сложных комплексов весьма сложно дос-тичь высокого качества функционирования, и после обеспеченияобщей работоспособности могут понадобится годы труда для полу-чения необходимых показателей качества. Поэтому уже сегоднятребуются методы и средства, которые позволили бы заметно по-высить качество программ программ при относительно невысокихзатратах труда. 2.2. Обоснование выбора технологии тестирования. Как известно, при создании типичного программного проектаоколо 50% общего времени и более 50% общей стоимости расходу-ется на проверку (тестирование) разрабатываемой программы илисистемы. Кроме того, доля стоимости тестирования в общей стои-мости программ имеет тенденцию возрастать при увеличении слож-ности комплексов программ и повышения требований к их качест-ву. Учитывая это, при отработке технологии тестирования прог-рамм следует четко выделять определенное (по возможности неочень большое) число правил отладки, обеспечивающих высокоекачество программного продукта и снижающих затраты на его соз-дание. Тестирование - это процесс исполнения программы с цельюобнаружения ошибок. Одним из способов изучения поставленноговопроса является исследование стратегии тестирования, называе-мой стратегией черного ящика, тестированием с управлением поданным, или тестированием с управлением по входу-выходу. Прииспользовании этой стратегии программа рассматривается какчерный ящик. Тестовые данные используются только в соответст-вии со спецификацией программы (т.е. без учета знаний о еевнутренней структуре). При таком подходе обнаружение всех ошибок в программе яв-ляется критерием исчерпывающего входного тестирования. Послед-нее может быть достигнуто, если в качестве тестовых наборовиспользовать все возможные наборы входных данных. Следователь-но, мы приходим к выводу, что для исчерпывающего тестированияпрограммы требуется бесконечное число тестов, а значит постро-ение исчерпывающего входного теста невозможно. Это подтвержда-ется двумя аргументами: во-первых, нельзя создать тест, гаран-тирующий отсутствие ошибок; во-вторых, разработка таких тес-тов противоречит экономическим требованиям. Поскольку исчерпы-вающее тестирование исключается, нашей целью должна стать мак-симизация результативности вложения капиталовложений в тести-рование (максимизация числа ошибок, обнаруживаемых одним тес-том). Для этого необходимо рассматривать внутреннюю структурупрограммы и делать некоторые разумные, но, конечно, не облада-ющие полной гарантией достоверности предположения. ............ |