Список вопросов
This commit is contained in:
149
lab1/report.tex
149
lab1/report.tex
@@ -246,8 +246,8 @@
|
||||
Заседание происходило в следущем составе:
|
||||
|
||||
\begin{itemize}
|
||||
\item секретарь Кондраев Дмитрий, исполняющий роль координатора;
|
||||
\item специалист по тестированию Астафьев Игорь;
|
||||
\item секретарь Астафьев Игорь, исполняющий роль координатора;
|
||||
\item специалист по тестированию Кондраев Дмитрий;
|
||||
\item программист Тищенко Артём, он же проектировщик программы.
|
||||
\end{itemize}
|
||||
|
||||
@@ -423,6 +423,151 @@ int main() {
|
||||
}
|
||||
\end{lstlisting}
|
||||
|
||||
\subsection{Список вопросов и ответов на них}
|
||||
|
||||
Ниже представлен список вопросов, которые специалист по тестированию Кондраев задавал программисту Тищенко. После каждого вопроса приведен ответ. После некоторых ответов следуют замечания специалиста по тестированию.
|
||||
|
||||
\begin{enumerate}
|
||||
\item Программа реализует бинарное дерево поиска?
|
||||
|
||||
\textit{Ответ:} Да.
|
||||
|
||||
\item На каком языке написана программа?
|
||||
|
||||
\textit{Ответ:} C++.
|
||||
|
||||
\item Какие типы переменных используются?
|
||||
|
||||
\textit{Ответ:} int, string, BSTNode*, BST, vector<string>, bool.
|
||||
|
||||
\item Все ли константные переменные объявлены при их инициализации?
|
||||
|
||||
\textit{Ответ:} Да.
|
||||
|
||||
\item Где-то используется индексация массивов?
|
||||
|
||||
\textit{Ответ:} Да, в выводе слов (например, \texttt{allWords[i]}) и обработке ввода.
|
||||
|
||||
\item Проверяется ли аргумент индексации что он целочисленный?
|
||||
|
||||
\textit{Ответ:} Да, через приведение типа и проверку условий (например, \texttt{(int)allWords.size()}).
|
||||
|
||||
\item Корректно ли названы все методы и переменные?
|
||||
|
||||
\textit{Ответ:} Да, кроме параметра \texttt{w} в методах BST.
|
||||
|
||||
\textbf{Замечание:} Параметры вроде \texttt{w} стоит переименовать в \texttt{word} для ясности.
|
||||
|
||||
\item Возможно ли деление на 0?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\item Как выполняются проверки сравнения?
|
||||
|
||||
\textit{Ответ:} Сравниваются строки (например, \texttt{w == node->word}) и целые числа.
|
||||
|
||||
\item Есть ли операторы сравнения с целыми константами?
|
||||
|
||||
\textit{Ответ:} Да (например, проверка \texttt{command == 0}).
|
||||
|
||||
\item Используются ли переменные double, float?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\item Может ли какая-нибудь переменная типа int переполниться?
|
||||
|
||||
\textit{Ответ:} Теоретически возможно, но маловероятно (например, при очень большом количестве слов).
|
||||
|
||||
\item Соблюдены ли правила наследования объектов?
|
||||
|
||||
\textit{Ответ:} Да, наследование не используется.
|
||||
|
||||
\item Все ли переменные объявлены?
|
||||
|
||||
\textit{Ответ:} Да.
|
||||
|
||||
\item Правильно ли инициализированы массивы и строки?
|
||||
|
||||
\textit{Ответ:} Да (например, \texttt{vector<string> result;} инициализируется пустым).
|
||||
|
||||
\item Удаляются ли неиспользуемые переменные из памяти?
|
||||
|
||||
\textit{Ответ:} Частично.
|
||||
|
||||
\textbf{Замечание:} Не хватает деструктора для класса \texttt{BST} для полной очистки памяти.
|
||||
|
||||
\item Присутствуют ли в программе потенциально бесконечные циклы?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\item Может ли значение индекса выйти за размер массива?
|
||||
|
||||
\textit{Ответ:} Нет (используется \texttt{(int)allWords.size()}, что предотвращает выход за границы).
|
||||
|
||||
\item Проверяются ли входные данные на принадлежность к домену?
|
||||
|
||||
\textit{Ответ:} Частично.
|
||||
|
||||
\textbf{Замечание:} Не проверяется, содержит ли строка только допустимые символы (например, кириллицу).
|
||||
|
||||
\item Используются ли логические выражения?
|
||||
|
||||
\textit{Ответ:} Да (например, \texttt{if (!node)}).
|
||||
|
||||
\item Используются ли файлы для ввода-вывода?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\item У всех ли классов есть конструктор?
|
||||
|
||||
\textit{Ответ:} Да (например, \texttt{BSTNode(const string\& w)}).
|
||||
|
||||
\item В цикле for корректно ли написана операция сравнения в цикле?
|
||||
|
||||
\textit{Ответ:} Да (например, \texttt{for (int i = 0; i < (int)allWords.size(); i++)}).
|
||||
|
||||
\item Проверяется ли наличие элементов в дереве перед удалением?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\textbf{Замечание:} Метод \texttt{remove} возвращает \texttt{false} при отсутствии элемента, но нет явной проверки на пустое дерево.
|
||||
|
||||
\item Совпадает ли число аргументов, передаваемых вызываемым модулям и число ожидаемых параметров?
|
||||
|
||||
\textit{Ответ:} Да.
|
||||
|
||||
\item Делаются ли в программе попытки поправить входные аргументы?
|
||||
|
||||
\textit{Ответ:} Да (например, обработка \texttt{stoi(cmdStr)} с исключениями).
|
||||
|
||||
\item Нет ли пропущенных функций?
|
||||
|
||||
\textit{Ответ:} Нет, все функции реализованы (вставка, удаление, очистка, вывод).
|
||||
|
||||
\item Выдаются ли предупреждения при компиляции?
|
||||
|
||||
\textit{Ответ:} Нет (при условии корректных настроек компилятора).
|
||||
|
||||
\item Выдаются ли ошибки при компиляции?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\item Выполняются ли вычисления с присваиванием несовпадающих типов?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\item Есть ли комментарии в программе?
|
||||
|
||||
\textit{Ответ:} Нет.
|
||||
|
||||
\textbf{Замечание:} Стоит добавить пояснения к методам класса \texttt{BST}.
|
||||
|
||||
\item Оформлен ли код в соответствии с некоторым регламентом?
|
||||
|
||||
\textit{Ответ:} Да (отступы, именование классов и методов в camelCase).
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
\newpage
|
||||
\section*{Заключение}
|
||||
\addcontentsline{toc}{section}{Заключение}
|
||||
|
||||
Reference in New Issue
Block a user