Cтраница 2
За эталон принимается маршрут исполнения программы и проверяются входные и выходные данные этого маршрута. Кроме того, могут быть выделены переменные или области их изменения, не влияющие на результаты при исполнении программы по этим маршрутам. При таком методе тесты генерируются на базе маршрутов исполнения и логической структуры программы. [16]
Тестирование структуры программ или потоков управления может проводиться вручную на символическом уровне и при детерминированном исполнении программы в процессе обработки реальных тестовых данных. Детерминированное тестирование структуры имеет целью проверку корректности маршрутов исполнения программ, обнаружение в основном логических ошибок формирования маршрутов и получение информации о полной совокупности реальных маршрутов исполнения в программе. Маршруты позволяют упорядоченно контролировать достигнутую степень проверки программы и предохраняют от случайного пропуска отдельных нетестировавшихся маршрутов. При планировании тестирования структуры программ возникают две задачи: формирование критериев выделения маршрутов для тестирования и выбор стратегий упорядочения выделенных маршрутов. [17]
Тестирование структуры программ или потоков управления может проводиться вручную на символическом уровне и при детерминированном исполнении программы в процессе обработки реальных тестовых данных. Детерминированное тестирование структуры имеет целью проверку корректности маршрутов исполнения программ, обнаружение в основном логических ошибок формирования маршрутов и получение информации о полной совокупности реальных маршрутов исполнения в программе. Маршруты позволяют упорядоченно контролировать достигнутую степень проверки программы и предохраняют от случайного пропуска отдельных нетестировавшихся маршрутов. При планировании тестирования структуры программ возникают две задачи: формирование критериев выделения маршрутов для тестирования и выбор стратегий упорядочения выделенных маршрутов. [18]
Первому виду обработки соответствуют данные в области определения, которая может делиться на некоторое множество сопрягающихся областей. Изменение данных внутри каждой такой области не влияет на маршрут исполнения программы. Поэтому для проверки функционирования программы из всего множества значений достаточно использовать при тестировании только несколько значений внутри и вблизи границ области. Количество величин, используемых для тестирования при обработке этого вида, может быть на два-три порядка меньше полного числа значений каждой переменной в области. Обработка данных в процессе тестирования проверяется на точность осуществляемых вычислений, на правильность масштабирования и размерности обрабатываемых величин, на корректность формирования логических величин. [19]
Эти стратегии тестирования позволяют сосредоточить внимание разработчиков на анализе наиболее важных компонент программ. При стратегии 1 первоочередному тестированию подлежат маршруты, наиболее длинные по числу команд и по времени исполнения. Им соответствуют обычно маршруты с наибольшим объемом вычислений и преобразований переменных. Эта стратегия целесообразна при планировании тестирования программ, имеющих вычислительный характер обработки данных при небольшом числе логических условий и маршрутов исполнения программ. При стратегии 2 приоритет отдается маршрутам, наиболее сложным по числу анализируемых условий. Такая стратегия предпочтительна при тестировании логических программ с небольшим количеством вычислений. При обеих стратегиях на завершающие этапы тестирования остаются простые по вычислениям или по логике маршруты, для которых необходимы относительно короткие тесты. [20]
Средства исполнения тестируемой программы по отладочному заданию обеспечивают контролируемое функционирование программы при тестовых исходных данных. При этом в различных точках программы регистрируются промежуточные и конечные результаты, требуемые отладочным заданием. Контролируемое исполнение программы позволяет накапливать данные для их последующей селекции и обобщения. Эти данные отображаются в текстовой и графической формах в виде реализованных маршрутов исполнения программы и значений переменных в заданных контрольных точках. В отдельных случаях полученные результаты могут сравниваться с эталонными значениями для автоматического выявления ошибок. Кроме того, результаты отладки накапливаются и обобщаются для оценки полноты выполненного тестирования и достигнутой корректности программы. [21]
Прежде всего автоматически выделяются циклы, в которых определяются маршруты, подлежащие тестированию. Для этого используются указания разработчика о стратегии выделения маршрутов при тестировании циклов. Кроме того, вводятся указания о количестве итераций циклов и их связях с маршрутами исполнения циклов. В результате разработчику отображаются данные о маршрутах в циклах, которые подлежат тестированию по выбранной стратегии. По данным о выделенных циклах производится расчет суммарного числа тестов и суммарной сложности тестирования циклов. Если сложность тестирования превышает реальные ресурсы, которые могут быть выделены для выполнения этих работ, то необходимо упростить стратегию тестирования циклов и повторить расчеты. [22]