Автоматизированная информационная система публикации и обработки данных о детях в ГОУ Детский сад № 176
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
rawString ( (j + 1) + "", (int) ( (j + 1) * ( (osX - 150) / test. size ()) + 70), 490);
}(int j = 0; j < test. size (); j++) {. setColor (Color. Green);. fillRect ( (j + 1) * ( (osX - 150) / test. size ()) - 10 + 70, (int) (osY - test. get (j) * topGraphic), 20, 460 - (int) (osY - test. get (j) * topGraphic));
}
}
}
Данный класс отвечает за статистическую обработку успеваемости ребенка за указанный период, построения графика успеваемости с помощью технологии апплет, автоматическом принятии решения о дополнительной программе обучения ребенка.
2.2.2 Тестирование разрабатываемой АИС
В данном параграфе будут реализованы классы тестирования разработанной АИС. Согласно модели RUP, тестирование должно быть проведено по следующим направлениям:
-автоматическое тестирование интерфейса и функциональности АИС;
-нагрузочное тестирование АИС;
-бизнес-тестирование соответствия АИС диаграммы использования.
2.2.2.1 Автоматическое тестирование АИС
Автоматическое тестирование подразумевает написание классов, позволяющих выполнить эмуляцию работы пользователя с системой. Данные классы выполняю следующие задачи:
-выполнить эмуляцию работы пользователя с АИС посредством нажатия элементов интерфейса (здесь проверяется правильность методов, выполняемых при нажатии на ту или иную кнопку);
-выполнить проверка результата, получаемого при нажатии элементов интерфейса (здесь проверяется правильность логики, реализуемой методами при нажатии на ту или иную кнопку).
Для реализации автоматического тестирования будет использоваться HtmlUnit. Это инструмент с открытым исходным кодом для тестирования или получения информации с web-приложений, это браузер без графической оболочки, написанный на Java. Он представляет собой библиотеку со своим API, которая позволяет открывать ссылки, заполнять формы, нажимать кнопки так же, как это делает нормальной браузер.htmlUnit имеет хорошую поддержку Javascript и способен работать даже с довольно сложными библиотеками AJAX.
Опишем диаграмму последовательности для разрабатываемого класса автоматического тестирования АИС на следующем рисунке.
Рисунок 31 - диаграмма последовательности автоматического тестирования разработанной АИС
Как видно из диаграммы последовательности, при автоматическом тестировании выделяется три логических блока:
-заполнение доступных полей интерфейса;
-вызов обработчика форм нажатием на кнопки принятия действий ("Сохранить", "Принять" и т.д.);
-проверка корректности выполненной операции.
Опишем программный код, реализующий данные логические блоки работы с АИС.
Класс для реализации заполнения полей интерфейса представлен ниже.
listAnswer=getRequestParameters("listAnswer");DatedateTest=getRequestParameters("dateTest");DatenameDisease=getRequestParameters("nameDisease");DatesideEffect=getRequestParameters("sideEffect");Datetemperature=getRequestParameters("temperature");Dateheight=getRequestParameters("height");Dateweight=getRequestParameters("weight");DategroupOfBlood=getRequestParameters("groupOfBlood");Daterecommendation=getRequestParameters("recommendation");DatedateOfDisease=getRequestParameters("dateOfDisease");StringadditionalInformation=getRequestParameters("additionalInformation");FillParameters(){();">java. io. File;java. io. FileReader;java. io. IOException;java. util. ArrayList;java. util. HashMap;java. util. Map;org. apache.commons. csv. CSVParser;org. apache.commons. csv. CSVStrategy;class FillParameters extends WebScenario {String surname = getRequestParameters ("surname");String name = getRequestParameters ("name");String middleName = getRequestParameters ("middleName");String group = getRequestParameters ("group");String subject = getRequestParameters ("subject");float countPoint = getRequestParameters ("countPoint");ArrayList listAnswer = getRequestParameters ("listAnswer");Date dateTest = getRequestParameters ("dateTest");Date nameDisease = getRequestParameters ("nameDisease");Date sideEffect = getRequestParameters ("sideEffect");Date temperature = getRequestParameters ("temperature");Date height = getRequestParameters ("height");Date weight = getRequestParameters ("weight");Date groupOfBlood = getRequestParameters ("groupOfBlood");Date recommendation = getRequestParameters ("recommendation");Date dateOfDisease = getRequestParameters ("dateOfDisease");String additionalInformation = getRequestParameters ("additionalInformation");FillParameters () {();
}void fillPrameters () {(). open ("/home. jsp"); /* Home page */(). get (Tab, "Результаты тестирования"). click ();(). get (Table, "Результат"). get (Toolbar). get (Link, "Новый результат"). click ();(). get (Param, "Фамилия"). setValue (surname);(). get (Param, "Имя"). setValue (name);(). get (Param, "Отчество"). setValue (middleName);(). get (Param, "Группа"). setValue (group);(). get (Param, "Предмет"). setValue (subject);(). get (Param, "Количество баллов"). setValue (countPoint);(). get (Param, "Список ответов"). setValue (listAnswer);(). get (Param, "Дата тестирования"). setValue (dateTest);(). get (Param, "Дополнительная информация"). setValue (additionalInformation);(). info ("Новый результат тестирования у " + surname + " " + name + " по " + subject + " был сохранен успешно");(). get (Tab, "Заболевания"). click ();(). get (Table, "Заболевание"). get (Toolbar). get (Link, "Новое заболевание"). click ();(). get (Param, "Фамилия"). setValue (surname);(). get (Param, "Имя"). setValue (name);(). get (Param, "Отчество"). setValue (middleName);(). get (Param, "Группа"). setValue (group);(). get (Param, "Наименование заболевания"). setValue (nameDisease);(). get (Param, "Симпомы проявления"). setValue (sideEffect);(). get (Param, "Температура"). setValue (temperature);(). get (Param, "Рост"). setValue (height);(). get (Param, "Вес"). setValue (weight);(). get (Param, "Группа крови"). setValue (groupOfBlood);(). get (Param, "Курс лечения"). setValue (recommendation);(). get (Param, "Дата заболвения"). setValue (dateOfDisease);(). get (Param, "Дополнительная информация"). setValue (additionalInformation);(). info ("Новый результат тестирования у " + surname + " " + name + " по " + subject + " был сохранен успешно");
}
}
Обработчик форм интерфейса представлен ниже.
browser (). chooseOkOnNextDialog ();(). get (Link, "Сохранить результат тестирования"). click ();(). info ("Новый рез