на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Тестирование информационных систем
ринцип «черного ящика» не альтернативен принципу «белого ящика». Скорее это дополняющий подход, который обнаруживает другой класс ошибок.

Тестирование «черного ящика» обеспечивает поиск следующих категорий ошибок:

· Некорректных или отсутствующих функций;

· Ошибок интерфейса;

· Ошибок во внешних структурах данных или в доступе к внешней базе данных;

· Ошибок характеристик (необходимая емкость памяти и т.д.);

· Ошибок инициализации и завершения.

Подобные категории ошибок способами «белого ящика» не выявляются.

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

Техника «черного ящика» ориентирована на решение следующих задач:

· Сокращение необходимого количества тестовых вариантов (из-за проверки не статистических, а динамических аспектов системы);

· Выявление классов ошибок, а не отдельных ошибок.

Способ разбиения по эквивалентности.

Разбиение по эквивалентности - самый популярный способ тестирования «черного ящика».

В этом способе входная область данных программы делится на классы эквивалентности. Для каждого класса эквивалентности разрабатывается один тестовый вариант.

Класс эквивалентности - набор данных с общими свойствами. Обрабатывая разные элементы класса, программа должна вести себя одинаково. Иначе говоря, при обработке любого набора из класса эквивалентности в программе задействуется один и тот же набор операторов (и связей между ними).

Классы эквивалентности могут быть определены по спецификации на программу.

Класс эквивалентности включает множество значений данных, допустимых или недопустимых по условиям ввода.

Условие ввода может задавать;

· Определенное значение.

· Диапазон значений.

· Множество конкретных величин.

· Булево условие.

Сформулируем правила формирования классов эквивалентности.

1. если условие ввода задает диапазон n…m, то определяется один допустимый и два недопустимых класса эквивалентности.

2. если условие ввода задает конкретное значение a, то определяется один допустимый и два недопустимых класса эквивалентности.

3. если условие ввода задает множество значений {a,b,c}, то определяется один допустимый и один недопустимый класс эквивалентности.

4. если условие ввода задает булево значение, например true,то определяется один допустимый и один недопустимый класс эквивалентности.

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

Тестовый вариант выбирается так, чтобы проверить сразу наибольшее количество свойств класса эквивалентности.

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

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

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

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

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

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

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("^[А-Яа-я\' -]{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("/^\w+([\.\w]+)*\w@\w((\.\w)*\w+)*\.\w{2,3}$/",$str);

}

//Функция для проверки телефона

function telefon_OK($str){

return preg_match("/\d{3}-\d{2}-\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

// теперь логин и пароль - глобальные

// переменные для этой сессии

echo "<center><a href =main_form.php>OK</a></center>";

//вносим данные в базу

$conn=mysql_connect("localhost","root");// устанавливаем соединение

$database = "users";

$table_name = "pass";

mysql_select_db($database); // выбираем базу данных

//проверка уникальности псевдонима

$list_f = mysql_list_fields($database,$table_name);// получаем список полей в базе

$n = mysql_num_fields($list_f); // число строк в результате предыдущего запроса

// составим один запрос сразу для всех полей таблицы

$sql = "INSERT INTO $table_name SET "; // начинаем создавать запрос, перебираем все поля таблицы

for($i=0;$i<$n; $i++){

$name_f = mysql_field_name ($list_f,$i); // вычисляем имя поля

$value = $_POST[$name_f]; // вычисляем значение поля

$j = $i + 1;

$sql = $sql . $name_f." = '$value'"; // дописываем в строку $sql пару имя=значение

if ($j <> $n) $sql = $sql . ", "; // если поле не последнее в списке, то ставим запятую

}

// перед тем как записывать что-то в базу,

// можно посмотреть, какой запрос получился

//echo $sql;

$result = mysql_query($sql,$conn); // отправляем запрос выводим сообщение успешно ли выполнен запрос

if (!$result) echo "Can't add ".$table_name;

Страницы: 1, 2, 3, 4, 5, 6



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.