Вторая прога
BIN
lab2/img/programm2/block-schema.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
lab2/img/programm2/bounds.png
Normal file
|
After Width: | Height: | Size: 115 KiB |
BIN
lab2/img/programm2/classes-test-dop.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
lab2/img/programm2/classes-test-nedop.png
Normal file
|
After Width: | Height: | Size: 203 KiB |
BIN
lab2/img/programm2/classes.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
lab2/img/programm2/comb.png
Normal file
|
After Width: | Height: | Size: 210 KiB |
BIN
lab2/img/programm2/condition-coverage.png
Normal file
|
After Width: | Height: | Size: 148 KiB |
BIN
lab2/img/programm2/decision-coverage.png
Normal file
|
After Width: | Height: | Size: 117 KiB |
BIN
lab2/img/programm2/diagram.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
lab2/img/programm2/table-decisions.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
lab2/img/programm2/table-operators.png
Normal file
|
After Width: | Height: | Size: 113 KiB |
290
lab2/report.tex
@@ -156,7 +156,8 @@
|
|||||||
В данной работе будут рассмотрены оба метода. Также данные приёмы будут применены для тестирования двух программ:
|
В данной работе будут рассмотрены оба метода. Также данные приёмы будут применены для тестирования двух программ:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item
|
\item вычисление факториала числа;
|
||||||
|
\item возведение числа в степень.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Каждая из программ будет протестирована обоими методами с целью сравнения подходов.
|
Каждая из программ будет протестирована обоими методами с целью сравнения подходов.
|
||||||
@@ -435,7 +436,7 @@
|
|||||||
\begin{figure}[h!]
|
\begin{figure}[h!]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
||||||
\caption{Набор тестов для покрытия операторов второй программы.}
|
\caption{Набор тестов для покрытия операторов программы.}
|
||||||
\label{fig:programm1/table-operators}
|
\label{fig:programm1/table-operators}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
@@ -451,7 +452,7 @@
|
|||||||
\begin{figure}[h!]
|
\begin{figure}[h!]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
||||||
\caption{Набор тестов для покрытия решений второй программы.}
|
\caption{Набор тестов для покрытия решений программы.}
|
||||||
\label{fig:programm1/table-operators-1}
|
\label{fig:programm1/table-operators-1}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
@@ -468,7 +469,7 @@
|
|||||||
\begin{figure}[h!]
|
\begin{figure}[h!]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
||||||
\caption{Набор тестов для покрытия решений второй программы.}
|
\caption{Набор тестов для покрытия решений программы.}
|
||||||
\label{fig:programm1/table-operators-2}
|
\label{fig:programm1/table-operators-2}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
@@ -486,7 +487,7 @@
|
|||||||
\begin{figure}[h!]
|
\begin{figure}[h!]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
||||||
\caption{Набор тестов для покрытия решений второй программы.}
|
\caption{Набор тестов для покрытия решений программы.}
|
||||||
\label{fig:programm1/table-operators-3}
|
\label{fig:programm1/table-operators-3}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
@@ -502,7 +503,7 @@
|
|||||||
\begin{figure}[h!]
|
\begin{figure}[h!]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
\includegraphics[width=1\linewidth]{img/programm1/table-operators.png}
|
||||||
\caption{Набор тестов для покрытия решений второй программы.}
|
\caption{Набор тестов для покрытия решений программы.}
|
||||||
\label{fig:programm1/table-operators-4}
|
\label{fig:programm1/table-operators-4}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
@@ -619,12 +620,281 @@
|
|||||||
\subsubsection{Результаты тестирования методом <<чёрного ящика>>}
|
\subsubsection{Результаты тестирования методом <<чёрного ящика>>}
|
||||||
В результате тестирования методом чёрного ящика было составлено 11 тестов, из которых не пройдено 2. Ошибки, из-за которых тесты не были пройдены, связаны с некорректной проверкой входных значений и неверно составленной спецификацией: программа экстренно завершается при вводе вместо числа $N$ строки, а также входит в бесконечный цикл при $N = 0$, что не соответствует поведению, описанному в спецификакции.
|
В результате тестирования методом чёрного ящика было составлено 11 тестов, из которых не пройдено 2. Ошибки, из-за которых тесты не были пройдены, связаны с некорректной проверкой входных значений и неверно составленной спецификацией: программа экстренно завершается при вводе вместо числа $N$ строки, а также входит в бесконечный цикл при $N = 0$, что не соответствует поведению, описанному в спецификакции.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\section{Тестирование программы №2}
|
||||||
|
\subsection{Формальное описание программы}
|
||||||
|
\textbf{Название:} «Алгоритм быстрого возведения в степень».
|
||||||
|
|
||||||
|
\textbf{Дано:}
|
||||||
|
\begin{itemize}
|
||||||
|
\item $n$ --- целое положительное число.
|
||||||
|
\item $k$ --- целое положительное число.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
\textbf{Требуется:} Возвести число $n$ в степень $k$ и вывести результат на экран.
|
||||||
|
|
||||||
|
\textbf{Ограничения:}
|
||||||
|
\begin{itemize}
|
||||||
|
\item $n$ --- целое.
|
||||||
|
\item $k$ --- целое.
|
||||||
|
\item $1 \leq n \leq 15$;
|
||||||
|
\item $1 \leq k \leq 15$;
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\textbf{Спецификация}
|
||||||
|
|
||||||
|
\begin{table}[h!]
|
||||||
|
\centering
|
||||||
|
%\caption{Спецификация}
|
||||||
|
%\label{.}
|
||||||
|
\footnotesize
|
||||||
|
\begin{tabularx}{\textwidth}{|X|X|X|}
|
||||||
|
\hline
|
||||||
|
\textbf{Входные данные} & \textbf{Выходные данные} & \textbf{Реакция программы} \\
|
||||||
|
\hline
|
||||||
|
$n = -5, k = 10$ & ''Ошибка! Введите числа от 1 до 15.'' & Вывод на экран сообщения: ''Ошибка! Введите числа от 1 до 15.''. Ожидание корректного ввода $n$ и $k$. \\
|
||||||
|
\hline
|
||||||
|
$n = 5, k = -10$ & ''Ошибка! Введите числа от 1 до 15.'' & Вывод на экран сообщения: ''Ошибка! Введите числа от 1 до 15.''. Ожидание корректного ввода $n$ и $k$. \\
|
||||||
|
\hline
|
||||||
|
$n = 25, k = 10$ & ''Ошибка! Введите числа от 1 до 15.'' & Вывод на экран сообщения: ''Ошибка! Введите числа от 1 до 15.''. Ожидание корректного ввода $n$ и $k$. \\
|
||||||
|
\hline
|
||||||
|
$n = 5.7, k = 10$ & ''Ошибка! n должно быть целым числом.'' & Вывод на экран сообщения: ''Ошибка! k должно быть целым числом.''. Ожидание корректного ввода $n$ и $k$. \\
|
||||||
|
\hline
|
||||||
|
$n =$ ''строка'' $, k = 10$ & ''Ошибка! n должно быть целым числом.'' & Вывод на экран сообщения: ''Ошибка! k должно быть целым числом.''. Ожидание корректного ввода $n$ и $k$. \\
|
||||||
|
\hline
|
||||||
|
$n = 2, k = 10$ & 1024 & Вывод на экран значения $2^10$. Завершение программы. \\
|
||||||
|
\hline
|
||||||
|
\end{tabularx}
|
||||||
|
\end{table}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\textbf{Блок-схема}
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.75\linewidth]{img/programm2/block-schema.png}
|
||||||
|
\caption{Блок схема программы №2.}
|
||||||
|
\label{fig:programm2/block-schema}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsection{Тестирование методом «белого ящика»}
|
||||||
|
Алгоритм составления тестов методом «белого» ящика предполагает обход всех
|
||||||
|
возможных путей в теле программы и проверку выполнения каждого оператора не
|
||||||
|
менее одного раза. Для этого на блок-схеме программы, которая изображена на Рис.~\ref{fig:programm2/block-schema}, все возможные пути обозначены символами латинского алфавита от~A~до~I.
|
||||||
|
|
||||||
|
Условия в ветвлениях программы:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $n$ целое число?
|
||||||
|
\item $k$ целое число?
|
||||||
|
\item $n < 1$;
|
||||||
|
\item $n > 15$;
|
||||||
|
\item $k < 1$;
|
||||||
|
\item $k > 15$;
|
||||||
|
\item $k \mod 2 = 1$;
|
||||||
|
\item $k > 0$.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
||||||
|
\subsubsection{Покрытие операторов}
|
||||||
|
Критерием покрытия является выполнение каждого оператора программы хотя
|
||||||
|
бы один раз. Это необходимое, но не достаточное условие для приемлемого тестирования по принципу белого ящика.
|
||||||
|
|
||||||
|
Для покрытия всех операторов был составлен набор тестов из 4 тестов (Рис.~\ref{fig:programm2/table-operators}).
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\linewidth]{img/programm2/table-operators.png}
|
||||||
|
\caption{Набор тестов для покрытия операторов программы.}
|
||||||
|
\label{fig:programm2/table-operators}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Для покрытия всех операторов программы достаточно было составить тесты для четырёх путей: A, BC, BDE, BDFHI.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsubsection{Покрытие решений}
|
||||||
|
В соответствии с этим критерием необходимо составить такой набор тестов, при котором каждое условие в программе примет как истинное, так и ложное значения. Таким образом, к тестам, составленным для метода покрытия операторов, необходимо добавить тесты, которые будут проверять все возможные переходы.
|
||||||
|
|
||||||
|
Тесты, покрывающие все решения программы представлены на Рис.~\ref{fig:programm2/decision-coverage}.
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\linewidth]{img/programm2/decision-coverage.png}
|
||||||
|
\caption{Набор тестов для покрытия решений программы.}
|
||||||
|
\label{fig:programm2/decision-coverage}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\subsubsection{Покрытие условий}
|
||||||
|
В соответствии с этим критерием количество тестов должно быть таким, чтобы
|
||||||
|
все возможные результаты каждого условия в решении выполнялись по крайней мере
|
||||||
|
один раз.
|
||||||
|
|
||||||
|
Тесты, покрывающие все условия программы представлены на Рис.~\ref{fig:programm2/condition-coverage}.
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\linewidth]{img/programm2/condition-coverage.png}
|
||||||
|
\caption{Набор тестов для покрытия условий программы.}
|
||||||
|
\label{fig:programm2/condition-coverage}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsubsection{Покрытие решений и условий}
|
||||||
|
Согласно этому критерию набор тестов является достаточно полным, если удовлетворяются следующие требования: каждое условие в решении принимает каждое
|
||||||
|
возможное значение по крайней мере один раз, каждый возможный исход решения
|
||||||
|
проверяется по крайней мере один раз и каждой точке входа управление передается
|
||||||
|
по крайней мере один раз.
|
||||||
|
|
||||||
|
Тесты, написанные ранее, обеспечивают покрытие решений и условий (Рис.~\ref{fig:programm2/condition-coverage-2}).
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\linewidth]{img/programm2/condition-coverage.png}
|
||||||
|
\caption{Набор тестов для покрытия решений и условий программы.}
|
||||||
|
\label{fig:programm2/condition-coverage-2}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsubsection{Комбинаторное покрытие условий}
|
||||||
|
Этот критерий требует создания такого набора тестов, при котором каждая возможная комбинация результатов вычисления условий в каждом решении и
|
||||||
|
каждая точка входа проверяются по крайней мере один раз.
|
||||||
|
|
||||||
|
Тесты, обеспечивающие комбинаторное покрытие условий, представлены на Рис.~\ref{fig:programm2/comb}.
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\linewidth]{img/programm2/comb.png}
|
||||||
|
\caption{Набор тестов для комбинаторного покрытия условий программы.}
|
||||||
|
\label{fig:programm2/comb}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Покрыть истинную ветку условия 3 (путь B->D->E) невозможно из-за экстренного завершения программы при вводе строкового значения N.
|
||||||
|
|
||||||
|
\subsubsection{Результаты тестирования методом <<белого ящика>>}
|
||||||
|
В результате тестирования методом «белого ящика» было составлено 11 тестов. Программа прошла все 11 тестов. Это может говорить как о корректности программы, так и о том, что данный метод просто не подходит для тестирования данной программы, так как не рассматривает какую-либо ситуацию, в которой бы возникла ошибка.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsection{Тестирование методом <<чёрного ящика>>}
|
||||||
|
\subsubsection{Разбиение на классы эквивалентности}
|
||||||
|
Составлено разбиение на классы эквивалентности исходя из ограничений для
|
||||||
|
программы, представленное на Рис.~\ref{fig:programm2/classes}. Тесты для допустимых классов эквивалентности представлены на Рис.~\ref{fig:programm2/classes-test-dop} и тесты для недопустимых классов эквивалентности
|
||||||
|
— на Рис.~\ref{fig:programm2/classes-test-nedop}.
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.6\linewidth]{img/programm2/classes.png}
|
||||||
|
\caption{Разбиение на классы эквивалентности.}
|
||||||
|
\label{fig:programm2/classes}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.75\linewidth]{img/programm2/classes-test-dop.png}
|
||||||
|
\caption{Тесты для допустимых классов эквивалентности.}
|
||||||
|
\label{fig:programm2/classes-test-dop}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.75\linewidth]{img/programm2/classes-test-nedop.png}
|
||||||
|
\caption{Тесты для недопустимых классов эквивалентности.}
|
||||||
|
\label{fig:programm2/classes-test-nedop}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Программа прошла все 9 тестов, составленных при рассмотрении классов эквивалентности входных данных.
|
||||||
|
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsubsection{Анализ граничных условий}
|
||||||
|
В программе можно выделить следующие граничные условия:
|
||||||
|
\begin{itemize}
|
||||||
|
\item $n \geq 1$;
|
||||||
|
\item $k \leq 15$;
|
||||||
|
\item $n \geq 1$;
|
||||||
|
\item $k \leq 15$.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Для каждой из границ определим тесты, соответствующие:
|
||||||
|
\begin{itemize}
|
||||||
|
\item граничному целому числу (верхнему/нижнему);
|
||||||
|
\item целому числу, выходящему за границу (верхнюю/нижнюю) на единицу;
|
||||||
|
% \item дробному числу, на 0.001 выходящему за границу (верхнюю/нижнюю).
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Составленные тесты представлены на Рис.~\ref{fig:programm2/bounds}.
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.8\linewidth]{img/programm2/bounds.png}
|
||||||
|
\caption{Тесты граничных условий.}
|
||||||
|
\label{fig:programm2/bounds}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
При анализе граничных условий был составлен набор из 8 тестов. Программа прошла все 8 тестов.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsubsection{Причинно-следственная диаграмма}
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.6\linewidth]{img/programm2/diagram.png}
|
||||||
|
\caption{Причинно следственная диаграмма.}
|
||||||
|
\label{fig:programm2/diagram}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
\textbf{Причины:}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $n$ -- целое число;
|
||||||
|
% \item $n \geq 1$;
|
||||||
|
\item $1 \leq n \leq 15$;
|
||||||
|
% \item $k \geq 1$;
|
||||||
|
\item $1 \leq k \leq 15$.
|
||||||
|
\item $k$ -- целое число;
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\textbf{Промежуточные причины:}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item[1.1] $n$ -- целое и $1 \leq n \leq 15$.
|
||||||
|
\item[1.2] $k$ -- целое и $1 \leq k \leq 15$.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\textbf{Следствия:}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item[2.1] Программа выводит сообщение об ошибке ''Ошибка! n должно быть целым числом'' и заново запрашивает числа $n$ и $k$;
|
||||||
|
\item[2.2] Программа выводит значение $n^k$ и завершает работу;
|
||||||
|
\item[2.3] Программа выводит сообщение об ошибке ''Ошибка! Введите числа от 1 до 15'' и заново запрашивает числа $n$ и $k$;
|
||||||
|
\item[2.4] Программа выводит сообщение об ошибке ''Ошибка! k должно быть целым числом'' и заново запрашивает числа $n$ и $k$;
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
На Рис.~\ref{fig:programm2/diagram} представлена причинно-следственная диаграмма.
|
||||||
|
|
||||||
|
Таблица решений для диаграммы представлена на Рис.~\ref{fig:programm2/table-decisions}.
|
||||||
|
|
||||||
|
\begin{figure}[h!]
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=0.5\linewidth]{img/programm2/table-decisions.png}
|
||||||
|
\caption{Таблица решений.}
|
||||||
|
\label{fig:programm2/table-decisions}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Все тесты для таблицы решений уже были покрыты ранее при рассмотрении
|
||||||
|
классов эквивалентности и граничных условий.
|
||||||
|
|
||||||
|
\subsubsection{Результаты тестирования методом <<чёрного ящика>>}
|
||||||
|
В результате тестирования методом чёрного ящика было составлено 17 тестов. Программа прошла все тесты. Это может свидетельствовать как о корректности программы, так и о том, что данный метод просто не подходит для данной программы, так как не рассматривает какую-либо ситуацию, в которой бы возникла ошибка.
|
||||||
|
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\section*{Заключение}
|
\section*{Заключение}
|
||||||
\addcontentsline{toc}{section}{Заключение}
|
\addcontentsline{toc}{section}{Заключение}
|
||||||
В ходе выполнения данной лабораторной работы были изучены методологии модульного тестирования: метод <<белого>> ящика и метод <<чёрного>> ящика.
|
В ходе выполнения данной лабораторной работы были изучены методологии модульного тестирования: метод <<белого ящика>> и метод <<чёрного ящика>>.
|
||||||
|
|
||||||
При помощи изученных методологий были спроектированы тесты для программы возведения матрицы в степень и программы вычисления факториала числа. При составлении тестов использовались методы:
|
При помощи изученных методологий были спроектированы тесты для программы вычисления факториала числа и возведения числа в степень. При составлении тестов использовались методы:3
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Разбиения на классы эквивалентности;
|
\item Разбиения на классы эквивалентности;
|
||||||
\item Анализа граничных значений;
|
\item Анализа граничных значений;
|
||||||
@@ -641,8 +911,10 @@
|
|||||||
% Тестирование первой программы показало, что 11 тестов из 21, составленных методом чёрного ящика не были пройдены программой, и все 5 тестов, составленных методом белого ящика, были пройдены. Таким образом, сочетанием методов <<чёрного>> и <<белого>> ящиков удалось выявить ошибки в спецификации первой программы.
|
% Тестирование первой программы показало, что 11 тестов из 21, составленных методом чёрного ящика не были пройдены программой, и все 5 тестов, составленных методом белого ящика, были пройдены. Таким образом, сочетанием методов <<чёрного>> и <<белого>> ящиков удалось выявить ошибки в спецификации первой программы.
|
||||||
|
|
||||||
При тестировании первой программы методом чёрного ящика не было пройдено 2 теста, методом белого ящика --- 1 тест. Ошибки, из-за которых тесты не были пройдены, связаны с некорректной проверкой входных значений и неверно составленной спецификацией.
|
При тестировании первой программы методом чёрного ящика не было пройдено 2 теста, методом белого ящика --- 1 тест. Ошибки, из-за которых тесты не были пройдены, связаны с некорректной проверкой входных значений и неверно составленной спецификацией.
|
||||||
|
|
||||||
|
При тестировании второй программы методом чёрного ящика было составлено 17 тестов, методом белого ящика --- 11 тестов. В результате тестирования не удалось составить тест, который программа бы не прошла. Это может свидетельствовать как о корректности программы, так и о том, что данные методы просто не подходят для тестирования данной программы, так как не рассматривают какую-либо ситуацию, в которой бы возникла ошибка.
|
||||||
|
|
||||||
Более эффективным методом для проверки программ оказался метод <<чёрного>> ящика.
|
Более эффективным методом для проверки программ оказался метод <<чёрного ящика>>. С его помощью удалось составить два теста, которые программа не смогла пройти. С помощью метода <<белого ящика>> удалось составить только один такой тест.
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
\section*{Список литературы}
|
\section*{Список литературы}
|
||||||
|
|||||||