Эффективность и технологичность
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

  Традиционно эффективными считают программы, требующие минимального времени выполнения и/или минимального объема оперативной памяти.

Иногда способы снижения временных затрат приводят к увеличению емкостных и, наоборот. Не следует «платить» за увеличение эффективности снижением технологичности. Частично проблему эффективности программ решают за программиста компиляторы.

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

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

 

 

Структурное тестирование

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

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

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

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

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

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

 

Функциональное тестирование

Программа рассматривается как «черный ящик», и тестирование производится на всех возможных наборах данных.

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

• эквивалентное разбиение;

• анализ граничных значений;

• предположение об ошибке.

 

Эквивалентное разбиение.

•  Область всех возможных наборов входных данных программы по каждому параметру разбивают на конечное число групп - классов эквивалентности. Наборы данных такого класса объединяют по принципу обнаружения одних и тех же ошибок: если набор какого-либо класса обнаруживает некоторую ошибку, то предполагается, что все другие тесты этого класса эквивалентности тоже обнаружат эту ошибку и наоборот.

•           Разработку тестов методом эквивалентного разбиения осуществляют в два этапа: на первом выделяют классы эквивалентности, а на втором - формируют тесты.

Анализ граничных значений.

Граничные значения - это значения на границах классов эквивалентности входных значений или около них. Анализ показывает, что в этих местах резко увеличивается возможность обнаружения ошибок. Например, если в программе анализа вида треугольника было записано А + В ≥ С вместо А + В > С, то задание граничных значений приведет к ошибке: линия будет отнесена к одному из видов треугольника.

 

Предположение об ошибке. Часто программист с большим опытом находит ошибки, «не применяя никаких методов». На самом деле он подсознательно использует метод «предположение об ошибке».

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

Проиллюстрируем применение всех рассмотренных выше методов на примере

 

Дата: 2019-07-25, просмотров: 208.