КР по Тестированию и отладке ПО. Контрольная работа по дисциплине Тестирование и отладка программного обеспечения
Скачать 1.52 Mb.
|
Контрольная работа по дисциплине «Тестирование и отладка программного обеспечения» Вариант 11 Выполнил: студент 3-ИАИТ-ЗФ-Д44 Кармаев Н.С. Проверил доцент: Чуваков А.В. Самара 2021 Условие: Дана последовательность целых чисел. Определите, со скольких чѐтных чисел она начинается. Контрольная работа содержит: 1. Текст программы; 2. Тесты; 3. Результаты тестирования. Текст программы (на языке Java): package SoftwareTB; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; public class ControlWork { public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); ArrayList<Integer> array = new ArrayList<>(); String s; int count = 0; System.out.println("Введите любые целые числа:"); while(!(s = reader.readLine()).isEmpty()){ try { array.add(Integer.parseInt(s)); } catch(NumberFormatException e){ System.out.println("Ошибка! Введенное значение не является целым числом или является слишком большим!"); System.exit(0); } } for (Integer element : array){ if(element % 2 == 0){ count++; } else break; } if(count == 0){ System.out.println("Последовательность не имеет в начале чётных чисел"); } else if (count == array.size()) { System.out.format("Последовательность целиком состоит из чётных чисел (%d)", count); } else{ System.out.format("Последовательность начинается с %d чётных чисел", count); } } } Тесты и их результаты: Этап №1 Тестирование на основе данных, которые характерны для реальных условий функционирования программы. Проведем 3 теста: последовательность начинается с нескольких четных чисел(рис.1); последовательность не начинается с четного числа(рис.2); последовательность целиком состоит из целых чисел(рис.3). Рис.1 Рис.2 Рис.3 Результаты тестов этапа: Как мы можем видеть, все три теста дали ожидаемый результат. В ходе тестирования «пользователь» придерживался инструкций ввода целых чисел. Этап №2 Тестовые данные включают граничные значения области изменения входных переменных, которые должны восприниматься программой как правильные данные. Типичными примерами таких значений являются очень маленькие или очень большие числа и отсутствие данных. Еще один тип экстремальных условий — это граничные объемы данных, когда массивы состоят из слишком малого или слишком большого числа элементов. Проведем 3 теста: последовательность состоит не только из положительных, но и отрицательных чисел, а так же содержит ноль(рис.4); последовательность состоит из довольно больших чисел, как отрицательных, так и положительных(рис.5); последовательность является пустой(рис.6). Рис.4 Рис.5 Рис.6 Результаты тестов этапа: Как и на прошлом этапе, все три теста дали ожидаемый результат. В ходе тестирования «пользователь» придерживался инструкций ввода целых чисел, находящихся в диапазоне допустимых значений типа Integer. Этап №3 Тестирование с использованием данных, значения которых лежат за пределами допустимой области изменений. Программа должна сама отвергать любые данные, которые она не в состоянии обрaботать правильно. Проведем 2 теста: последовательность содержит число, выходящее за пределы допустимых значений для типа Integer(рис.7); последовательность содержит буквы или символы(рис.8 и рис.9); Рис.7 Рис.8 Рис.9 Результаты тестов этапа: Как и на прошлых двух этапах, все тесты дали ожидаемый результат. В ходе тестирования «пользователь» мог написать что угодно в качестве элемента последовательности. Как только такое случалось – программа сообщала об ошибке и прекращала свою работу. Общий вывод по тестированию разработанной программы: В ходе разработки программы были учтены все нюансы, которые могли бы повлечь некорректное поведение программы. В ходе тестирования программы были проверены всевозможные варианты входных данных. В случае внештатной ситуации программа предупреждает об ошибке, завершает свою работу, что является самым правильным выходом из ситуации, ведь нет ничего хуже, когда программа не реагирует на ошибку пользователя и продолжает работать совсем не так, как было задумано. |