- •1. Раскройте содержание предварительного и детального внешнего проектирования по.
- •3. Назовите этапы проектирования логики программного модуля и дайте им характеристику.
- •4. Назовите цель и перечислите принципы модульного программирования.
- •5. В чем отличие отладки и тестирования программ?Какие методы применяются на этих этапах?
- •6. Перечислите основные стратегии тестирования. Какие известные Вам методы реализуют каждую из стратегий?
- •7. Дайте определения основных типов данных и назовите операции их обработки.
- •9. Дайте определения статических структур данных. Каковы их отличительные особенности?
- •10. Дайте определения полустатических структур данных. Каковы их отличительные особенности?
- •12. В чем отличия двумерного массива (матрицы) и таблицы?
- •13. В чем отличие стратегий тестирования и какие практические рекомендации можно дать по их применению?
- •14 Приведите компактную структуру в памяти эвм для хранения приведенной ниже матрицы:
- •15. Дайте определение и приведите пример линейного односвязного списка.
- •16. Дайте определение и приведите пример линейного двусвязного списка.
- •17. Укажите верные утверждения относительно таблицы решений.
- •18. Отметьте правильные утверждения относительно файла и обмена информацией между внешней и оперативной памятью:
- •19. Что такое таблица решений? Назовите этапы создания по, при выполнении которых могут быть применены такие таблицы.
- •20. Дайте определение жизненного цикла программного продукта и назовите его основные этапы при традиционной технологии разработки по.
- •21. Назовите основные преимущества case- технологий по сравнению с традиционной технологией проектирования.
- •22. В чем отличие моделей жизненного цикла (жц) программного продукта (пп) в традиционной и case- технологии разработки по?
- •23. Перечислите основные принципы структурного программирования.
- •24. Приведите последовательность работ при тестировании по. В чем заключается тестирование теста?
- •25. Какие схемы применяются при документировании проекта разработки по, согласно гост 19.701-90?
- •27. Отметьте правильные утверждения и дайте необходимые пояснения.
- •28. Приведите двумерную матрицу, которая в памяти эвм хранится в виде следующего нелинейного списка:
- •29. Назовите группы символов, которые используются в схемах проектов по согласно гост, и приведите примеры таких символов. 26 билет
- •30 Дайте краткие определения принципов, на которых базируется объектно-ориентированное программирование (ооп)?
- •31. Определите, какие из перечисленных ниже объектов относятся к типам данных, а какие - к структурам данных.
- •35. Пусть в таблице решений описаны n условий для входных данных и m действий программы, тогда кол-во столбцов в ней равно
- •26. Укажите назначение схем программ (что они отражают) и классы (группы) символов, применяемых в этих схемах (согласно гост 19.701-90)
- •36. Отнесите перечисленные символы к соответствующим классам:
- •32. Отметьте правильные утверждения относительно массива и таблицы:
- •33. Отметьте правильные утверждения относительно тестирования по методу эквивалентного разбиения:
- •34. Перечислите правильные утверждения:
5. В чем отличие отладки и тестирования программ?Какие методы применяются на этих этапах?
Отладкой называется процесс выявления природы ошибки программы и исправления ошибок, после того, как ошибки были обнаружены в процессе тестирования. Наиболее распространенными и наименее эффективными для отладки являются так называемые методы ‘грубой силы’. К ним относят: отладку с использованием дампа памяти; отладку с использованием операторов печати по всей программе;
отладку с использованием автоматических средств Общей характеристикой методов "грубой силы" является то, что они не требуют значительных умственных затрат и могут продолжаться бесконечно долго. Существуют и более гибкие методы, к которым относятся: метод индукции; метод дедукции.
Тестирование имеет целью обнаружение ошибок в программе, тогда как отладка-выявление природы ошибок и исправление ошибок после того, как они были обнаружены. Существуют 2 подхода к постановке закономерности проектирования теста: стратегия "черного ящика" -проверить соответствует ли программа внешним спецификациям. Методы: А) эквивалентного разбиения Б) метод граничных условий В) метод функциональных диаграмм
Стратегия "белого ящика" - проверка пути каждой ветви алгоритма.При этом внешняя спецификация во внимание не принимается. Тестирование по принципу "белого ящика" характеризуется степенью, какой тесты выполняют или покрывают логику (исходный текст программы). Методы: 1) Покрытия операторов (выполнение каждого оператора программы хотя бы один раз). 2)Покрытия решений (покрытия переходов) (должно быть написано достаточное число тестов, такое, что каждое направление перехода должно быть реализовано по крайней мере один раз). 3) Покрытия условий (записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз). 4) Критерий решений (условий)(достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и , кроме того, каждой точке входа передавалось управление по крайней мере один раз). 5) Комбинаторного покрытия условий (создание такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз).
6. Перечислите основные стратегии тестирования. Какие известные Вам методы реализуют каждую из стратегий?
Две основные стратегии тестирования:1)стратегия "белого ящика" - проверка пути каждой ветви алгоритма. При этом внешняя спецификация во внимание не принимается. Методы: 1) Покрытия операторов (выполнение каждого оператора программы хотя бы один раз). 2)Покрытия решений (покрытия переходов) (должно быть написано достаточное число тестов, такое, что каждое направление перехода должно быть реализовано по крайней мере один раз). 3) Покрытия условий (записывается число тестов, достаточное для того, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз). 4) Критерий решений (условий)(достаточного набора тестов, чтобы все возможные результаты каждого условия в решении выполнялись по крайней мере один раз, все результаты каждого решения выполнялись по крайней мере один раз и , кроме того, каждой точке входа передавалось управление по крайней мере один раз). 5) Комбинаторного покрытия условий (создание такого числа тестов, чтобы все возможные комбинации результатов условия в каждом решении выполнялись по крайней мере один раз).
2) стратегия «черного ящика» – проверить соответствует ли программа внешним спецификациям. При этом логика модуля совершенно не принимается во внимание Методы:
А) эквивалентного разбиения – разработка теста осуществляется в два этапа: 1). Выделение классов эквивалентности – выделяют правильные и неправильные классы, разбиение на которые подчиняются следующим правилам:
- если входное условие описывает область значений, например,то определяется один правильный класс эквивалентности и два неправильных; - если входное условие описывает число значений,то определяется один правильный класс эквивалентности и два неправильных;
- если входное условие описывает множество входных значений, то определяются правильные классы эквивалентности для каждого значения и один неправильный;
- если входное условие описывает ситуацию “должно быть”,то определяется один правильный класс эквивалентности и один неправильный; - если есть основания считать, что различные элементы класса эквивалентности воспринимаются программой неодинаково, то данный класс эквивалентности разбивается на меньшие классы эквивалентности.
2). построение теста: - назначение каждому классу эквивалентности уникального номера;- проектирование новых тестов, каждый из которых покрывает как можно большее число непокрытых правильных классов эквивалентности, пока все правильные классы эквивалентности не будут покрыты тестами;- запись тестов, каждый из которых покрывает один и только один из непокрытых неправильных классов эквивалентности. Каждый неправильный класс эквивалентности должен быть покрыт индивидуальным тестом. Б) метод граничных условий Анализ граничных значений отличается от эквивалентного разбиения в двух отношениях:- выбор любого элемента в классе эквивалентности в качестве представительного при анализе граничных значений осуществляется таким образом, чтобы проверить тестом каждую границу этого класса.
- при разработке тестов рассматривают не только входные условия (пространство входов), но и пространство результатов, то есть выходные классы эквивалентности.
В) метод функциональных диаграмм – они строятся подобно классам эквивалентности их построение заканчивается преобразованием диаграмм в таблицу решений по которой составляется столько тестов, сколько столбцов в таблице
Каждый из методов эффективен для определенного класса задач. Метод тестирования по таблице решений применим, если логика программы определяется комбинацией условий входных данных. Метод эквивалентного разбиения эффективен для языковых процессоров и других элементов лингвистического обеспечения. Метод граничных условий эффективен для программ статистической обработки данных или других видов совместной обработки таблиц когда данные в таблице принадлежат некоторому диапазону значений.