
- •Оглавление
- •1.Арифметические основы эвм. Типы данных, представление, перевод чисел. Коды чисел – прямой обратный дополнительный
- •2.Классификация структур данных, задачи обработки, массивы, списки
- •3.Древовидные и табличные структуры.
- •4.Методы поиска в массиве.
- •5.Методы внутренней сортировки.
- •6.Внешняя сортировка наборов данных.
- •7.Устройства ввода информации. Устройства вывода информации. Устройства хранения информации.
- •8.Операционная система. Понятие, основные функции и составные части операционной системы. Классификация операционных систем. WindowsNt;.Windows7, NovellNetWare; unix; os/2
- •9.Файловые системы (фс). Основные функции фс. Файлы и каталоги. Физическая организация данных на носителе. Права доступа к файлу. Другие функции фс. Фс fat32, ntfs.
- •10. Принципы построения вычислительных сетей.
- •11. Программные и аппаратные компоненты вычислительной сети.
- •12.Особенности операционной системы Windows7. Основные элементы графической оболочки Windows.
- •13.Операционная система Windows 7. Подключение драйверов. Сервисные и служебные программы.
- •14. Сервисные программные средства. Служебные программы. Архивация данных
- •1. Стандартные программы
- •2. Служебные программы.
- •3. Программы архивирования данных
- •15. Антивирусные программные средства
- •16. История создания сети Интернет. Организационная структура Интернета
- •17. Основные протоколы сети Интернет
- •18. Система доменных имен dns
- •19. Поиск информации в Интернете
- •20. Основные понятия и характеристики текстовых процессоров. Ms Word 2007 (2010) и его новые функциональные возможности
- •21. Ms Excel 2007 (2010): общая характеристика и функциональные возможности
- •22. Технология ввода данных в ms Excel. Формулы, функции, мастер функций
- •23. Графические возможности Excel 2007 (2010)
- •24. Средства структуризации и первичной обработки данных в msExcel 2007(2010)
- •25. Модели организации данных. Реляционная модель данных
- •26. Субд msAccess 2007 и ее основные возможности. Общая характеристика субд msAccess
- •27. Основные этапы разработки базы данных в среде msAccess
- •1. Определение цели создания базы данных
- •2. Определение таблиц, которые должна содержать база данных
- •3. Определение необходимых в таблице полей
- •4. Задание индивидуального значения каждому полю
- •5. Определение связей между таблицами
- •6. Обновление структуры базы данных
- •7. Добавление данных и создание других объектов базы данных
- •8. Использование средств анализа в Microsoft Access
- •28. Субд msAccess. Cоздание таблиц и схем данных
- •29. Субд msAccess. Разработка запросов к базе данных
- •30. Субд msAccess. Конструирование экранных форм для работы с данными
- •31. Субд msAccess. Конструирование отчетов
- •32. Современные способы организации презентаций. Microsoft PowerPoint 2007 (2010) и его новые возможности
- •33. Перспективные технологии на основе Интернета. Электронная коммерция, ip- телефония, дистанционное обучение.
- •34. Принципы защиты информации. Криптография. Электронная цифровая подпись
- •35. Электронная почта. Настройка клиента электронной почты
- •36. Статистическая обработка данных с использованием прикладной программы statistica
- •37.Анализ данных с помощью статистического пакета spss forWindows
- •38.Основные виды компьютерной графики: векторная, растровая, фрактальная. Основные области применения
- •39.Анализ требований к программному обеспечению
- •40.Жизненный цикл программного обеспечения.
- •41.Обеспечения качества программного обеспечения
- •42.Тестирование программного обеспечения
42.Тестирование программного обеспечения
Тестирование программного обеспечения — процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта. Существует несколько признаков, по которым принято производить классификацию видов тестирования. Обычно выделяют следующие: по объекту тестирования, по знанию системы, по степени изолированности компонентов, по времени проведения тестирования, по признаку позитивности сценариев, по степени подготовленности к тестированию, по степени автоматизации ручное тестирование, автоматизированное тестирование, полуавтоматизированное тестирование).
Новые методологии программирования привели к интенсивным разработкам средств автоматизированного тестирования. Отличительные особенности проектирования автоматизированных средств тестирования вытекает из специфики задач , которые ставятся перед ними: 1) Объективная трудность тестирования: это деструктивный процесс. Поэтому, проектируемые средства должны вместо сбора и обработки информации выполнять её разбиение на части и проводить анализ этих частей. 2) Тестирование абсолютно всех возможных ситуаций бесконечно велико, поэтому проектируемые средства тестирования должны учитывать невозможность перебора всех возможных тестов.
Основные принципы организации тестирования: 1. Необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы; 2. Программа не должна тестироваться её автором; 3. Необходимо подбирать тесты не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных); 4. При анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать; 5. "Принцип скопления ошибок" - вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части.
Процесс тестирования состоит из трёх этапов: 1. Проектирование тестов. 2. Исполнение тестов. 3. Анализ полученных результатов.
На первом этапе решается вопрос о выборе некоторого подмножества множества тестов, которое сможет найти наибольшее количество ошибок за наименьший промежуток времени. На этапе исполнения тестов проводят, запуск тестов и отлавливают ошибки в тестируемом программном продукте. Существует две методологии тестирования - "чёрного" и "белого" ящика. "Чёрный ящик" - тестирование функционального поведения программы с точки зрения внешнего мира (текст программы не используется). - "Белый ящик" - тестирование кода на предмет логики работы программы и корректности её работы с точки зрения компилятора того языка на котором она писалась. Полученные результаты тестирования позволяют сделать вывод о надёжности программного продукта. Они служат основой его сертификации и гарантией качества.
Чтобы облегчить и ускорить процесс тестирования широко применяют автоматизацию одного или ряда сложных этапов тестирования. Автоматизированные средства разрабатываются в основном для следующих этапов процесса тестирования: тестирование функциональных требований , тестирование пользовательского интерфейса, тестирование отдельных модулей, комплексное тестирование, анализ сложности программных модулей, тестирование покрытия программного кода, тестирование скорости загрузки системы, тестирование граничных русловий, тестирование утечки памяти
Существует два основных вида тестирования: функциональное и структурное. При функциональном тестировании программа рассматривается как "черный ящик" (то есть ее текст не используется). Происходит проверка соответствия поведения программы ее внешней спецификации. Критерием полноты тестирования в этом случае является перебор всех возможных значений входных данных, что невыполнимо. Поскольку исчерпывающее функциональное тестирование невозможно, речь может идти о разработки методов, позволяющих подбирать тесты не "вслепую", а с большой вероятностью обнаружения ошибок в программе.
При структурном тестировании программа рассматривается как "белый ящик" (т.е. ее текст открыт для пользования). Происходит проверка логики программы. Полным тестированием в этом случае будет такое, которое приведет к перебору всех возможных путей на графе передач управления программы (ее управляющем графе). Если ограничиться перебором только линейных не зависимых путей, то и в этом случае исчерпывающее структурное тестирование практически невозможно, т. к. неясно, как подбирать тесты , чтобы обеспечить "покрытие" всех таких путей. Поэтому при структурном тестировании необходимо использовать другие критерии его полноты, позволяющие достаточно просто контролировать их выполнение, но не дающие гарантии полной проверки логики программы. Но даже если предположить, что удалось достичь полного структурного тестирования некоторой программы, в ней тем не менее могут содержаться ошибки, т.к.
1) программа может не соответствовать своей внешней спецификации, что в частности, может привести к тому, что в ее управляющем графе окажутся пропущенными некоторые необходимые пути ;
2) не будут обнаружены ошибки, появление которых зависит от обрабатываемых данных (т.е. на одних исходных данных программа работает правильно, а на других - с ошибкой).
Таким образом, ни структурное, ни функциональное тестирование не может быть исчерпывающим. Чтобы увеличить процент обнаружения ошибок при проведении функционального и структурного тестирования используют средства автоматизации тестирования.
Тестирование программного продукта одновременно проводится в 3-ёх направлениях:
1. Проверка кода (review): Тестер просматривает исходный код визуально и пытается найти нём ошибки, а так же различные несоответствия кода и требований к нему. Под требованием понимается стандарт, которого придерживается разработчики данного проекта, реакция на те или иные действия со стороны среды воздействия на ПО, поведение программного продукта в различных ситуациях.
2.Тестирование высокого уровня: Здесь главная цель тестирования - выяснить, удовлетворяет ли разработка всем требованиям заказчика. Для программного продукта пишутся эмуляторы, с помощью которых тестер может наблюдать за работой системы в роли оператора. Он видит, как система осуществляет диалог с пользователем, какие сообщения она выдаёт, как реагирует на различные события, сохраняет информацию и т.д.. Большинство обнаруживаемых ошибок на этом этапе связанно с ошибками взаимодействия программного продукта с пользователем - вывод ошибочных сообщений, не правильная реакция на запрос от оператора и т.п.
3.Тестирование низкого уровня: Тестер проверяет, на сколько логически полно исходный код покрывает всё возможные варианты работы системы, для которой он разрабатывается.
С точки зрения ISO 9126, качество программного обеспечения можно определить как совокупную характеристику исследуемого ПО с учётом следующих составляющих: надёжность, сопровождаемость, практичность, эффективность, мобильность и функциональность. Таким образом, с ростом важности информационных технологий для жизни общества возрастает цена ошибок в программах. В этих условиях на первый план выходят технологии и методы тестирования ПО, которые позволяют своевременно выявить и исправить эти ошибки.