- •Лабораторная работа № 1 «Технология разработки по при структурном подходе»
- •3.2 Структурная схема по с пошаговой детализацией
- •3.3 Структуры данных
- •3.4 Пользовательский интерфейс
- •4 Исходный код программы
- •5 Вывод
- •4 Результаты тестирования
- •5 Вывод
- •3.2 Определение отношений между объектами
- •3.3 Проектирование классов
- •4 Исходный код программы
- •5 Вывод
- •4 Результаты тестирования
- •5 Вывод
5 Вывод
Поставленная цель выполнена – с использованием структурного подхода было разработано и реализовано приложение, решающее поставленную задачу.
Лабораторная работа № 2 «Технология тестирования ПО при структурном подходе»
1 Постановка задачи
Разработать и провести тесты для приложения, реализованного в лабораторной работе № 1, по методу «белого ящика».
2 Цель работы
Изучить метод «белого ящика» тестирования ПО и применить полученные знания на практике.
3 Проектирование тестов
Далее приведено проектирование тестов по методу «белого ящика» для узкого места приложения – метода определения касания. Формирование тестовых наборов осуществляется по принципу покрытия условий.
Код метода проверки касания.
function CheckContact: Integer;
var
Index: Integer;
MinSurfaceDistance: Double;
begin
Result := 0;
with MovementParams do
begin
// Проверить касание коробки.
if (GetBallRect.Left <= 0) and (BallVariable.X <= PreviousPoint.X) then
begin
Result := 1;
CalculateAlpha(ctBoxLeft, 0);
end
else
if (GetBallRect.Right >= BoxWidth) and (BallVariable.X >= PreviousPoint.X) then
begin
Result := 2;
CalculateAlpha(ctBoxRight, 0);
end
else
if (GetBallRect.Top >= BoxHeight) and (BallVariable.Y >= PreviousPoint.Y) then
begin
Result := 3;
CalculateAlpha(ctBoxTop, 0);
end
else
if (GetBallRect.Bottom <= 0) and (BallVariable.Y <= PreviousPoint.Y) then
begin
Result := 4;
CalculateAlpha(ctBoxBottom, 0)
end
else
begin
CalculateMinSurfaceDistance(Index, MinSurfaceDistance);
if (Index <> -1) and (MinSurfaceDistance <= BallVariable.Radius) and
(MinSurfaceDistance < DistBetweenPoints2R(Vector2R(Surface[Index].X,
Surface[Index].Y), PreviousPoint)) then
begin
Result := 5;
CalculateAlpha(ctSurface, Index);
end;
end;
end;
end;
Входными данными являются параметры передвижения MovementParams, параметры мячаBallVariable, и поверхностьSurface.
Представление метода в виде графа изображено на рисунке 3.1.
Рисунок 3.1 – Метод CheckContact, представленный в виде графа
Как видно из рисунка в методе имеется 5 условий, выполнение каждого из которых делает невозможным выполнение остальных. Таким образом, необходимо сформировать данные для следующих переходов 1-2-3-12, 1-2-4-5-12, 1-2-4-6-7-12, 1-2-4-6-8-9-12, 1-2-4-6-8-10-11-12 и 1-2-4-6-8-10-12. В таблице 3.1 приведены данные удовлетворяющие переходам.
Таблица 3.1.
Переход |
Значения параметров |
Ожидаемый результат |
1-2-3-12 |
BallVariable.Radius = 20; BallVariable.X = 20; PreviousPointX = 20 |
1 |
1-2-4-5-12 |
BoxWidth = 600; BallVariable.Radius = 20; BallVariable.X = 581; PreviousPointX = 580 |
2 |
1-2-4-6-7-12 |
BoxHeight = 480; BoxWidth = 600; BallVariable.Radius = 20; BallVariable.Y = 461; BallVariable.X = 300; PreviousPointY = 460; PreviousPointX = 300 |
3 |
1-2-4-6-8-9-12 |
BoxHeight = 480; BoxWidth = 600; BallVariable.Radius = 20; BallVariable.Y = 20; BallVariable.X = 300; PreviousPointY = 21; PreviousPointX = 300 |
4 |
1-2-4-6-8-10-11-12 |
BoxHeight = 480; BoxWidth = 600; BallVariable.Radius = 20; BallVariable.Y = 40; BallVariable.X = 300; PreviousPointY = 41; PreviousPointX = 300;Surface[0] .X =300; Surface[0] .Y =20; |
5 |
1-2-4-6-8-10-12 |
BoxHeight = 480; BoxWidth = 600; BallVariable.Radius = 20; BallVariable.Y = 40; BallVariable.X = 300; PreviousPointY = 20; PreviousPointX = 300;Surface[0] .X =300; Surface[0] .Y =20; Length(Surface) = 1; |
0 |