|
Тестовые испытания программы представляют собой процесс, направленный на то, чтобы гарантировать ее нормальную работу во всех предполагаемых практических ситуациях. При этом должны осуществляться два вида испытаний: на соответствие созданной программы поставленной задаче и на правильность ее функционирования.
Первый вид испытаний невозможно провести, если задача определена не полностью, нечетко и непоследовательно. Все результаты, соответствующие той или иной совокупности входов, должны быть предусмотрены. Требование четкости означает, что как постановщик задачи, так и программист должны ясно представлять себе, чего они хотят добиться от программы. Требование ^последовательности предполагает недопустимость какой-либо неопределенности. Когда программная спецификация обладает свойствами полноты, четкости и последовательности, то человек, проводящий испытания программы, может рассматривать ее как "черный ящик" (не заботясь о ее внутренней структуре).
Один из возможных способов контроля за соответствием спецификации программе состоит в том, чтобы поручать постановщику задачи формировать тестовые данные и указывать соответствующие им правильные результаты. Эта мера позволяет, во-первых, гарантировать, что постановщики задач хорошо знают, чего хотят, и, во-вторых, проверять, правильно ли программист понимает задачу.
  Ряд проверок можно провести еще до начала какой-либо работы по кодированию программы. Например, некоторые ошибки алгоритма могут быть выявлены и легко устранены в результате "ручного моделирования" логики работы программы.
В подходе к тестированию программ возможны две крайности. Первая состоит в том, чтобы глубоко изучить программу и использовать ее в качестве основы для проведения испытаний. Однако в данном случае, если текст программы не соответствует ее спецификации, этот факт никогда не обнаружится, и тот, кто испытывает программу, будет вынужден для организации тестирования обращаться к ее функциональному описанию.
Вторая крайность имеет место тогда, когда для тестирования используется только программная спецификация, а сама программа рассматривается как "черный ящик". Предположим, перед вами стоит задача разработать тестовые данные для программы, которая считывает некоторое целое число, обозначающее радиус круга, и затем вычисляет площадь последнего. Придумайте для этой программы контрольные примеры, считая программу "черным ящиком".
А теперь допустим, выдвигается требование, чтобы программа выдавала результаты в следующем виде: если радиус равен единице, то площадь равна если радиус равен двум, то площадь равна и т. д. Здесь уже контрольные примеры, разработанные вами для предыдущего случая, не смогут обеспечить адекватной проверки программы. Дело в том, что для организации такой проверки необходимо совместное использование и программной спецификации и теста программы.
⇐5.5. Невозможность исчерпывающего тестирования || Оглавление || 5.7. Необходимость раннего тестирования⇒
Домен хостинг доменов. |