книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Метод Рунге-Кутта решения дифференциального уравнения ( Контрольная работа, 9 стр. )
МЕТОД СОРТИРОВКИ ПО ГЛУБИНЕ. АЛГОРИТМ ХУДОЖНИКА ( Курсовая работа, 27 стр. )
МЕТОД СОРТИРОВКИ ПО ГЛУБИНЕ. АЛГОРИТМ ХУДОЖНИКА ( Контрольная работа, 27 стр. )
Методика обучения основам программирования на уроках информатики ( Дипломная работа, 68 стр. )
Методические указания: "Создание видео во Flash для презентаций" ( Контрольная работа, 9 стр. )
Методология RAD написания приложений с применением объектно-ориентированной СУБД ( Курсовая работа, 30 стр. )
Методология организации пользовательского интерфейса в ORM приложениях на платформе Microsoft .NET ( Курсовая работа, 20 стр. )
Методы и искусство программирования ( Реферат, 17 стр. )
Многооконный документ на языке Microsoft Visual C++ 6.0 ( Курсовая работа, 115 стр. )
Моделирование геохимических полей с использованием генетических алгоритмов ( Курсовая работа, 14 стр. )
МОДЕЛИРОВАНИЕ МНОГОФАЗОВОЙ СИСТЕМЫ МАССОВОГО ОБСЛУЖИВАНИЯ* ( Курсовая работа, 29 стр. )
Моделирование процесса взаимодействия подводных роботов и надводных объектов ( Курсовая работа, 11 стр. )
Моделирование работы ветроэнергетической установки с асинхронизированным синхронным ге-нератором, работающей параллельно с промыш-ленной сетью, с помощью Matlab 7 ( Курсовая работа, 28 стр. )
Моделирование роста кристалла арсенида галлия ( Дипломная работа, 100 стр. )
Моделирование систем с одним прибором и очередью ( Контрольная работа, 8 стр. )
Моделирование случайных полей ( Курсовая работа, 18 стр. )
Модернизация инфраструктуры локальной вычислительной сети на предприятии ЗАО «СИБЦНИИТС»- дипломная ( Дипломная работа, 96 стр. )
Модернизация схемы измерителя импеданса (ИИ) на основе дискретного преобразования Фурье. Замена микропроцессора (МП) с целью повышения производительности. Замена АЦП с целью повышения точности измерений." ( Курсовая работа, 35 стр. )
Модуль редактирования таблиц для утилиты FlameRobin ( Курсовая работа, 11 стр. )
Модульное и структурное программирование ( Контрольная работа, 7 стр. )
На основе базового приложения написать программу обработки сообщений нажатия клавиш клавиатуры и кнопок мыши. ( Контрольная работа, 3 стр. )
Назначение устройств чтения и хранения информации. ( Реферат, 22 стр. )
Написать программу «Лототрон 5 из 36». Реализовать игру «Быки и коровы» ( Контрольная работа, 15 стр. )
Написать программу для микропроцессора семейства Intel 8051 ( Курсовая работа, 15 стр. )
Написать программу для тестового стенда на базе микроконтроллера Intel 8051, позволяющую выполнять сложение, вычитание, умножение и деление положительных целых чисел ( Курсовая работа, 28 стр. )

Содержание

1 Введение 4

1.1 Неформальная постановка задачи 4

1.2 Описание предметной области 5

1.2.1 Что тестировать 5

1.2.2 Как тестировать 5

1.2.2.1 Толстый Win32 клиент с GUI 5

1.2.2.2 Web приложения 5

1.2.3 Воспроизведение исходного состояния 6

1.2.4 Тестирование результата 6

1.2.5 Когда писать тесты 6

1.3 Обзор существующих методов решения 7

1.3.1 SQA Suite 6.1 7

1.3.2 Visual Test 6.5 8

1.3.3 SQA SiteCheck 6.1 8

1.3.4 Rational Quantify 9

1.3.5 Rational Visual PureCoverage 9

1.3.6 Rational Robot 9

1.3.7 Системы типа QA: AQTest, Dynamic Imager, Test Pro Developer, Insure, E-test 10

1.3.8 Выводы 10

2 Требования к окружению 11

2.1 Требования к аппаратному обеспечению 11

2.2 Требования к программному обеспечению 11

2.3 Требования к пользователям 11

3 Функциональные требования 12

3.1 Среда исполнения 12

3.2 Обработка тестов 12

3.3 Производительность 12

3.4 Надёжность 12

3.5 Интерфейс 12

4 Спецификация данных 12

4.1 Сущность – Программа. 12

4.2 Сущность - Тестовый набор. 13

4.3 Сущность – Отдельный тест. 13

4.4 Глобальные переменные 13

5 Проект 14

5.1 Unit GUITestRunner 14

5.1.1 Классы 14

5.1.2 Свойства 14

5.1.3 Типы 14

5.1.4 Элементы определения класса 14

5.1.5 Константы 14

5.1.6 Константы 14

5.2 Unit TestExtensions 15

5.2.1 Классы 15

5.2.2 Интерфейсы 15

5.2.3 Методы 15

5.2.3.1 Обьект TRepeatedTest 15

5.2.3.2 Обьект TTestDecorator 15

5.2.3.3 Обьект TTestSetup 15

5.3 Unit TestFramework 16

5.3.1 Классы 16

5.3.1.1 Обьект TMethodEnumerator 16

5.3.1.2 Обьект TTestCase 16

5.3.1.3 Обьект TTestFailure 17

5.3.1.4 Обьект TTestResult 17

5.3.1.5 Обьект TTestSuite 18

5.3.2 Интерфейсы 18

5.3.2.1 Интерфейс ITest 19

5.3.2.2 Интерфейс ITestListener 19

5.3.2.3 Интерфейс ITestSuite 19

5.3.3 Типы 19

5.3.4 Элементы определения класса 19

5.4 Unit TextTestRunner 20

5.4.1 Классы 20

5.4.2 Типы 20

5.4.3 Элементы определения класса 20

5.4.4 Методы 20

6 Реализация 20

6.1 Физические характеристики текущей версии системы 20

6.2 Программный интерфейс 21

6.3 Пользовательский интерфейс 22

6.4 Пример использования (тестирование) библиотеки TestTool 22

7 Заключение 25

8 Список литературы 26

1 Введение

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

Решение 1. Умный компилятор

Идеальным решением был бы умный компилятор, который бы не только бы проверял, что код синтаксически правильный, но и что логика программы тоже правильна. Такое средство выдает ошибки в логике, либо сигнализирует тогда когда вы что-нибудь поменяв, испортили логику программы. Таким образом, Вам нужно думать, вносить либо не вносить изменения? Но, к сожалению таких компиляторов не существует. [7]

Решение 2. Автоматизированное тестирование юнитов

Идеального компилятора не существует, поэтому надо найти другой способ тестирования. И этот способ называется «Автоматизированное тестирование юнитов - АТЮ».

Во первых АТЮ – это не тестирование по черному ящику.

Во вторых АТЮ – это не функциональное тестирование. Программа не проверяется на функциональные спецификации. [2,9]

АТЮ – это возможность определить множество тестов для класса. И тестировать программный интерфейс какого-то объекта: заполняем свойства объекта, какими-то данными, вызываем методы, и сверяем результаты, которые получили и которые хотели получить.

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

1.1 Неформальная постановка задачи

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

Поэтому было решено создать такое программное средство (библиотеку подключаемых модулей) для автоматизированного тестирования юнитов (units) на языке Delphi, используя технологию получения RTTI (Runtime Type Information - Информация о типах времени исполнения), которое бы позволяло пользователю: использовать объектно-ориентированную запись тестов; объединять тесты в группы; запускать, как отдельные тесты, так и группы тестов, правильно перехватывать возникающие исключения.

То есть нужно создать, встраиваемый в программу пользователя, менеджер тестов, который может встраиваться в программу. [2]

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

1.2 Описание предметной области

1.2.1 Что тестировать

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

У разработчика всегда есть соблазн написать функциональный тест в терминах внутренней структуры системы. Например, если система должна рассчитывать комиссионные, то можно захотеть в коде создать объект, который их считает, и протестировать правильность его работы. Это ошибка, так как корректность работы какой-то части системы не дает гарантии работы бизнес-функции. Может быть, этот объект и не вызывается вовсе.

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

1.2.2 Как тестировать

1 Список литературы

1. Mosley Kun, "The Handbook of MIS Application Software Testing: Methods, Techniques, and Tools for Assuring Quality through Testing", Prentice-Hall, 1993, http://users.vnet.net/wwake/xp/xp0001/index.shtml

2. John Dow, «Execute Unit And Integration Tests», http://www.csst-technologies.com/ext-test.html

3. Delphi 6 SDK, Delphi 6 HELP

4. Microsoft Developer Network, April 2001

5. Кленин А.С., Методические указания по подготовке и защите отчётов на специализации «Прикладная математика. Системное программирование», ?2002

6. Рон Джеффриз, «Extreme Programming и руководство пользователя», 2001

7. Martin Flowers, «All about testing»http://www.martinfowler.com/articles.htm, 2002

8. Michiel Hill, «Testing problems», http://www.madrigal.com.auх/mich/test-probl.shtml

9. http://www.extremeprogramming.org, 2002 - сайт «Экстремальное программирование»

Примечаний нет.

2000-2024 © Copyright «DipMaster-Shop.ru»