книга DipMaster-Shop.RU
поиск
карта
почта
Главная На заказ Готовые работы Способы оплаты Партнерство Контакты F.A.Q. Поиск
Проектирование АЛУ для сложения двоично-десятичных чисел ( Курсовая работа, 13 стр. )
Проектирование баз данных таксационных описаний лесхозов на основе XML ( Курсовая работа, 21 стр. )
Проектирование базы данных посредствам прикладных программ Erwin и Microsoft Office Access ( Курсовая работа, 27 стр. )
Проектирование и разработка автоматизированного рабочего места менеджера отдела полиграфии компании ООО "Хабитус". ( Дипломная работа, 108 стр. )
Проектирование подсистемы калькуляции себестоимости* ( Дипломная работа, 82 стр. )
Проектирование подсистемы калькуляции себестоимости* 2011-82 ( Дипломная работа, 82 стр. )
Простой алгоритм двумерного отсечения. Рисование линий по алгоритму Брезенхема. ( Контрольная работа, 17 стр. )
Пространственная визуализация геохимиче-ских полей ( Курсовая работа, 14 стр. )
Процессор обновления баз данных в многомерной СУБД UniVerse с использованием в качестве клиентского приложения Internet браузера ( Курсовая работа, 68 стр. )
Публикация в информационных инфраструктурах справочников географических объектов ( Курсовая работа, 12 стр. )
Работа в среде программирования DELPHI ( Курсовая работа, 42 стр. )
Развивающая игра для детей «Раскраска» ( Курсовая работа, 23 стр. )
Развивающая игра для детей «Раскраска» 2008-23 ( Курсовая работа, 23 стр. )
Разработать игру и реализовать её с помощью языка программирования "Python" ( Курсовая работа, 16 стр. )
Разработать информационную систему с применением динамических структур данных ( Контрольная работа, 31 стр. )
Разработать программу, которая форматирует текст в файле, на языке программирования VisualC++ ( Курсовая работа, 21 стр. )
Разработка web-сайт ИП "Мельников". ( Дипломная работа, 90 стр. )
Разработка автоматизированной информационной системы автомагазина на языке Delphi и сопроводительной документации ( Курсовая работа, 49 стр. )
Разработка автоматизированной системы управления проектами для малых предприятий12 ( Дипломная работа, 150 стр. )
Разработка автоматизированной информационной системы автомагазина на языке Delphi и сопроводительной документации 2008-49 ( Курсовая работа, 49 стр. )
Разработка алгоритма и программы системы искусственного интеллекта ( Курсовая работа, 15 стр. )
РАЗРАБОТКА БАЗ ДАННЫХ ( Курсовая работа, 37 стр. )
Разработка библиотеки программ для автоматизированного тестирования юнитов (units) на языке программирования Delphi ( Курсовая работа, 26 стр. )
Разработка для персонального компьютера программного комплекса формирования двоичных М-последовательностей и анализа систем передачи информации на основе этих последовательностей при балансной и квадратурной балансной модуляции ( Дипломная работа, 162 стр. )
Разработка и реализация классификатора типов морского льда по данным спектральных каналов спутника MTSAT-1R ( Курсовая работа, 30 стр. )

Содержание

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»