Критерии выбора тестов

  • 20.04.2019
Требования к идеальному критерию были выдвинуты в работе :
  • Критерий должен быть достаточным , т.е. показывать, когда некоторое конечное множество тестов достаточно для тестирования данной программы.
  • Критерий должен быть полным , т.е. в случае ошибки должен существовать тест из множества тестов, удовлетворяющих критерию, который раскрывает ошибку.
  • Критерий должен быть надежным , т.е. любые два множества тестов, удовлетворяющих ему, одновременно должны раскрывать или не раскрывать ошибки программы
  • Критерий должен быть легко проверяемым , например вычисляемым на тестах
  • Для нетривиальных классов программ в общем случае не существует полного и надежного критерия , зависящего от программ или спецификаций.Поэтому мы стремимся к идеальному общему критерию через реальные частные.

    Классы критериев

  • Структурные критерии используют информацию о структуре программы (критерии так называемого "белого ящика")
  • Функциональные критерии формулируются в описании требований к программному изделию (критерии так называемого "черного ящика" )
  • Критерии стохастического тестирования формулируются в терминах проверки наличия заданных свойств у тестируемого приложения, средствами проверки некоторой статистической гипотезы.
  • Мутационные критерии ориентированы на проверку свойств программного изделия на основе подхода Монте-Карло.
  • Структурные критерии (класс I).

    Структурные критерии используют модель программы в виде "белого ящика", что предполагает знание исходного текста программы или спецификации программы в виде потокового графа управления. Структурная информация понятна и доступна разработчикам подсистем и модулей приложения, поэтому данный класс критериев часто используется на этапах модульного и интеграционного тестирования (Unit testing, Integration testing).Структурные критерии базируются на основных элементах УГП, операторах, ветвях и путях.
  • Условие критерия тестирования команд (критерий С0) - набор тестов в совокупности должен обеспечить прохождение каждой команды не менее одного раза. Это слабый критерий, он, как правило, используется в больших программных системах, где другие критерии применить невозможно.
  • Условие критерия тестирования ветвей (критерий С1) - набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза. Это достаточно сильный и при этом экономичный критерий, поскольку множество ветвей в тестируемом приложении конечно и не так уж велико. Данный критерий часто используется в системах автоматизации тестирования.
  • Условие критерия тестирования путей (критерий С2) - набор тестов в совокупности должен обеспечить прохождение каждого пути не менее 1 раз. Если программа содержит цикл (в особенности с неявно заданным числом итераций), то число итераций ограничивается константой (часто - 2, или числом классов выходных путей).
  • На приведен пример простой программы. Рассмотрим условия ее тестирования в соответствии со структурными критериями .

    1 public void Method (ref int x) { 2 if (x>17) 3 x = 17-x; 4 if (x==-13) 5 x = 0; 6 } Пример 3.1. Пример простой программы, для тестирования по структурным критериям

    1 void Method (int *x) { 2 if (*x>17) 3 *x = 17-*x; 4 if (*x==-13) 5 *x = 0; 6 } Пример 3.1.1. Пример простой программы, для тестирования по структурным критериям

    Тестовый набор из одного теста, удовлетворяет критерию команд (C0):(X,Y)={(x вх =30, x вых =0)} покрывает все операторы трассы 1-2-3-4-5-6Тестовый набор из двух тестов, удовлетворяет критерию ветвей (C1):(X,Y)={(30,0), (17,17)} добавляет 1 тест к множеству тестов для С0 и трассу 1-2-4-6. Трасса 1-2-3-4-5-6 проходит через все ветви достижимые в операторах if при условии true , а трасса 1-2-4-6 через все ветви, достижимые в операторах if при условии false .Тестовый набор из четырех тестов, удовлетворяет критерию путей (C2):(X,Y)={(30,0), (17,17), (-13,0), (21,-4)} Набор условий для двух операторов if c метками 2 и 4 приведен в

    Таблица 3.1. Условия операторов if
    (30,0) (17,17) (-13,0) (21,-4)
    2 if (x>17) > >
    4 if (x==-13) = =

    Критерий ветвей С2 проверяет программу более тщательно, чем критерии - C1, однако даже если он удовлетворен, нет оснований утверждать, что программа реализована в соответствии со спецификацией.Например, если спецификация задает условие, что|x|100 , невыполнимость которого можно подтвердить на тесте (-177,-177) . Действительно, операторы 3 и 4 на тесте (-177,-177) не изменят величину х=-177 и результат не будет соответствовать спецификации.Структурные критерии не проверяют соответствие спецификации, если оно не отражено в структуре программы. Поэтому при успешном тестировании программы по критерию C2 мы можем не заметить ошибку, связанную с невыполнением некоторых условий спецификации требований.

    Функциональные критерии (класс II)

    Функциональный критерий - важнейший для программной индустрии критерий тестирования. Он обеспечивает, прежде всего, контроль степени выполнения требований заказчика в программном продукте. Поскольку требования формулируются к продукту в целом, они отражают взаимодействие тестируемого приложения с окружением. При функциональном тестировании преимущественно используется модель "черного ящика". Проблема функционального тестирования - это, прежде всего, трудоемкость; дело в том, что документы, фиксирующие требования к программному изделию (Software requirement specification, Functional specification и т.п.), как правило, достаточно объемны, тем не менее, соответствующая проверка должна быть всеобъемлющей.Ниже приведены частные виды функциональных критериев .

    Тестирование пунктов спецификации - набор тестов в совокупности должен обеспечить проверку каждого тестируемого пункта не менее одного раза.

    Спецификация требований может содержать сотни и тысячи пунктов требований к программному продукту и каждое из этих требований при тестировании должно быть проверено в соответствии с критерием не менее чем одним тестом

    Тестирование классов входных данных - набор тестов в совокупности должен обеспечить проверку представителя каждого класса входных данных не менее одного раза.

    При создании тестов классы входных данных сопоставляются с режимами использования тестируемого компонента или подсистемы приложения, что заметно сокращает варианты перебора, учитываемые при разработке тестовых наборов. Следует заметить, что перебирая в соответствии с критерием величины входных переменных (например, различные файлы - источники входных данных), мы вынуждены применять мощные тестовые наборы. Действительно, наряду с ограничениями на величины входных данных, существуют ограничения на величины входных данных во всевозможных комбинациях, в том числе проверка реакций системы на появление ошибок в значениях или структурах входных данных. Учет этого многообразия - процесс трудоемкий, что создает сложности для применения критерия

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

    Следует заметить, что грамматика должна быть достаточно простой, чтобы трудоемкость разработки соответствующего набора тестов была реальной (вписывалась в сроки и штат специалистов, выделенных для реализации фазы тестирования)

    Тестирование классов выходных данных - набор тестов в совокупности должен обеспечить проверку представителя каждого выходного класса, при условии, что выходные результаты заранее расклассифицированы, причем отдельные классы результатов учитывают, в том числе, ограничения на ресурсы или на время (time out).

    При создании тестов классы выходных данных сопоставляются с режимами использования тестируемого компонента или подсистемы, что заметно сокращает варианты перебора, учитываемые при разработке тестовых наборов.

    Тестирование функций - набор тестов в совокупности должен обеспечить проверку каждого действия, реализуемого тестируемым модулем, не менее одного раза.

    Очень популярный на практике критерий, который, однако, не обеспечивает покрытия части функциональности тестируемого компонента, связанной со структурными и поведенческими свойствами, описание которых не сосредоточено в отдельных функциях (т.е. описание рассредоточено по компоненту).

    Критерий тестирования функций объединяет отчасти особенности структурных и функциональных критериев . Он базируется на модели "полупрозрачного ящика", где явно указаны не только входы и выходы тестируемого компонента, но также состав и структура используемых методов (функций, процедур) и классов.

    Комбинированные критерии для программ и спецификаций - набор тестов в совокупности должен обеспечить проверку всех комбинаций непротиворечивых условий программ и спецификаций не менее одного раза.

    При этом все комбинации непротиворечивых условий надо подтвердить, а условия противоречий следует обнаружить и ликвидировать.

    Пример применения функциональных критериев тестирования для разработки набора тестов по критерию классов входных данных

    Пусть для решения задачи тестирования системы "Система управления автоматизированным комплексом хранения подшипников" (см. Приложение 1, FS) был разработан следующий фрагмент спецификации требований:
  • Произвести опрос статуса склада (вызвать функцию GetStoreStat ). Добавить в журнал сообщений запись "СИСТЕМА: Запрошен статус СКЛАДА". В зависимости от полученного значения произвести следующие действия:
  • Произвести опрос терминала оси (вызвать функцию получения сообщения от терминала - GetAxlePar ). В журнал сообщений должно быть добавлено сообщение "СИСТЕМА: Запрошены параметры оси". В зависимости от возвращенного функцией GetAxlePar значения должны быть выполнены следующие действия ():
  • Определим классы входных данных для параметра - статус склада:
  • Статус склада = 0 (правильный).
  • Статус склада = 4 (правильный).
  • Статус склада = 16 (правильный).
  • Статус склада = 32 (правильный).
  • Статус склада = любое другое значение (ошибочный).
  • Теперь рассмотрим тестовые случаи:

    Тестовый случай 1 (покрывает класс 4):

    Статус склада - 32.

    Система запрашивает статус склада (вызов функции GetStoreStat ) и получает 32

    Тестовый случай 2 (покрывает класс 5):

    Состояние окружения (входные данные - X ):

    Статус склада - 12dfga.

    Ожидаемая последовательность событий (выходные данные - Y ):

    Система запрашивает статус склада (вызов функции GetStoreStat ) и согласно пункту спецификации при ошибочном значении статуса склада в журнал добавляется сообщение "СКЛАД: ОШИБКА: Неопределенный статус".

    Стохастические критерии (класс III)

    Стохастическое тестирование применяется при тестировании сложных программных комплексов - когда набор детерминированных тестов (X,Y) имеет громадную мощность. В случаях, когда подобный набор невозможно разработать и исполнить на фазе тестирования, можно применить следующую методику.
  • Разработать программы - имитаторы случайных последовательностей входных сигналов {x} .
  • Вычислить независимым способом значения {y} для соответствующих входных сигналов {x} и получить тестовый набор (X,Y) .
  • Протестировать приложение на тестовом наборе (X,Y) , используя два способа контроля результатов:
  • Критерии стохастического тестирования
  • Cтатистические методы окончания тестирования - стохастические методы принятия решений о совпадении гипотез о распределении случайных величин. К ним принадлежат широко известные: метод Стьюдента (St ), метод Хи-квадрат (χ 2 ) и т.п.
  • Метод оценки скорости выявления ошибок - основан на модели скорости выявления ошибок , согласно которой тестирование прекращается, если оцененный интервал времени между текущей ошибкой и следующей слишком велик для фазы тестирования приложения.

  • Рис. 3.1.

    При формализации модели скорости выявления ошибок () использовались следующие обозначения:N - исходное число ошибок в программном комплексе перед тестированием,C - константа снижения скорости выявления ошибок за счет нахождения очередной ошибки,t 1 ,t 2 ,…t n - кортеж возрастающих интервалов обнаружения последовательности из n ошибок,T - время выявления n ошибок.Если допустить, что за время T выявлено n ошибок, то справедливо соотношение (1), утверждающее, что произведение скорости выявления i ошибки и времени выявления i ошибки есть 1 по определению:

    (1) (N-i+1)*C*t i = 1

    В этом предположении справедливо соотношение (2) для n ошибок:

    (2) N*C*t 1 +(N-1)*C*t 2 +…+(N-n+1)*C*t n =n N*C*(t 1 +t 2 +…+t n) - C*Σ(i-1)t i = n NCT - C*Σ(i-1)t i = n

    Если из (1) определить t i и просуммировать от 1 до n , то придем к соотношению (3) для времени T выявления n ошибок

    (3) Σ1/(N-i+1) = TC

    Если из (2) выразить C , приходим к соотношению (4):

    (4) C = n/(NT - Σ(i-1)t i)

    Наконец, подставляя C в (3), получаем окончательное соотношение (5), удобное для оценок:

    (5) Σ1/(N-i+1) = n/(N - 1/T*Σ(i-1)t i)

    Если оценить величину N приблизительно, используя известные методы оценки числа ошибок в программе , или данные о плотности ошибок для проектов рассматриваемого класса из исторической базы данных проектов, и, кроме того, использовать текущие данные об интервалах между ошибками t 1 ,t 2 …t n , полученные на фазе тестирования, то, подставляя эти данные в (5), можно получить оценку t n+1 -временного интервала необходимого для нахождения и исправления очередной ошибки (будущей ошибки).Если t n+1 >Td - допустимого времени тестирования проекта, то тестирование заканчиваем, в противном случае продолжаем поиск ошибок.Наблюдая последовательность интервалов ошибок t 1 ,t 2 …t n , и время, потраченное на выявление n ошибок T=Σt i , можно прогнозировать интервал времени до следующей ошибки и уточнять в соответствии с (4) величину C .Критерий Moranda очень практичен, так как опирается на информацию, традиционно собираемую в процессе тестирования.

    Мутационный критерий (класс IV).

    Постулируется, что профессиональные программисты пишут сразу почти правильные программы, отличающиеся от правильных мелкими ошибками или описками типа - перестановка местами максимальных значений индексов в описании массивов, ошибки в знаках арифметических операций, занижение или завышение границы цикла на 1 и т.п. Предлагается подход, позволяющий на основе мелких ошибок оценить общее число ошибок, оставшихся в программе.Подход базируется на следующих понятиях: Мутации - мелкие ошибки в программе. Мутанты - программы, отличающиеся друг от друга мутациями .Метод мутационного тестирования - в разрабатываемую программу P вносят мутации , т.е. искусственно создают программы-мутанты P1 , P2 ... Затем программа P и ее мутанты тестируются на одном и том же наборе тестов (X,Y) .Если на наборе (X,Y) подтверждается правильность программы P и, кроме того, выявляются все внесенные в программы-мутанты ошибки, то набор тестов (X,Y) соответствует мутационному критерию , а тестируемая программа объявляется правильной .Если некоторые мутанты не выявили всех мутаций , то надо расширять набор тестов (X,Y) и продолжать тестирование.

    Пример применения мутационного критерия

    Тестируемая программа P приведена на . Для нее создается две программы-мутанта P1 и P2 .В P1 изменено начальное значение переменной z с 1 на 2 ().В P2 изменено начальное значение переменной i с 1 на 0 и граничное значение индекса цикла с n на n-1 ().При запуске тестов (X,Y) = {(x=2,n=3,y=8),(x=999,n=1,y=999), (x=0,n=100,y=0 } выявляются все ошибки в программах-мутантах и ошибка в основной программе, где в условии цикла вместо n стоит n-1 :

    // Метод вычисляет неотрицательную // степень n числа x static public double PowerNonNeg(double x, int n) { double z=1; if (n>0) { for (int i=1;n-1> Пример 3.2. Основная программа P

    double PowerNonNeg(double x, int n) { double z=1; int i; if (n>0) { for (i=1;n-1> Пример 3.2.1. Основная программа P

    Измененное начальное значение переменной z в мутанте Р1 помечено светлым тоном:

    // Метод вычисляет неотрицательную // степень n числа x static public double PowerMutant1(double x, int n) { double z=2; if (n>0) { for (int i=1;n>=i;i++) { z = z*x; } } else Console.WriteLine("Ошибка! Степень числа n должна быть больше 0."); return z; } Пример 3.3. Программа мутант P1.

    double PowerMutant1(double x, int n) { double z=2; int i; if (n>0) { for (i=1;n>=i;i++) { z = z*x; } } else printf("Ошибка! Степень числа n должна быть больше 0. "); return z; } Пример 3.3.1. Программа мутант P1.

    Измененное начальное значение переменной i и границы цикла в мутанте P2 помечено светлым тоном:

    // Метод вычисляет неотрицательную // степень n числа x static public double PowerMutant2(double x, int n) { double z=1; if (n>0) { for (int i=0;n-1>=i;i++) { z = z*x; } } else Console.WriteLine("Ошибка! Степень числа n должна быть больше 0"); return z; } Пример 3.4. Программа-мутант P2.

    double PowerMutant2(double x, int n) { double z=1; int i; if (n>0) { for (i=0;n-1>=i;i++) { z = z*x; } } else printf("Ошибка! Степень числа n должна быть больше 0. "); return z; } Пример 3.4.1. Программа-мутант P2.

    Первый в истории домашний тест на беременность был разработан в 1971 году, и результат его можно было ожидать лишь спустя 2-3 часа. Но наука не стоит на месте, и на сегодняшний день мы имеем широкий выбор тестов на беременность, отличающихся как удобством проведения тестирования, так и сроком результата и ценовой категорией.

    Основными критериями по выбору теста у большинства женщин являются его надёжность, удобство, цена и быстрый результат. В случае, когда есть необходимость в приобретении быстрого теста на беременность, важно понимать, по каким критериям выбирать тест и на что ориентироваться, чтобы не ошибиться. Для этого стоит выяснить, каким образом работает тест, каков механизм определения беременности.

    Все тесты на беременность распознают беременность путём определения уровня хорионического гонадотропина человека (ХГЧ) в моче. Хорионический гонадотропин начинает выделяться с момента, когда оплодотворённая яйцеклетка прикрепляется к стенке матки. Изначально показатели ХГЧ являются мизерными, но далее, начиная со второй и до пятой недели беременности, показатели ХГЧ удваиваются каждые 1,5 суток. Через пару недель от момента зачатия уровень ХГЧ в моче женщины может достигать 100 единиц.

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

    Большинство тестов на беременность могут определить её наличие с первого дня задержки менструации. Чувствительность таких тестов к ХГЧ составляет 25 Мме/мл. Именно на чувствительность теста нужно обращать внимание тем женщинам, которые хотят узнать о наличии или отсутствии беременности как можно раньше. И если ждать две недели после дня возможного зачатия не представляется возможным, нужно выбирать те тесты, чувствительность которых составляет менее 25 Мме/мл.

    Быстрые тесты, которые также называют экспресс — тестами могут говорить о произошедшем зачатии с момента, когда содержание ХГЧ в моче женщины едва превысило 10 Мме/мл, то есть после 7-8 дня после предполагаемого зачатия. Чувствительность теста должна быть указана на упаковке изделия, более чувствительные тесты могут стоить дороже, чем тесты с меньшей степенью чувствительности.

    Кроме того, что при выборе быстрого теста важно обращать внимание на его чувствительность, есть ещё несколько рекомендаций по ранней диагностике беременности. Во-первых, тест нужно проводить утром, используя первую утреннюю мочу. Считается, что именно в утренней моче самая высокая концентрация хорионического гонадотропина человека. Во-вторых, планшетные и струйные тесты на беременность считаются более надёжными, чем тесты-полоски, поэтому лучше обратить внимание на них.

    Чтобы быть уверенной в результате, можно приобрести и пройти тестирование, используя несколько тестов от разных производителей. Если результаты теста заставляют усомниться в их достоверности (еле заметная вторая полоска, вторая полоска, которая проявилась очень поздно и др.), можно пройти более точное диагностирование, а именно сдать в лаборатории анализ крови на хорионический гонадотропин. В настоящее время результат такого тестирования возможно получить на электронную почту или с помощью смс-сообщения уже через несколько часов после анализа.

    С помощью анализа крови на ХГЧ о наступившей беременности возможно узнать уже через несколько дней после зачатия, но более информативным результат будет спустя 9-11 дней после дня возможного зачатия. Пусть результат теста не разочарует вас и оправдает ожидания.

    Виды и правила использования

    Т ест для определения беременности – это полоска или резервуар с чувствительной средой, которая реагирует на гормон, содержащийся в моче женщин (ХГЧ). Количество ХГЧ во время беременности стремительно растет с самых ранних сроков, поэтому его уровень считается неоспоримым доказательством оплодотворения. Как правило, к домашним тестам прибегают в первые дни задержки менструации, еще до посещения врача.

    Критерии выбора

    Покупать тесты следует только в надежных аптеках, чтобы избежать подделки.

    Перед приобретением обязательно проверьте срок годности и степень чувствительности – это очень важно. Чем выше чувствительность теста на беременность (меньше число на упаковке), тем выше вероятность, что ответ будет достоверным.

    Если с момента предполагаемого зачатия прошло меньше двух недель, постарайтесь купить тест с чувствительностью 10 мМЕ/мл: цифра означает концентрацию ХГЧ в моче, которую возможно определить. Соответственно, маркировка 15, 20, 25 или 30 говорит о том же: чем меньше срок, тем меньшее число должно быть на упаковке.

    Многие женщины уверены, что достоверны только тесты с чувствительностью от 20 мМЕ/мл, потому что определить беременность до задержки почти невозможно, и в этом есть рациональное зерно.

    Виды тестов

    Сейчас в магазинах и аптеках города можно найти четыре типа теста:

    • стрип-тест (традиционная и известная многим полоска),
    • планшетный (кассетный),
    • струйный,
    • электронный.

    Каждый из видов подходит для разных ситуаций и имеет свои плюсы и минусы.

    Как использовать тест


    Полоска – самый распространенный и недорогой тест, который продается не только в аптеках, но и в супермаркетах. Представляет собой полоску из бумаги или пластика, которую нужно опустить в емкость с мочой строго до определенной метки. Время, в течение которого нужно держать тест в моче, зависит от бренда (читайте инструкцию).

    Стоит обратить внимание на то, как тот или иной тест показывает реакцию: в одних появляется вторая полоска, а в некоторых (редко) единственная полоска меняет цвет.

    Планшетный тест прост в использовании и более чувствителен, чем полоска. Представляет собой пластиковый контейнер с двумя окошками: в первое с помощью пипетки помещается моча, а во втором через 5-10 минут появляется результат.

    Струйный – самый прогрессивный, не требует емкости. Используется просто – тесту нужно только попасть под струю мочи (можно погрузить его в баночку с мочой на 15 секунд). Показывает результат через несколько минут.


    Электронный – самый точный. Вместо полосок будет надпись «pregnancy» (беременна) или «no pregnancy» (не беременна). Некоторые тесты могут показывать не только сам факт оплодотворения, но и примерный срок беременности.

    Какой тест на беременность лучше, может решить только сама женщина, исходя из собственных предпочтений, удобства применения и бюджета.

    Чтобы тест правильно определил состояние, необходимо знать, когда и как его лучше делать. Все тесты имеют свои правила использования, поэтому перед применением обязательно внимательно ознакомьтесь с инструкцией.

    Тесты на беременность на ранних сроках могут быть отрицательными. Как правило, их лучше использовать спустя три-четыре дня после предполагаемой задержки месячных (в некоторых случаях можно попробовать через неделю после полового акта, но точность будет низкой).

    Все типы, за исключением электронного, показывают результат примерно одинаково: одна полоска – нет беременности, две полоски – есть.

    Чтобы тест показал достоверные данные, нужно:

    1. Дождаться вероятной даты наступления месячных: пытаться определить беременность раньше практически бессмысленно из-за низкой концентрации ХГЧ.
    2. Проводить тестирование утром, до завтрака.

    Топ-5 тестов на беременность

    На рынке представлено большое разнообразие тестов для женщин с разными потребностями и возможностями. Как правило, основная разница между продуктами заключается в чувствительности, цене и репутации производителя.


    Основные плюсы: недорогая, но эффективная тест-полоска. Можно использовать как за пару дней до задержки менструации, так и спустя несколько дней после ее предполагаемого начала. Заявленная точность на упаковке – 99%, что говорит о достоверности проверки. Результат нужно ждать от 3 до 5 минут – если беременность есть, появится 2 полоски (вторая полоска может быть бледной).

    Достоинства: стоимость, точность, простота применения, доступность в магазинах.

    Минусы: нужно создать бытовые условия для тестирования.

    Основные плюсы: точный результат показывает в первый день задержки цикла. Заявленная точность на упаковке – 98%. Процедура тестирования такая же, как при использовании любых других полосок.


    Достоинства: стоимость, неплохая достоверность, простота применения.

    Минусы: нужно создать бытовые условия для тестирования; подойдет только утренняя моча.


    Основные плюсы: отличный электронный тест, который покажет не только наличие беременности, но и примерный срок с момента зачатия. Результат дает уже за пять дней до предполагаемого начала месячных. Точность определения беременности выше 99%, срока – до 92%.

    Достоинства: точность, чувствительность, определение срока, определение беременности до задержки.

    Минусы: стоимость; обязательно соблюдение инструкции.

    Основные плюсы: планшетный, намного достовернее полосок из-за ровного распределения мочи. Пипетка в комплекте – значит, процесс тестирования гигиеничен. Точность выше 99%.

    Достоинства: простота применения, точность, чувствительность, доступность.

    Минусы: не обнаружены.

    KNOW NOW OPTIMA

    Основные плюсы: кассетный, определяет беременность при любых обстоятельствах. Подходит не только для домашнего использования, но и для стационара.


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

    Минусы: результат можно ждать очень долго.

    Чтобы удостовериться в результате, можно использовать тесты разных видов с интервалом в несколько дней.

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

    Тестирование информационных систем

    1.2. Критерии тестирования.

    Можно выделить требования к идеальному критерию тестирования:

    · Критерий должен быть достаточным, т.е. показывать, когда некоторое конечное множество тестов достаточно для тестирования данной программы.

    · Критерий должен быть полным, т.е. в случае ошибки должен существовать тест из множества тестов, удовлетворяющих критерию, который раскрывает ошибку.

    · Критерий должен быть надежным, т.е. любые два множества тестов, удовлетворяющих ему, одновременно должны раскрывать или не раскрывать ошибки программы.

    · Критерий должен быть легко проверяемым, например, вычисляемым на тестах.

    Для нетривиальных классов программ в общем случае не существует полного и надежного критерия, зависящего от программ или спецификаций. Поэтому, как правило, стремятся к идеальному общему критерию через реальные частные.

    Классы критериев:

    · Структурные критерии используют информацию о структуре программы (критерии так называемого «белого ящика»).

    · Функциональные критерии формулируются в описании требований к программному изделию (критерии так называемого «черного ящика»).

    · Критерии стохастического тестирования формулируются в терминах проверки наличия заданных свойств у тестируемого приложения, средствами проверки некоторой статистической теории.

    · Мутационные критерии ориентированы на проверку свойств программного изделия на основе подхода Монте-Карло.

    Структурные критерии (класс I).

    Структурные критерии используют модель программы в виде «белого ящика», что предполагает знание исходного текста программы или спецификации программы в виде потокового графа управления. Структурная информация понятна и доступна разработчикам подсистем и модулей приложения, поэтому данный класс критериев часто используется на этапах модульного и интеграционного тестирования.

    Структурные критерии базируются на основных элементах УГП, операторах, ветвях и путях.

    · Условие критерия тестирования команд (критерий С0) - набор тестов в совокупности должен обеспечить прохождение каждой команды не менее одного раза. Это слабый критерий, используется в больших программных системах, где другие критерии применить невозможно.

    · Условие критерия тестирования ветвей (критерий С1) - набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза. Это достаточно сильный и при этом экономичный критерий. Данный критерий часто используется в системах автоматизации тестирования.

    · Условие критерия тестирования путей (критерий С2) - набор тестов в совокупности должен обеспечить прохождение каждого пути не менее одного раза. Если программа содержит цикл (в особенности с неявно заданным числом итераций), то число итераций ограничивается константой (часто - 2, или числом классов выходных путей).

    Структурные критерии не проверяют соответствие спецификации, если

    оно не отражено в структуре программы.

    Функциональные критерии (класс II).

    Функциональный критерий - важнейший для программной индустрии критерий тестирования. Он обеспечивает, прежде всего, контроль степени выполнения требований заказчика в программном продукте. Поскольку требования формулируются к продукту в целом, они отражают взаимодействие тестируемого приложения с окружением. При функциональном тестировании преимущественно используется модель «черного ящика». Проблема функционального тестирования - это, прежде всего, трудоемкость; дело в том, что документы, фиксирующие требования к программному изделию (Software requirement specification, Functional specification и т.п.), как правило, достаточно объемны, тем не менее, соответствующая проверка должна быть всеобъемлющей.

    Ниже приведены частные виды функциональных критериев.

    · Тестирование пунктов спецификации - набор тестов в совокупности должен обеспечить проверку каждого тестируемого пункта не менее одного раза. Спецификация требований может содержать сотни и тысячи пунктов требований к программному продукту и каждое из этих требований при тестировании должно быть проверено в соответствии с критерием не менее чем одним тестом.

    · Тестирование классов входных данных - набор тестов в совокупности должен обеспечить проверку представителя каждого класса входных данных не менее одного раза. при создании тестов классы входных данных сопоставляются с режимами использования тестируемого компонента или подсистемы приложения, что заметно сокращает варианты перебора, учитываемые при разработке тестовых наборов. Следует заметить, что, перебирая в соответствии с критерием величины входных переменных (например, различные файлы - источники входных данных), мы вынуждены применять мощные тестовые наборы. Действительно, наряду с ограничениями на величины входных данных, существуют ограничения на величины входных данных во всевозможных комбинациях, в том числе проверка реакций системы на появление ошибок в значениях или структурах входных данных. Учет этого многообразия - процесс трудоемкий, что создает сложности для применения критерия.

    · Тестирование правил - набор тестов в совокупности должен обеспечить проверку каждого правила, если входные и выходные значения описываются набором правил некоторой грамматики. Следует заметить, что грамматика должна быть достаточно простой, чтобы трудоемкость разработки соответствующего набора тестов была реальной (вписывалась в сроки и штат специалистов, выделенных для реализации фазы тестирования).

    · Тестирование классов выходных данных - набор тестов в совокупности должен обеспечить проверку представителя каждого выходного класса, при условии, что выходные результаты заранее расклассифицированы, причем отдельные классы результатов указывают, в том числе ограничения на ресурсы или на время (time out).
    При создании тестов классы выходных данных сопоставляются с режимами использования тестируемого компонента или подсистемы, что заметно сокращает варианты перебора, учитываемые при разработке тестовых наборов.

    · Тестирование функций - набор тестов в совокупности должен обеспечить проверку каждого действия, реализуемого тестируемым модулем, не менее одного раза. Очень популярный на практике критерий, который, однако, не обеспечивает покрытия части функциональности тестируемого компонента, связанной со структурными и поведенческими свойствами, описание которых не сосредоточено в отдельных функциях (т.е. описание рассредоточено по компоненту).

    Критерий тестирования функций объединяет отчасти особенности структурных и функциональных критериев. Он базируется на модели «полупрозрачного ящика», где явно указаны не только входы и выходы тестируемого компонента, но также состав и структура используемых методов (функций, процедур) и классов.

    · Комбинированные критерии для программ и спецификаций - набор тестов в совокупности должен обеспечить проверку всех комбинаций непротиворечивых условий программ и спецификаций не менее одного раза. При этом все комбинации непротиворечивых условий надо подтвердить, а условия противоречий следует обнаружить и ликвидировать.

    Стохастические критерии (класс III).

    Стохастическое тестирование применяется при тестировании сложных программных комплексов - когда набор детерминированных тестов (X, Y) имеет громадную мощность. В случаях, когда подобный набор невозможно разработать и исполнить на фазе тестирования, можно применить следующую методику.

    · Разработать программы-имитаторы случайных последовательных входных сигналов {x}.

    · Вычислить независимым способом значения {y} для соответствующих входных сигналов {y} и получить тестовый набор {X,Y}.

    · Протестировать приложение на тестовом наборе {X,Y}, используя два способа контроля результатов:

    1. Детерминированный контроль - проверка соответствия вычисленного значения значению y, полученному в результате прогона теста на наборе {x} - случайной последовательности входных сигналов, сгенерированной имитатором.

    2. Стохастический контроль - проверка соответствия множества {}, полученного в результате прогона тестов на наборе значений {x}, заранее известному распределению результатов F(Y). В этом случае множество y неизвестно (его вычисление невозможно), но известен закон распределения данного множества.

    Критерии стохастического тестирования:

    · Статистические методы окончания тестирования - стохастические методы принятия решений о совпадении гипотез о распределении случайных величин. К ним принадлежат широко известные: метод Стьюдента (St), метод Хи-квадрат (x 2) и т.п.

    · Метод оценки скорости выявления ошибок - основан на модели скорости выявления ошибок, согласно которой тестирование прекращается, если оцененный интервал времени между текущей ошибкой и следующей слишком велик для фазы тестирования приложения.

    Мутационный критерий (класс IV).

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

    Подход базируется на следующих понятиях:

    Мутации - мелкие ошибки в программе.

    Мутанты - программы, отличающиеся друг от друга мутациями.

    Метод мутационного тестирования - в разрабатываемую программу P вносят мутации, т.е. искусственно создают программы-мутанты P1, P2…Затем программа P и ее мутанты тестируются на одном и том же наборе тестов {X,Y}.

    Если на наборе {X,Y} подтверждается правильность программы P и, кроме того, выделяются все внесенные в программы-мутанты ошибки, то набор тестов (X,Y) соответствует мутационному критерию, а тестируемая программа объявляется правильной.

    Если некоторые мутанты не выявили всех мутаций, то надо расширять набор тестов (X,Y) и продолжать тестирование.

    Автоматизированная WEB-система тестирования студентов

    Процесс тестирования данного программного продукта был разделен на 2 этапа: · тестирование пользовательской страницы представлено в таблице №11. Таблица №11...

    Автоматизированная кроссплатформенная система тестирования студентов

    Процесс тестирования данного программного продукта был разделен на 2 этапа: · тестирование пользовательского продукта представлено в таблице №11. Таблица №11...

    Исследование алгоритмов управления ресурсами однопроцессорных серверов при оперативной обработке задач (алгоритмы SPT и RR)

    Используются следующие критерии, позволяющие сравнивать алгоритмы краткосрочных планировщиков: 1. утилизация CPU (использование) CPU utilization. утилизация CPU теоретически может находиться в пределах от 0 до 100%...

    Классификация автоматизированных систем управления

    Классификация АСУ существенным образом зависит от критериев классификации...

    Концепция построения дистрибутива

    Как известно, по сей день человечество придумало лишь два способа управления программным обеспечением - сборку их непосредственно из пакетов исходных текстов и установку из перекомпилированных бинарных пакетов. В соответствие...

    Обоснование выбора самого престижного ВУЗа г. Перми

    Определим критерии, по которым я буду оценивать предложенные альтернативы. Я выделил 7 основных критериев: 1. Мнение общественности. Это самый важный критерий, на котором основывается имидж ВУЗа. 2. Узнаваемость. Известность ВУЗа также важна...

    Проект локальной вычислительной сети второго этажа школы № 19

    Основным критерием приемки является соответствие готового проекта требованиям заказчика, а также качество выполняемых работ...

    Разработка web-сайта "Магазин детских игрушек"

    5. Подсистема вывода на экран справочной системы для пользователя; 6. Подсистема вывода на экран сведений о программе. 2...

    Разработка мультимедийного электронного учебника

    Размещено на http://www.allbest...

    Разработка мультимедийного электронного учебника по дисциплине "Компьютерные сети"

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

    Тестирование ЛВС АКБ

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

    Общие предпосылки тестирования выражаются в критериях добротности, качества теста. Для того чтобы тесты соответствовали своему назначению, адекватно выявляли и достаточно точно измеряли определенные качества, были применимы к различным (до известных пределов) людям и группам, они должны отвечать таким критериям, как объективность, валидность, надежность, репрезентативность, адаптированность, научность. Объективность означает, что результаты тестирования должны быть интерсубъективны, т.е. независимы от того, кто проводит тест. Если данный тест проводят другие люди, то они должны получить такие же результаты. Валидность (англ. valid - действительный, пригодный, имеющий силу) - это пригодность теста для измерения именно того качества, на оценку которого он направлен. Валидность теста дает ответ на вопрос «Что измеряет тест, соответствует ли он той цели, для которой применяется?». Так, например, если тест используется для оценки уровня знаний человека в области управления персоналом, то он должен измерять именно эти знания, а не, скажем, общую эрудицию или знания в области психологии или экономики. Валидность определяется посредством корреляции результатов тестирования с проявлением данного качества на практике. Валидность конкретных тестов может проверяться с помощью использования других, практически доказавших свою добротность методик. Мерой валидности служит коэффициент корреляции теста. Надежность отражает степень точности и постоянства , с которой измеряется качество личности, и характеризует свободу от погрешностей процедуры тестирования. Точность проявляется в уровне совпадения результатов данного теста с показателями других тестов, используемых для этой же цели, постоянство - в устойчивости, стабильности результатов при повторной оценке той же группы тестируемых. Служащее проверке надежности повторное тестирование обычно проводится через две недели. При коэффициенте корреляции свыше 0,75 надежность теста считается вполне приемлемой. Проведение повторного тестирования через значительно более продолжительный срок может характеризовать уже не столько надежность теста, сколько изменение выявленных ранее свойств личности. Надежность и валидность теста взаимосвязаны. Надежность лишь тогда имеет смысл, если тест обладает достаточной валидностью – в противном случае будет измеряться какое-то другое, не соответствующее целям тестирования свойство личности. В то же время если тест не обладает надежностью, неточно и нестабильно измеряет выясняемое качество, то его валидность ставится под сомнение. В целом она может быть либо равна (в идеальном случае), либо меньше надежности. Репрезентативность (соответствие нормам тестирования) - это свойство выборочной совокупности людей, т.е. группы или ряда групп, на основе анализе качеств которых разработан тест (например, студентов, выпускников МГУ, общий уровень социальной компетентности которых определяется), представлять генеральную совокупность всех лиц, обладающих подобными типологическими характеристиками (в данном случае всех студентов страны или даже мира - в зависимости от конкретного содержания теста). Тест репрезентативен тогда, когда использованная при его разработке выборка обоснована и присущие ей характеристики достаточно равномерно распределены в генеральной совокупности. Репрезентативность позволяет классифицировать результаты тестирования (например, выделять высокий, средний и низкий уровни социальной компетентности). Если тест нерепрезентативен, то предлагаемые им оценки выраженности свойств будут неприменимы за пределами выборки (в данном случае за пределами студентов МГУ, т.е. применительно к учащимся других вузов). Репрезентативность отражается в норме теста , представляющей собой "средний уровень развития большой совокупности людей, похожих на данного испытуемого по ряду социально-демографических характеристик". Иными словами, норма теста - это средний уровень распределения выявляемых с его помощью характеристик в большой группе людей (генеральной совокупности), на применимость в которой претендует тест. В большинстве случаев тестовые нормы определяются с помощью усреднения результатов тестирования большой выборки людей одного пола и примерно одинакового возраста и дифференциации полученных результатов по важнейшим показателям. Нормы тестов могут изменяться в результате динамики развития самого человека и смены условий его жизнедеятельности. Так, например, нормы интеллектуального развития людей в начале нынешнего столетия были значительно ниже, чем в его конце. С репрезентативностью теста связана его адаптированность. Если репрезентативность характеризует равномерность распределения исследуемых качеств и усредненность оценок тестирования, учитывающих показатели во всей «большой», генеральной совокупности, то адаптированность означает учет национальных (в там числе социальных) и региональных особенностей при использовании тестов, их критическое переосмысление в свете этих особенностей. При использовании тестов, разработанных в иной социально-культурной среде, в проверке и переоценке нуждаются нормы, валидность и надежность тестов и даже их применимость в целом. Проблема адаптированности тестов особенно остро встала в последние годы в связи с широким заимствованием западных тестовых методик и попытками их прямого (без внесения необходимых корректив) использования. Так, например, некоторые отечественные авторы пытаются подтвердить вывод о деградации трудового сознания россиян в постсоветский период с помощью довольно типичного английского теста на трудовую этику. Этот тест, в частности, предусматривает следующие вопросы: «Пользуетесь ли вы служебной оргтехникой (например, ксероксом. – В.П.) в рабочее время для личных нужд?»; «Всегда ли вы приходите на работу точно вовремя?» и т.п. По условиям теста ответы типа «Я, конечно, опаздываю, но совсем редко» положительными не считаются. Неадаптированное, без внесения существенных поправок, использование подобных тестов в современных российских условиях явно неправомерно, хотя бы уже потому, что в России условия труда, его оплаты, традиции трудового сознания очень во многом отличны от западных. Например, в Великобритании на ксерокопирование в личных целях работникам выдастся определенная сумма денег, учитывающая стоимость копирования и проезд до места выполнения работы, а также выделяется дополнительно время, присоединяемое к обеденному перерыву. В современной же России не только не существует всего этого, но и заработная плата сотрудников нередко едва превышает статистический уровень бедности. К тому же в последнее десятилетие массовым явлением стало неполучение зарплаты в течение нескольких или даже многих месяцев. И невзирая на это, люди продолжают работать! С точки зрения западных норм трудовой этики подобные ситуации просто немыслимы. Научность - это обоснованность теста фундаментальными исследованиями, его концептуальная осмысленность. Хотя этот критерий добротности теста выделяется не всегда, обычно он так или иначе подразумевается. Некоторые, в первую очередь довольно простые тесты создаются без особого научно-теоретического осмысления на основе гипотез или предположений о коррелятивных связях между свойством личности и его индикаторами, а также эмпирической проверки такой связи. Однако серьезные профессиональные и другие тесты используют для своего обоснования научные выводы и конструкции. Особенно необходимо научное обоснование при обращении к батарее тестов - серии испытаний, призванных оценить комплекс качеств человека, свидетельствующий о его профессиональной пригодности и ожидаемых трудовых успехах. Батареи тестов широко применяются при отборе персонала.