Download - Documentación de pruebas del software
Software de liquidación contractual
~ 1 ~
Documentación de pruebas del software
Liconsoft
Yenny Paola Aldana Daniela Martínez
Jonathan Rivera Lina Paola Vega
Brandon Steven Vargas
Software de liquidación contractual
~ 2 ~
TABLA DE CONTENIDO:
INTRODUCCIÓN
TEORÍA DE PRUEBAS
ELECCÍON TIPO DE PRUEBA
PRUEBAS
1. Modulo 1(inicio de sesión)
2. Modulo 2(registro)
3. Modulo3(operaciones)
4. Modulo4 (configuraciones)
Nuevo usuario
Actualizar usuario
Eliminar usuario
Realizar actualizaciones de valores anuales
Software de liquidación contractual
~ 3 ~
Introducción:
Software de liquidación contractual
~ 4 ~
Pruebas:
“Una actividad en la cual un sistema o uno de sus componentes se ejecuta en circunstancias previamente especificadas los resultados se observan y registran y se realiza una evaluación de algún aspecto”
Existen tres enfoques principales para el diseño de casos:
1.- El enfoque estructural o de caja blanca. Se centra en la estructura
interna del programa (analiza los caminos de ejecución).
2.- El enfoque funcional o de caja negra. Se centra en las funciones,
entradas y salidas.
3.- El enfoque aleatorio consiste en utilizar modelos (en muchas ocasiones
estadísticos) que representen las posibles entradas al programa para crear a
partir de ellos los casos de prueba
Software de liquidación contractual
~ 5 ~
Tipo de prueba elegida:
La prueba que hemos elegido aplicar a este proyecto ha sido la prueba de
funcionalidad, debido a que es necesario evaluar los módulos del sistemas
con distintos valores de entrada, con los que se podrá plantear distintos
escenarios, en los cuales se podrá determinar las fallas y errores del
sistema, huecos que más adelante podrían interferir en el buen desarrollo
de las actividades propuestas para que cumpla el software.
Pruebas:
Modulo1 (Inicio de sesión)
Este primer modulo tiene una gran importancia en lo que significa la
seguridad del software como tal pues su posibles debilidades permitirían
la infiltración de personas no pertenecientes a la entidad, que maneje el
software. Por tanto se realizaron ciertas pruebas, productos de la
ejecución del programa, y se encontró las siguientes fallas, y sus
respectivos arreglos:
1. Pantalla intermedia: En el software, se tenía una pantalla
intermedia, la cual decía que el software se encontraba cargando,
Software de liquidación contractual
~ 6 ~
esto se cambío debido a que representaba un hueco en el sistema,
por tanto peligroso.
2. Retroceso: Cuando al software se le presiona muchas veces el botón
de “atrás” el navegador comienza a dirigirse por historial hacia las
páginas vistas, presentando un hueco de seguridad , puesto que si
se sale del sistema, y se emplea esta técnica se puede llegar a la
página principal del software sin ser autorizado.
Por tanto debió usarse el siguiente código correctivo, usando
sesión.
?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','')or die ('Ha fallado la
conexión: '.mysql_error());
mysql_select_db('Liconsoft')or die ('Error al seleccionar la Base de
Datos: '.mysql_error());
function quitar($mensaje)
{
Software de liquidación contractual
~ 7 ~
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["Usuario"]) != "" &&
trim($HTTP_POST_VARS["Contrasena"]) != "")
{
//Puedes convertir los a su entidad HTML aplicable con
htmlentities
$Usuario =
strtolower(htmlentities($HTTP_POST_VARS["Usuario"],
ENT_QUOTES));
$Contrasena = $HTTP_POST_VARS["Contrasena"];
$result = mysql_query('SELECT Contrasena, Usuario FROM
Usuarios WHERE Usuario=\''.$Usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["Contrasena"] == $Contrasena)
{
$_SESSION["k_username"] = $row['Usuario'];
}
else
{
echo "<font face='Lucida Calligraphy' color='red' size='+2'><a
href='../Index.php'>Password incorrecto</a></font>";
}
}else{
Software de liquidación contractual
~ 8 ~
echo "<font face='Lucida Calligraphy' color='red' size='+2'><a
href='../Index.php'>Usuario no existente en la base de
datos</a></font>";
}
mysql_free_result($result);
}
else
{
echo "<font face='Lucida Calligraphy' color='red' size='+2'><a
href='../Index.php'>Debe especificar un usuario y
contraseña</a></font>";
}
mysql_close();
?>
3. Contraseñas: Fue un inconveniente las contraseñas que eran 0 es
decir 0000 o 00, puesto que se toma el numero cero como cero sin
importar las veces que se repita.
Modulo2 (registro)
Este modulo es el encargado de realizar la labor de almacenamiento de los
datos de los contratos con sus respectivos datos personales por lo cual se
encontró los siguientes fallos:
1. Una columna; el programa leía una columna de manera incorrecta,
debido a que existía una coma mal puesta
<?php
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','root','')or die ('Ha fallado la
conexión: '.mysql_error());
Software de liquidación contractual
~ 9 ~
mysql_select_db('Liconsoft')or die ('Error al seleccionar la
Base de Datos: '.mysql_error());
// Hay campos en blanco
if($Poliza == NULL|$TipoID == NULL|$NumDocumento ==
NULL|$Nombres == NULL|$Apellidos == NULL|$Genero ==
NULL|$RH == NULL|$Profesion == NULL|$Localidad ==
NULL|$Direccion == NULL|$Estrato == NULL|$Telefono ==
NULL|$Celular == NULL|$Banco == NULL|$TipoCuenta ==
NULL|$NumCuenta == NULL|$Correo == NULL)
{
echo "<center><font color='red' face='Lucida
Calligraphy' size='+2'>Alguno de los campos ingresados esta vacio.
Por Favor Rectifique
<a
href='Registro_Datos_Personales.php'>Regresar</a></font></cente
r>";
}
else
{
// Comprobamos si el documento ya existe
$checkdocumento = mysql_query('SELECT
NumDocumento FROM Datos_Personales_1 WHERE
NumDocumento=\''.$NumDocumento.'\'');
$NumDocumento_exist =
mysql_num_rows($checkdocumento);
}
if ($NumDocumento_exist>0)
{
Software de liquidación contractual
~ 10 ~
echo "<center><font color='red'>El Numero de
documento ya esta almacenado en la base de datos. NO es posible
realizar esta operacion</font></center>";
}
else
{
$query = 'INSERT INTO Datos_Personales_1 (Poliza,
TipoID, NumDocumento, Nombres, Apellidos, Genero, RH,
Profesion, Localidad, Direccion, Estrato, Telefono, Celular, Banco,
TipoCuenta, NumCuenta, Correo)
VALUES (\''.$Poliza.'\', \''.$TipoID.'\',
\''.$NumDocumento.'\', \''.$Nombres.'\', \''.$Apellidos.'\',
\''.$Genero.'\', \''.$RH.'\', \''.$Profesion.'\', \''.$Localidad.'\',
\''.$Direccion.'\', \''.$Estrato.'\', \''.$Telefono.'\', \''.$Celular.'\',
\''.$Banco.'\', \''.$TipoCuenta.'\', \''.$NumCuenta.'\', \''.$Correo.'\')';
mysql_query($query) or die(mysql_error());
echo "<center><font face='Lucida Calligraphy'
color='red' size='+2'>Datos Guardados</font></center>";
}
?>
2. Ingreso fecha: Debido a inconvenientes con la forma de ingreso de
las fechas se ha decidido colocar máscaras a los cuadros de textos
que posean este tipo de información.
<script type="text/javascript">
var patron = new Array(2,2,4)
Software de liquidación contractual
~ 11 ~
var patron2 = new Array(1,3,3,3,3)
function mascara(d,sep,pat,nums){
if(d.valant != d.value){
val = d.value
largo = val.length
val = val.split(sep)
val2 = ''
for(r=0;r<val.length;r++){
val2 += val[r]
}
if(nums){
for(z=0;z<val2.length;z++){
if(isNaN(val2.charAt(z))){
letra = new RegExp(val2.charAt(z),"g")
val2 = val2.replace(letra,"")
}
}
}
val = ''
val3 = new Array()
for(s=0; s<pat.length; s++){
val3[s] = val2.substring(0,pat[s])
val2 = val2.substr(pat[s])
}
for(q=0;q<val3.length; q++){
if(q ==0){
val = val3[q]
}
else{
if(val3[q] != ""){
val += sep + val3[q]
}
Software de liquidación contractual
~ 12 ~
}
}
d.value = val
d.valant = val
}
}
</script>
center><h1>Fecha de Aprobacion de<br/>la Poliza</h1></center>
<form method="POST" action="Registro_Personales.php">
<font face="Arial, Helvetica, sans-serif" size="4">
<center><input type="text" name="Poliza" class="nosel" value=""
size="10" onkeyup="mascara(this,'/',patron,true)"
maxlength="10"/></center>
3. Algunos campos en los que se puede colocar un dato repetitivo,
para evitar equivocaciones se ha colocado un desplegable de
opciones a elegir.
<select name="TipoID">
Software de liquidación contractual
~ 13 ~
<option value='CC'>CC</option>
<option value='CE'>CE</option>
</select>
4. Se podía ingresar en algunos campos valores no permitidos en el
sistema, y eran almacenados sin importar que representara un
problema de fidelidad de información.
Modulo3 (operaciones)
1. Al realizar una de las primeras operaciones, este cálculo no era
redondeado, presentando un inconveniente en cuanto a los demás
cálculos que requieren de un valor entero
Por ello se utilizó el
Echo round($variable);
Modulo4 (configuraciones)
Nuevo usuario:
Software de liquidación contractual
~ 14 ~
1. En esta opción, el sistema admite varias clases de tipos de
datos en sus cajas de texto, por ejemplo, en el nombre es
posible introducir números, caracteres especiales especiales,
etc.
Modulo5 (cerrar sesión)
1. Debido a ciertos inconvenientes con el cierre de sesión en los
controles del lado, se ha decidido suprimir esta opción de este
menú y trasladarlo hacia la parte de arriba en la cual podrá ejercer
una mejor función.
Ahora
<table align='center' border='1' color='black' width='80%'
height='20%'>
<tr>
<td>
&nb
sp;
Software de liquidación contractual
~ 15 ~
&nb
sp;
<img
src='../Img/Liconsoft.gif' height='100%' border='0' alt='Liconsoft
Inicio'/>
&nb
sp;
&nb
sp;
&nb
sp;
<a
href='Cerrar_Sesion.php'><strong>Cerrar Sesion</strong></a>
</td>
Conclusiones:
Durante el proceso de elaboración del aplicativo se han podido detectar
varias fallas y sus respectivos arreglos han sido implementados, sin
embargo la mayor etapa de pruebas se presentará en el momento que se
decida pedir al cliente, realice la prueba del aplicativo, e indique los
inconvenientes que tenga con el manejo del sistema.