Файл: Обеспечения Базовый курс (3е издание) Версия книги 2 от 17. 04. 2023.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.11.2023
Просмотров: 853
Скачиваний: 31
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
Комментарии к заданиям
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 283/301 2.5.b
{192}
Возможно, кто-то из ваших знакомых тестировщиков может рекомен- довать вам то или иное инструментальное средство, исходя из соб- ственного опыта. Если такого источника информации у вас нет, возь- мите список соответствующего ПО из Википедии и/или многочислен- ных обзоров в Интернете.
2.6.a
{220}
Для начала можно ознакомиться с этим примером: http://www.softwaretestingclass.com/wp- content/uploads/2013/01/Sample-Test-Plan-Template.pdf
2.6.c
{233}
Какие отвлекающие факторы снижали вашу производительность?
Что у вас занимало больше всего времени (обдумывание тест-кей- сов, оформление или что-то иное)? Как вы считаете, повысилась или понизилась бы ваша производительность, если бы вы провели за изучением требований к проекту несколько часов или даже дней?
2.7.a
{236}
Ответ: потому, что здесь мы бы уже проверяли фактически взаимо- действие двух параметров. Это хорошая идея, но она выходит за рамки тестирования отдельной изолированной функциональности.
2.7.b
{240}
Самым эффективным способом доработки представленного списка является… программирование. Если вы достаточно хорошо знаете какой-нибудь язык программирования, напишите небольшую про- грамму, которая всего лишь будет получать из командной строки имя каталога и проверять его наличие и доступность для чтения. А затем протестируйте вашу программу и дополните представленный в за- даче список идеями, которые придут к вам в процессе тестирования.
2.7.c
{248}
В колонке «Наличие прав доступа» иногда отсутствуют значения, т.к. если каталог отсутствует, к нему неприменимо понятие «права до- ступа». Что касается лишних проверок, то, например, в строках 18 и
22 пути приведены с «/» в качестве разделителя имён каталогов, что характерно для Linux, но не для Windows (хотя и сработает в боль- шинстве случаев). Такие проверки можно оставлять, но можно и уби- рать как низкоприоритетные.
2.7.d
{251}
А если, кроме сложности, оценить также время на разработку тест- кейсов и проведение тестирования? А потом учесть необходимость повторять те же проверки многократно?
2.7.e
{252}
Можно использовать приведённый на рисунке 2.5.e
{174}
пример описа- ния дефекта как шаблон для решения этого задания.
2.7.f
{255}
Ответ: это плохое решение, т.к. теперь приложение будет пропускать имена каталогов вида «/////C:/dir/name/». Конечно, при проверке суще- ствования такой каталог не будет найден, но фильтрация данных всё равно нарушена. А вот имя «/» всё равно превратится в пустую строку.
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 284/301
4.3.
Командные файлы для Windows и Linux, автоматизирую-
щие выполнение дымового тестирования
CMD-
скрипт для Windows
rem Переключение кодовой таблицы консоли
rem (чтобы корректно обрабатывались спецсимволы в командах):
chcp 65001
rem Удаление файла журнала от прошлого запуска:
del smoke_test.log /Q
rem Очистка входного каталога приложения:
del IN\*.* /Q
rem Запуск приложения:
start php converter.php IN OUT converter.log
rem Размещение тестовых файлов во входном каталоге приложения:
copy Test_IN\*.* IN > nul
rem Таймаут в 10 секунд, чтобы приложение успело обработать файлы:
timeout 10
rem Остановка приложения:
taskkill /IM php.exe
rem =========================================================================
rem Проверка появления в выходном каталоге файлов,
rem которые должны быть обработаны,
rem и непоявления файлов, которые не должны быть обработаны:
echo Processing test: >> smoke_test.log
IF EXIST "OUT\«Мелкий» файл в WIN1251.txt" (
echo OK! '«Мелкий» файл в WIN1251.txt' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в WIN1251.txt' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\«Средний» файл в CP866.txt" (
echo OK! '«Средний» файл в CP866.txt' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в CP866.txt' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\«Крупный» файл в KOI8R.txt" (
echo OK! '«Крупный» файл в KOI8R.txt' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в KOI8R.txt' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\«Крупный» файл в win-1251.html" (
echo OK! '«Крупный» файл в win-1251.html' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в win-1251.html' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\«Мелкий» файл в cp-866.html" (
echo OK! '«Мелкий» файл в cp-866.html' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в cp-866.html' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\«Средний» файл в koi8-r.html" (
echo OK! '«Средний» файл в koi8-r.html' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в koi8-r.html' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\«Средний» файл в WIN_1251.md" (
echo OK! '«Средний» файл в WIN_1251.md' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в WIN_1251.md' file was NOT processed! >> smoke_test.log
)
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 285/301
IF EXIST "OUT\«Крупный» файл в CP_866.md" (
echo OK! '«Крупный» файл в CP_866.md' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в CP_866.md' file was NOT processed! >> smoke_test.log
1 ... 30 31 32 33 34 35 36 37 38
)
IF EXIST "OUT\«Мелкий» файл в KOI8_R.md" (
echo OK! '«Мелкий» файл в KOI8_R.md' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в KOI8_R.md' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Слишком большой файл.txt" (
echo ERROR! 'Too big' file was processed! >> smoke_test.log
) ELSE (
echo OK! 'Too big' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Картинка.jpg" (
echo ERROR! Picture file was processed! >> smoke_test.log
) ELSE (
echo OK! Picture file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Картинка в виде TXT.txt" (
echo OK! Picture file with TXT extension was processed! >> smoke_test.log
) ELSE (
echo ERROR! Picture file with TXT extension was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Пустой файл.md" (
echo OK! Empty was processed! >> smoke_test.log
) ELSE (
echo ERROR! Empty file was NOT processed! >> smoke_test.log
)
rem =========================================================================
rem =========================================================================
rem Проверка удаления из входного каталога файлов,
rem которые должны быть обработаны,
rem и неудаления файлов, которые не должны быть обработаны:
echo. >> smoke_test.log
echo Moving test: >> smoke_test.log
IF NOT EXIST "IN\«Мелкий» файл в WIN1251.txt" (
echo OK! '«Мелкий» файл в WIN1251.txt' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в WIN1251.txt' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Средний» файл в CP866.txt" (
echo OK! '«Средний» файл в CP866.txt' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в CP866.txt' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Крупный» файл в KOI8R.txt" (
echo OK! '«Крупный» файл в KOI8R.txt' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в KOI8R.txt' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Крупный» файл в win-1251.html" (
echo OK! '«Крупный» файл в win-1251.html' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в win-1251.html' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Мелкий» файл в cp-866.html" (
echo OK! '«Мелкий» файл в cp-866.html' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в cp-866.html' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Средний» файл в koi8-r.html" (
echo OK! '«Средний» файл в koi8-r.html' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в koi8-r.html' file was NOT moved! >> smoke_test.log
)
IF EXIST "OUT\«Мелкий» файл в KOI8_R.md" (
echo OK! '«Мелкий» файл в KOI8_R.md' file was processed! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в KOI8_R.md' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Слишком большой файл.txt" (
echo ERROR! 'Too big' file was processed! >> smoke_test.log
) ELSE (
echo OK! 'Too big' file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Картинка.jpg" (
echo ERROR! Picture file was processed! >> smoke_test.log
) ELSE (
echo OK! Picture file was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Картинка в виде TXT.txt" (
echo OK! Picture file with TXT extension was processed! >> smoke_test.log
) ELSE (
echo ERROR! Picture file with TXT extension was NOT processed! >> smoke_test.log
)
IF EXIST "OUT\Пустой файл.md" (
echo OK! Empty was processed! >> smoke_test.log
) ELSE (
echo ERROR! Empty file was NOT processed! >> smoke_test.log
)
rem =========================================================================
rem =========================================================================
rem Проверка удаления из входного каталога файлов,
rem которые должны быть обработаны,
rem и неудаления файлов, которые не должны быть обработаны:
echo. >> smoke_test.log
echo Moving test: >> smoke_test.log
IF NOT EXIST "IN\«Мелкий» файл в WIN1251.txt" (
echo OK! '«Мелкий» файл в WIN1251.txt' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в WIN1251.txt' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Средний» файл в CP866.txt" (
echo OK! '«Средний» файл в CP866.txt' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в CP866.txt' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Крупный» файл в KOI8R.txt" (
echo OK! '«Крупный» файл в KOI8R.txt' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в KOI8R.txt' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Крупный» файл в win-1251.html" (
echo OK! '«Крупный» файл в win-1251.html' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в win-1251.html' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Мелкий» файл в cp-866.html" (
echo OK! '«Мелкий» файл в cp-866.html' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в cp-866.html' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Средний» файл в koi8-r.html" (
echo OK! '«Средний» файл в koi8-r.html' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в koi8-r.html' file was NOT moved! >> smoke_test.log
)
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 286/301
IF NOT EXIST "IN\«Средний» файл в WIN_1251.md" (
echo OK! '«Средний» файл в WIN_1251.md' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Средний» файл в WIN_1251.md' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Крупный» файл в CP_866.md" (
echo OK! '«Крупный» файл в CP_866.md' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Крупный» файл в CP_866.md' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\«Мелкий» файл в KOI8_R.md" (
echo OK! '«Мелкий» файл в KOI8_R.md' file was moved! >> smoke_test.log
) ELSE (
echo ERROR! '«Мелкий» файл в KOI8_R.md' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\Слишком большой файл.txt" (
echo ERROR! 'Too big' file was moved! >> smoke_test.log
) ELSE (
echo OK! 'Too big' file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\Картинка.jpg" (
echo ERROR! Picture file was moved! >> smoke_test.log
) ELSE (
echo OK! Picture file was NOT moved! >> smoke_test.log
)
IF NOT EXIST "IN\Картинка в виде TXT.txt" (
echo OK! Picture file with TXT extension was moved! >> smoke_test.log
) ELSE (
echo ERROR! Picture file with TXT extension was NOT moved! >> smoke_test.log
)
rem =========================================================================
cls
rem =========================================================================
rem Проверка конвертации файлов путём сравнения
rem результатов работы приложения с эталонными файлами:
echo. >> smoke_test.log
echo Comparing test: >> smoke_test.log
:st1
fc "Test_ETALON\«Мелкий» эталон WIN1251.txt" "OUT\«Мелкий» файл в WIN1251.txt" /B > nul
IF ERRORLEVEL 1 GOTO st1_fail
echo OK! File '«Мелкий» файл в WIN1251.txt' was processed correctly! >> smoke_test.log
GOTO st2
:st1_fail
echo ERROR! File '«Мелкий» файл в WIN1251.txt' was NOT processed correctly! >> smoke_test.log
:st2
fc "Test_ETALON\«Средний» эталон CP866.txt" "OUT\«Средний» файл в CP866.txt" /B > nul
IF ERRORLEVEL 1 GOTO st2_fail
echo OK! File '«Средний» файл в CP866.txt' was processed correctly! >> smoke_test.log
GOTO st3
:st2_fail
echo ERROR! File '«Средний» файл в CP866.txt' was NOT processed correctly! >> smoke_test.log
:st3
fc "Test_ETALON\«Крупный» эталон KOI8R.txt" "OUT\«Крупный» файл в KOI8R.txt" /B > nul
IF ERRORLEVEL 1 GOTO st3_fail
echo OK! File '«Крупный» файл в KOI8R.txt' was processed correctly! >> smoke_test.log
GOTO st4
:st3_fail
echo ERROR! File '«Крупный» файл в KOI8R.txt' was NOT processed correctly! >> smoke_test.log
:st4
fc "Test_ETALON\«Крупный» эталон в win-1251.html" "OUT\«Крупный» файл в win-1251.html" /B > nul
IF ERRORLEVEL 1 GOTO st4_fail
echo OK! File '«Крупный» файл в win-1251.html' was processed correctly! >> smoke_test.log
GOTO st5
:st4_fail
echo ERROR! File '«Крупный» файл в win-1251.html' was NOT processed correctly! >> smoke_test.log
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 287/301
:st5
fc "Test_ETALON\«Мелкий» эталон в cp-866.html" "OUT\«Мелкий» файл в cp-866.html" /B > nul
IF ERRORLEVEL 1 GOTO st5_fail
echo OK! File '«Мелкий» файл в cp-866.html' was processed correctly! >> smoke_test.log
GOTO st6
:st5_fail
echo ERROR! File '«Мелкий» файл в cp-866.html' was NOT processed correctly! >> smoke_test.log
:st6
fc "Test_ETALON\«Средний» эталон в koi8-r.html" "OUT\«Средний» файл в koi8-r.html" /B > nul
IF ERRORLEVEL 1 GOTO st6_fail
echo OK! File '«Средний» файл в koi8-r.html' was processed correctly! >> smoke_test.log
GOTO st7
:st6_fail
echo ERROR! File '«Средний» файл в koi8-r.html' was NOT processed correctly! >> smoke_test.log
:st7
fc "Test_ETALON\«Средний» эталон в WIN_1251.md" "OUT\«Средний» файл в WIN_1251.md" /B > nul
IF ERRORLEVEL 1 GOTO st7_fail
echo OK! File '«Средний» файл в WIN_1251.md' was processed correctly! >> smoke_test.log
GOTO st8
:st7_fail
echo ERROR! File '«Средний» файл в WIN_1251.md' was NOT processed correctly! >> smoke_test.log
:st8
fc "Test_ETALON\«Крупный» эталон в CP_866.md" "OUT\«Крупный» файл в CP_866.md" /B > nul
IF ERRORLEVEL 1 GOTO st8_fail
echo OK! File '«Крупный» файл в CP_866.md' was processed correctly! >> smoke_test.log
GOTO st9
:st8_fail
echo ERROR! File '«Крупный» файл в CP_866.md' was NOT processed correctly! >> smoke_test.log
:st9
fc "Test_ETALON\«Мелкий» эталон в KOI8_R.md" "OUT\«Мелкий» файл в KOI8_R.md" /B > nul
IF ERRORLEVEL 1 GOTO st9_fail
echo OK! File '«Мелкий» файл в KOI8_R.md' was processed correctly! >> smoke_test.log
GOTO st10
:st9_fail
echo ERROR! File '«Мелкий» файл в KOI8_R.md' was NOT processed correctly! >> smoke_test.log
:st10
fc "Test_ETALON\Пустой файл.md" "OUT\Пустой файл.md" /B > nul
IF ERRORLEVEL 1 GOTO st10_fail
echo OK! File 'Пустой файл.md' was processed correctly! >> smoke_test.log
GOTO end
:st10_fail
echo ERROR! File 'Пустой файл.md' was NOT processed correctly! >> smoke_test.log
:end
echo WARNING! File 'Картинка в виде TXT.txt' has NO etalon decision, and it's OK for this file to
be corrupted. >> smoke_test.log
rem =========================================================================
Bash-
скрипт для Linux
#!/bin/bash
# Удаление файла журнала от прошлого запуска:
rm -f smoke_test.log
# Очистка входного каталога приложения:
rm -r -f IN/*
# Запуск приложения:
php converter.php IN OUT converter.log &
# Размещение тестовых файлов во входном каталоге приложения:
cp Test_IN/* IN/
# Таймаут в 10 секунд, чтобы приложение успело обработать файлы:
sleep 10
# Остановка приложения:
killall php
Командные файлы для Windows и Linux
Тестирование программного обеспечения. Базовый курс.
© EPAM Systems, 2015–2023
Стр: 288/301
# ===========================================================================
# Проверка появления в выходном каталоге файлов, которые должны быть обработаны,
# и непоявления файлов, которые не должны быть обработаны:
echo "Processing test:" >> smoke_test.log
if [ -f "OUT/«Мелкий» файл в WIN1251.txt" ]
then
echo "OK! '«Мелкий» файл в WIN1251.txt' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Мелкий» файл в WIN1251.txt' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Средний» файл в CP866.txt" ]
then
echo "OK! '«Средний» файл в CP866.txt' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Средний» файл в CP866.txt' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Крупный» файл в KOI8R.txt" ]
then
echo "OK! '«Крупный» файл в KOI8R.txt' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Крупный» файл в KOI8R.txt' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Крупный» файл в win-1251.html" ]
then
echo "OK! '«Крупный» файл в win-1251.html' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Крупный» файл в win-1251.html' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Мелкий» файл в cp-866.html" ]
then
echo "OK! '«Мелкий» файл в cp-866.html' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Мелкий» файл в cp-866.html' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Средний» файл в koi8-r.html" ]
then
echo "OK! '«Средний» файл в koi8-r.html' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Средний» файл в koi8-r.html' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Средний» файл в WIN_1251.md" ]
then
echo "OK! '«Средний» файл в WIN_1251.md' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Средний» файл в WIN_1251.md' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Крупный» файл в CP_866.md" ]
then
echo "OK! '«Крупный» файл в CP_866.md' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Крупный» файл в CP_866.md' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/«Мелкий» файл в KOI8_R.md" ]
then
echo "OK! '«Мелкий» файл в KOI8_R.md' file was processed!" >> smoke_test.log
else
echo "ERROR! '«Мелкий» файл в KOI8_R.md' file was NOT processed!" >> smoke_test.log
fi
if [ -f "OUT/Слишком большой файл.txt" ]
then
echo "ERROR! 'Too big' file was processed!" >> smoke_test.log
else
echo "OK! 'Too big' file was NOT processed!" >> smoke_test.log
fi