Смекни!
smekni.com

Тестирование информационных систем (стр. 7 из 9)

Способ анализа граничных значений.

Как правило, большая часть ошибок происходит на границах области ввода, а не в центре. Анализ граничных значений заключается в получении тестовых вариантов, которые анализируют граничные значения. Данный способ тестирования дополняет способ разбиения по эквивалентности.

Основные отличия анализа граничных значений от разбиения по эквивалентности:

· тестовые варианты создаются для проверки только ребер классов эквивалентности.

· При создании тестовых вариантов учитывают не только условия ввода, но и область вывода.

Сформулируем правила анализа граничных значений.

1. если условие ввода задает диапазон n…m, то тестовые варианты должны быть построены:

1. для значений n и m.

2. для значений чуть левее n и чуть правее m на числовой оси.

2. Если условие ввода задает дискретное множество значений, то создаются тестовые варианты:

1. для проверки минимального и максимального из значений.

2. для значений чуть меньше минимума и чуть больше максимума.

3. Правила 1 и 2 применяются к условиям области вывода.

4. Если внутренние структуры данных программы имеют предписанные границы, то разрабатываются тестовые варианты, повторяющие эти структуры на их границах.

5. Если входные или выходные данные программы являются упорядоченными множествами (например, последовательным файлом, линейным списком, таблицей), то надо тестировать обработку первого и последнего элементов этих множеств.

Большинство разработчиков используют этот способ интуитивно. При применении описанных правил тестирование этих границ будет более полным, в связи с чем возрастет вероятность обнаружения ошибки.

Способ диаграмм причин-следствий.

Диаграммы причинно-следственных связей – способ проектирования тестовых вариантов, который обеспечивает формальную запись логических условий соответствующих действий. Используется автоматный подход к решению задачи.

Шаги способа:

· Для каждого модуля перечисляются причины (условия ввода или классы эквивалентности условий ввода) и следствия (действия или условия вывода). Каждой причине и следствию присваивается свой идентификатор.

· Разрабатывается граф причинно-следственных связей.

· Граф преобразуется в таблицу решений.

· Столбцы таблицы решений преобразуются в тестовые варианты.

ГЛАВА 3. ТЕСТИРОВАНИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ «УЧЕБНО-МЕТОДИЧЕСКИЙ РЕСУРС»

В качестве практической части нам было предложено протестировать фрагмент информационной системы «Учебно-методический ресурс», а именно – регистрацию пользователей. Так как информационная система «Учебно-методический ресурс» представляет собой WEB-сайт, то также было предложено протестировать и навигацию сайта.

Нами был выбран такой метод тестирования, как метод «черного ящика». Это обусловлено тем, что тестированием кода программы занимался непосредственно разработчик кода. Им был написан файл регистрации reg.php. В результате работы файла на главной странице информационной системы появляется следующая форма.

Нами были заполнены все обязательные и необязательны поля формы, но в поле «Подтверждение» нами был указан неверный пароль, в результате чего появилось следующее сообщение.

Появление вышеуказанного сообщения свидетельствует о верной работе файла регистрации в том случае, если неверно введено значение поля «Подтверждение».

Далее по ссылке «назад» мы попадаем на страницу регистрации. В очищенную после указанных действий форму мы вводим данные, не забывая указать верное подтверждение пароля, в результате чего осуществляется вход в информационную систему «Учебно-методический ресурс».

После проведения регистрации мы попадаем на главную страницу сайта и узнаем его содержание и структуру.

Для тестирования фрагмента информационной системы «Учебно-методический ресурс» нами была выбрана возможность создания курса лекций одного предмета.

На главной странице указывается количество лекций. В нашем случае их количество – 3. Нажатием кнопки «Лекции» вызывается форма, содержащая пустые поля для ввода названия лекции и пути, по которому находится файл с непосредственно содержанием (текстом) лекции. Файл с лекцией должен быть написан в текстовом редакторе Microsoft Office Word и сохранен как веб-страница с фильтром, иначе могут возникнуть ошибки в формировании конечной страницы. В результате проделанных действий должна формироваться веб-страница, содержащая все лекции, указанные пользователем. В нашем случае формирование страницы происходит успешно, и мы получаем веб-страницу с тремя лекциями с заданными названиями и с верным содержимым.

Помимо тестирования веб-страниц информационной системы «УМР» производилось визуальное тестирование исходного кода сценария reg.php. Проверка данного файла осуществлялась при помощи редактора PHP Expert Editor.

Файл сценария reg.php

<?php

session_start();

// ñîçäàåì íîâóþ ñåññèþ èëè

// âîññòàíàâëèâàåì òåêóùóþ

$err_msg = array("lname"=>"Ôàìèëèÿ:", "fname"=>"Èìÿ", "oname"=>"Îò÷åñòâî", "pass"=>"Íå âåäåí ïàðîëü","repass"=>"Íå ïîäòâåðæäåí ïàðîëü", "error"=>"Ïàðîëü íå ñîâïàäàåò ñ ïîäòâåðæäåíèåì",

"login"=>"Ïîëüçîâàòåëü ñ òàêèì ïñåâäîíèìîì óæå ñóùåñòâóåò");

//print_r($err_msg);

/*-------Âñïîìîãàòåëüíûå ôóíêöèè-------*/

function Check($var, $val=""){

if (!isset($var))

return $val;

else

return $var;

}

//Ôóíêöèÿ äëÿ ïðîâåðêè ÔÈÎ

//function FIO_OK($str){

// return ereg("^[À-ßà-ÿ&bsol;' -]{l,25}$", $str);

//}

function LOGIN_OK($str){

$conn=mysql_connect("localhost","root");// óñòàíàâëèâàåì ñîåäèíåíèå

$database = "users";

$table_name = "pass";

mysql_select_db($database); // âûáèðàåì áàçó äàííûõ

//ïðîâåðêà óíèêàëüíîñòè ïñåâäîíèìà

$sql = "SELECT login FROM $table_name WHERE `login` = "."'".$str."'";

$result=mysql_query($sql);

mysql_close($conn);

return mysql_num_rows($result);

}

//Ôóíêöèÿ äëÿ ïðîâåðêè email

function email_OK($str){

return preg_match("/^&bsol;w+([&bsol;.&bsol;w]+)*&bsol;w@&bsol;w((&bsol;.&bsol;w)*&bsol;w+)*&bsol;.&bsol;w{2,3}$/",$str);

}

//Ôóíêöèÿ äëÿ ïðîâåðêè òåëåôîíà

function telefon_OK($str){

return preg_match("/&bsol;d{3}-&bsol;d{2}-&bsol;d{2}/",$str);

}

//Ôóíêöèÿ äëÿ ïðîâåðêè ôîðìû

function Form_OK(){

//Ìàññèâ îøèáîê è ñîîòâåòñòâóþùèõ ñîîáùåíèé

global $errors, $err_msg;

/* if(!FIO_OK($_POST["fname"])){

$errors["fname"] = 1;

$_POST["fname"] ="";

}

if(!FIO_OK($_POST["oname"])){

$errors["oname"] = 1;

$_POST["oname"] ="";

}

if(!FIO_OK($_POST["lname"])){

$errors["lname"] = 1;

$_POST["lname"] ="";

}

*/

if(LOGIN_OK($_POST["login"])){

$errors["login"] = 1;

$_POST["login"] ="";

}

//ïðîâåðêà ñîâïàäåíèÿ ïàðîëÿ è ïîäòâåðæäåíèÿ

if(strcmp($_POST["pass"],$_POST["repass"])!=0){

$errors["error"]=1;

$_POST["repass"]="";

}

if(!$_POST["pass"]) {

$errors["pass"]=1;

$_POST["repass"]="";

}

if(!$_POST["repass"]) $errors["repass"]=1;

if(sizeof($errors)>0){

//Åñëè ñóùåñòâóþò îøèáêè, âûâîäÿòñÿ ñîîòâåòñòâóþùèå ñîîáùåíèÿ, è ôîðìà îòîáðàæàåòñÿ çàíîâî

echo "<html><body><div align='center' style='font-size: 18'><b>ÎØÈÁÊÀ</b></div>";

echo "<div align='center' style='font-size: 14, color:red'>Îáíàðóæåíû ñëåäóþùèå îøèáêè:<br>";

foreach($errors as $key=>$value){

echo "<b>".$err_msg [$key]."</b><br>";

}

echo "</div>";

ShowForm();

echo "</body></html>";

}

else {

//Åñëè îøèáêè îòñóòñòâóþò, âûâîäèòñÿ ñîîòâåòñòâóþùåå ñîîáùåíèå

echo "<h2 align='center'>Óâàæàåìûé(àÿ) ".$_POST["lname"]." ".$_POST['fname']."!</h2><br> <h3 align='center'>

Ðåãèñòðàöèÿ ïðîøëà óñïåøíî</h3>";

$_SESSION['login']=$_POST['login'];

// ðåãèñòðèðóåì ïåðåìåííóþ login

//$_SESSION['pass']=$_POST['pass'];

// ðåãèñòðèðóåì ïåðåìåííóþ pass

// òåïåðü ëîãèí è ïàðîëü - ãëîáàëüíûå