mirror of
https://github.com/dashared/LaTeX-documentation.git
synced 2024-11-25 21:15:04 +03:00
227 lines
13 KiB
TeX
227 lines
13 KiB
TeX
\documentclass[a4paper,12pt,reqno]{article}
|
||
|
||
\usepackage{styledoc19}
|
||
|
||
|
||
\begin{document} % конец преамбулы, начало документа
|
||
|
||
|
||
\year{2021}
|
||
\docNumber{RU.17701729.09.09-62 51 01-1}
|
||
\docFormat{Программа и методика испытаний}
|
||
\student{БПИ 174}{Д. Ю. Редникина}
|
||
|
||
\project{CRM-СИСТЕМА ДЛЯ БЛАГОТВОРИТЕЛЬНОГО ФОНДА <<AIAIN>>. WEB-ПРИЛОЖЕНИЕ ДЛЯ СОТРУДНИКОВ ФОНДА}
|
||
|
||
|
||
\supervisor{Доцент департамента \vfill образовательной программы \vfill <<Программная инженерия>>}
|
||
{Х. М. Салех}
|
||
|
||
\firstPage
|
||
\newpage
|
||
\secondPage
|
||
\newpage
|
||
\thirdPage
|
||
\newpage
|
||
|
||
|
||
\section{Объекты испытаний}
|
||
\subsection{Наименование программы}
|
||
\input{tex/rusTitle} (\input{tex/engTitle})
|
||
\subsection{Область применения программы}
|
||
\subsubsection{Функциональное назначение}
|
||
\input{tex/functionalPurpose}
|
||
\subsubsection{Эксплуатационное назначение}
|
||
\input{tex/operationalPurpose}
|
||
\subsubsection{Область применения}
|
||
\input{tex/projectScope}
|
||
\newpage
|
||
|
||
\section{Цель испытаний}
|
||
Проверка на соответствие требованиям, указанным в документе <<\input{tex/rusTitle}. Техническое задание>>.
|
||
|
||
\section{Требования к программе}
|
||
\subsection{Требования к функциональным характеристикам}
|
||
Программа выполняется в рамках темы выпускной курсовой работы в соответствии с учебным планом подготовки бакалавров по направлению 09.03.04 «Программная инженерия» Национального исследовательского университета «Высшая школа экономики», факультет компьютерных наук.
|
||
|
||
Программа должна удовлетворять следующим требованиям:
|
||
|
||
\input{tex/req}
|
||
|
||
\subsection{Требования к интерфейсу}
|
||
Цветовая гамма интерфейса должена быть выполнена в голубых тонах. Разработанный интерфейс должен соответствовать макетам (см. Приложение \ref{figma}).
|
||
|
||
\subsection{Требования к надежности}
|
||
|
||
\newlist{nfr}{enumerate}{10}
|
||
|
||
\setlist[nfr, 1]{label=\textbf{NFR-\arabic*.}}
|
||
\setlist[nfr, 2]{label*=\textbf{\arabic*.}}
|
||
\setlist[nfr, 3]{label=\arabic*.}
|
||
|
||
\begin{nfr}
|
||
\item Система должна сохранять работоспособность и обеспечивать восстановление своих функций при возникновении следующих внештатных ситуаций:
|
||
\begin{nfr}
|
||
\item При ошибках работы сервера, к которому по API отправляет запросы Web-приложение, программа должна отображать сообщения в формате уведомлений в UI и продолжать корректную работу;
|
||
\item При ошибках в сбоях аппаратных средств (кроме носителей данных) восстановление работоспособности возлагается на ОС;
|
||
\item При ошибках, связанных с веб-браузером, восстановление работоспособности возлагается на ОС;
|
||
\end{nfr}
|
||
\item Компоненты защиты программы от несанкционированного доступа к данным и функционалу должны обеспечивать:
|
||
\begin{nfr}
|
||
\item Идентификацию пользователя;
|
||
\item Проверку полномочий пользователя при работе с системой;
|
||
\item Разграничение прав доступа пользователей на уровне задач и доступа к данным;
|
||
\end{nfr}
|
||
\end{nfr}
|
||
|
||
\section{Требования к программной документации}
|
||
\subsection{Состав программной документации}
|
||
\input{tex/documents}
|
||
|
||
\newpage
|
||
\section{Средства и порядок испытаний}
|
||
\subsection{Технические средства, используемые во время испытаний}
|
||
\input{tex/tech}
|
||
\subsection{Программные средства, используемые во время испытаний}
|
||
\input{tex/prog}
|
||
Тестирование производилось с развернутым Web-приложением и API~\cite{api} на стенде, по адресу \url{https://charity.infostrategic.com/}.
|
||
|
||
|
||
\subsection{Порядок проведения испытаний}
|
||
В процессе разработки программы были написаны unit-тесты, а также автотесты, тестирующие интеграционное взаимодействие Web-клиента и сервера~\cite{api}.
|
||
|
||
Unit-тесты были написаны с помощью фреймворка Jest~\cite{jest}. При разработке приложения был использован сервис Gitlab, а также встроенный в Gitlab механизм CI/CD~\cite{cicd}. Разработка была построена следующим образом: на каждом коммите в пулл реквесте запускался пайплайн, который состоял из следующих этапов: Eslint, Prettier, Test. Первые два шага - линтеры, которые осуществляли проверку файлов проекта на код-стайл. На последнем этапе пайплана запускались unit-тесты проекта.
|
||
|
||
Для автоматизации тестирования UI использовался фреймворк Silenium IDE~\cite{silenium}. С помощью этого фреймворка были написаны интеграционные авто-тесты, покрывающие основные бизнес-требования, отраженные на диаграмме прецедентов в Приложении. \ref{keyUsecase}.
|
||
|
||
\newpage
|
||
\section{Методы испытаний}
|
||
|
||
Этап Test пайаплайна CI/CD автоматически запускает тесты проекта с помощью команды: \texttt{yarn test}. На изображении \ref{pic: test} можно увидеть успешный результат прохождения тестов в проекте.
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width = \linewidth]{img/test.png}
|
||
\caption{Тестирование. CI job.}
|
||
\label{pic: test}
|
||
\end{figure}
|
||
|
||
|
||
\subsection{Проверка требований к функциональным характеристикам}
|
||
|
||
При тестировании Веб-приложения был использован фреймворк Silenium IDE~\cite{silenium}. С помощью плагина, установленного в браузер Google Chrome~\cite{chrome}, были записаны тесты, проверяющие удовлетворение проекта составленным требованиям.
|
||
|
||
Для тестирования ключевых бизнес-процессов, выделенных на диаграмме прецедентов цветом (см. Приложение \ref{keyUsecase}), были составлены следующие тест-кейсы. По данным тест-кейсам были созданы тесты Silenium:
|
||
|
||
\input{tex/testcase}
|
||
|
||
Результаты UI тестов Silenium можно увидеть на рисунке \ref{pic: silenium}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width = \linewidth]{img/silenium.png}
|
||
\caption{Silenium IDE. Проект с тестами}
|
||
\label{pic: silenium}
|
||
\end{figure}
|
||
|
||
Также было проведено регрессионное ручное тестирование сложных и многоэтапных бизнес-процессов, включающих активацию заявки и голосование по заявке. Данные сценарии невозможно автоматизировать с помощью Silenium IDE, так как их невозможно завершить (проверить полностью) без использования Android-клиента (или совершения запросов через консоль-клиент).
|
||
|
||
Для проверки требований и бизнес-сценариев были написаны следующие тест-кейсы:
|
||
|
||
\input{tex/regressiontest}
|
||
|
||
Для подтверждения успеха проведенного тестирования в Приложении \ref{test_1} и \ref{test_2} представить фотографии экрана Web-приложения по тест кейсу TC-9 и TC-10.
|
||
|
||
\subsection{Проверка требований к программной документации}
|
||
Вся документация, представленная в требованиях, готова.
|
||
|
||
\newpage
|
||
%\section{Источники, использованные при разработке}
|
||
%\renewcommand{\refname}{Список источников}
|
||
% \addcontentsline{toc}{subsection}{\refname}
|
||
\patchcmd{\thebibliography}{\section*{\refname}}{}{}{}
|
||
\anonsection{Список источников}
|
||
\begin{thebibliography}{3}
|
||
\bibitem{md} Markdown Guide URL: \url{https://www.markdownguide.org} (Дата обращения: 16.04.2021).
|
||
\bibitem{gost}Единая система программной документации – М.: ИПК, Издательство стандартов, 2000, 125 стр.
|
||
\bibitem{chrome}
|
||
LMS [Электронный ресурс] URL:
|
||
\url{https://www.google.com/chrome} (Дата обращения: 31.05.2021, режим доступа: свободный)
|
||
\bibitem{api} Swagger Charity API, v0.2 [Электронный ресурс] URL:\url{https://app.swaggerhub.com/apis/charity-crm/Charity/0.2} (Дата обращения: 31.05.2021, режим доступа: свободный)
|
||
\bibitem{jest} Jest - testing URL:\url{https://jestjs.io} (Дата обращения: 31.05.2021, режим доступа: свободный)
|
||
|
||
\bibitem{cicd} Gitlab - CI/CD URL:\url{https://docs.gitlab.com/ee/ci/} (Дата обращения: 31.05.2021, режим доступа: свободный)
|
||
|
||
\bibitem{silenium} Silenium IDE URL:\url{https://www.selenium.dev/selenium-ide/}(Дата обращения: 31.05.2021, режим доступа: свободный)
|
||
\end{thebibliography}
|
||
|
||
\newpage
|
||
\addition{Макеты интерфейса}{figma}
|
||
|
||
\input{tex/figma}
|
||
|
||
\newpage
|
||
\addition{Ключевые прецеденты}{keyUsecase}
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width = 0.9\linewidth]{img/key-usecase.pdf}
|
||
\caption{Диаграмма прецедентов}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\addition{Тест кейс активации заявки}{test_1}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\begin{subfigure}[b]{0.475\linewidth}
|
||
\includegraphics[width=\linewidth]{img/test/1.png}
|
||
\end{subfigure}
|
||
\begin{subfigure}[b]{0.475\linewidth}
|
||
\includegraphics[width=\linewidth]{img/test/2.png}
|
||
\end{subfigure}
|
||
\begin{subfigure}[b]{0.475\linewidth}
|
||
\includegraphics[width=\linewidth]{img/test/3.png}
|
||
\end{subfigure}
|
||
\begin{subfigure}[b]{0.475\linewidth}
|
||
\includegraphics[width=\linewidth]{img/test/4.png}
|
||
\end{subfigure}
|
||
\caption{Скриншоты проведенного тестирорования TC-9}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\addition{Тест кейс голосования по заявке}{test_2}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\begin{subfigure}[b]{0.475\linewidth}
|
||
\includegraphics[width=\linewidth]{img/test/5.png}
|
||
\end{subfigure}
|
||
\begin{subfigure}[b]{0.475\linewidth}
|
||
\includegraphics[width=\linewidth]{img/test/6.png}
|
||
\end{subfigure}
|
||
\begin{subfigure}[b]{0.475\linewidth}
|
||
\includegraphics[width=\linewidth]{img/test/7.png}
|
||
\end{subfigure}
|
||
\caption{Скриншоты проведенного тестирорования TC-10}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\addition{Роли сотрудников фонда}{stuff}
|
||
\input{tex/stuff}
|
||
|
||
\newpage
|
||
\addition{Диаграмма жизненного цикла заявки}{status}
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width = 0.9\linewidth]{img/statusflow.pdf}
|
||
\caption{Диаграмма статусов}
|
||
\label{pic: status}
|
||
\end{figure}
|
||
|
||
|
||
|
||
\newpage
|
||
\listRegistration
|
||
|
||
\end{document} |