Está en la página 1de 11

Materia

Verificación & Validación de Software

Periodo
Enero/Abril 2021

Estudiantes

John Steven Valdez 2018-1078


Georgina La Lima 2020-2203
Ian Fernandez 2018-0408
Kendri Reinoso 2020-0904
Jonathan Rodriguez 2017-1009

Grupo

41041

Maestro/a

Cibeles Tavarez

Tema

Practica Final V&V

1
SISTEMA DE REGISTRO DE ESTUDIANTES DE NUEVO INGRESO UNAPEC
Este código fue realizado en Java Script
let userInfo = {
tipoDocumento: "",
numeroDocumento: "",
numeroTelefono: "",
numeroCelular: "",
email: "",
password: "",
temporalId: "",
};

////Base de datos
let db = [
{
numeroDocumento: "402-1241256-4",
tipoDocumento: "Cedula",
nombre: "John Antonio",
apellido: "Mercedes Alcantara",
fechaNacimiento: "05 de enero del 1998",
lugarNacimiento: "Hospital central",
genero: "Masculino",
estadoCivil: "Soltero",
nacionalidad: "Dominicano",
provincia: "Santo Domingo",
municipio: "Distrito nacional",
direccion: "Calle el puntico, Naco, Edificio Primavera",
numeroCasa: "A021",
},
{
numeroDocumento: "01-1241256-4",
tipoDocumento: "Pasaporte",
nombre: "Karla Antonio",
apellido: "Simpson",
fechaNacimiento: "07 de agosto del 1995",
lugarNacimiento: "Saint Lourent Hospital",
2
genero: "Femenino",
estadoCivil: "Casado",
nacionalidad: "Estadounidense",
provincia: "Santo Domingo",
municipio: "Distrito nacional",
direccion: "Calle Miramar, Bella Vista, Torre mariposa",
numeroCasa: "B502",
},
{
numeroDocumento: "122-15441254564",
tipoDocumento: "Residencia",
nombre: "Engels Antonio",
apellido: "Maduro",
fechaNacimiento: "03 de marzo del 1999",
lugarNacimiento: "Hospital MiraFlores ",
genero: "Masculino",
estadoCivil: "Soltero",
nacionalidad: "Venezolano",
provincia: "Santo Domingo",
municipio: "Santo Domingo este",
direccion: "Calle tamarindo",
numeroCasa: "234",
},
];
/////

alert("Bienvenido al sistema de registro estudiantil");

let metodoBusquedaDocumento;
this.metodoBusqueda();

function metodoBusqueda() {
metodoBusquedaDocumento = prompt(
"Que tipo de documento desea ingresar de acuerdo al numero de la lista \n 1)
Cedula\n 2)Pasaporte \n 3) Numero de residencia"
);

3
}
console.log(metodoBusquedaDocumento);
switch (metodoBusquedaDocumento) {
case "1":
if (confirm("Usted selecciono cedula")) {
busquedaPorCedula();
} else {
alert("Favor introduzca numero valido");
metodoBusqueda();
}
break;
case "2":
if (confirm("Usted selecciono pasaporte")) {
busquedaPorPasaporte();
} else {
alert("Favor introduzca numero valido");
metodoBusqueda();
}
break;
case "3":
if (confirm("Usted selecciono Numero de residencia")) {
busquedaPorResidencia();
} else {
alert("Favor introduzca numero valido");
metodoBusqueda();
}
break;
default:
alert("Favor introducir un valor de acuerdo a la lista");
this.metodoBusqueda();
}

function busquedaPorCedula() {
userInfo.numeroDocumento = prompt("Favor introduccir numero de cedula");

const search = db.find(

4
(value) => value.numeroDocumento == userInfo.numeroDocumento
);

if (search != undefined) {
Object.assign(userInfo, search);
userInfo.tipoDocumento = "Cedula";

let validarIdentidad = confirm(


`Se encontro:\n Numero de documento: ${userInfo.numeroDocumento} \n
Nombre: ${userInfo.nombre} ${userInfo.apellido} \n Nacionalidad:
${userInfo.nacionalidad} \n Fecha de nacimiento: ${userInfo.fechaNacimiento} \n
Genero: ${userInfo.genero} \n Estado civil: ${userInfo.estadoCivil} \n Residencia:
${userInfo.provincia}, ${userInfo.municipio}, ${userInfo.direccion},
${userInfo.direccion} ${userInfo.numeroCasa}\n \n Favor confirmar para continuar`
);

if (validarIdentidad) {
userInfo.numeroTelefono = prompt(
"Favor introduccir un numero residencial donde podamos contactarte"
);
userInfo.numeroCelular = prompt(
"Favor introduccir un numero movil donde podamos contactarte"
);
userInfo.email = prompt(
"Favor introducir una direccion de correo valida"
);

this.passwords();
}
} else {
alert(
"No se encontraron coincidencias con el numero de documento",
+userInfo.numeroDocumento
);
this.busquedaPorCedula();
}

5
}
function busquedaPorPasaporte() {
userInfo.numeroDocumento = prompt("Favor introduccir numero de Pasaporte");

const search = db.find(


(value) => value.numeroDocumento == userInfo.numeroDocumento
);

if (search != undefined) {
Object.assign(userInfo, search);
userInfo.tipoDocumento = "Pasaporte";

let validarIdentidad = confirm(


`Se encontro:\n Numero de documento: ${userInfo.numeroDocumento} \n
Nombre: ${userInfo.nombre} ${userInfo.apellido} \n Nacionalidad:
${userInfo.nacionalidad} \n Fecha de nacimiento: ${userInfo.fechaNacimiento} \n
Genero: ${userInfo.genero} \n Estado civil: ${userInfo.estadoCivil} \n Residencia:
${userInfo.provincia}, ${userInfo.municipio}, ${userInfo.direccion},
${userInfo.direccion} ${userInfo.numeroCasa}\n \n Favor confirmar para continuar`
);

if (validarIdentidad) {
userInfo.numeroTelefono = prompt(
"Favor introduccir un numero residencial donde podamos contactarte"
);
userInfo.numeroCelular = prompt(
"Favor introduccir un numero movil donde podamos contactarte"
);
userInfo.email = prompt(
"Favor introducir una direccion de correo valida"
);

this.passwords();
}
} else {
alert(

6
"No se encontraron coincidencias con el numero de documento",
+userInfo.numeroDocumento
);
this.busquedaPorPasaporte();
}
}
function busquedaPorResidencia() {
userInfo.numeroDocumento = prompt("Favor introduccir numero de residencia");

const search = db.find(


(value) => value.numeroDocumento == userInfo.numeroDocumento
);

if (search != undefined) {
Object.assign(userInfo, search);
userInfo.tipoDocumento = "Numero de residencia";

let validarIdentidad = confirm(


`Se encontro:\n Numero de documento: ${userInfo.numeroDocumento} \n
Nombre: ${userInfo.nombre} ${userInfo.apellido} \n Nacionalidad:
${userInfo.nacionalidad} \n Fecha de nacimiento: ${userInfo.fechaNacimiento} \n
Genero: ${userInfo.genero} \n Estado civil: ${userInfo.estadoCivil} \n Residencia:
${userInfo.provincia}, ${userInfo.municipio}, ${userInfo.direccion},
${userInfo.numeroCasa}\n \n Favor confirmar para continuar`
);

if (validarIdentidad) {
userInfo.numeroTelefono = prompt(
"Favor introduccir un numero residencial donde podamos contactarte"
);
userInfo.numeroCelular = prompt(
"Favor introduccir un numero movil donde podamos contactarte"
);
userInfo.email = prompt(
"Favor introducir una direccion de correo valida"
);

7
this.passwords();
}
} else {
alert(
"No se encontraron coincidencias con el numero de documento " +
userInfo.numeroDocumento
);
this.busquedaPorResidencia();
}
}
function passwords() {
userInfo.password = prompt(
"Su numero de matricula temporal es 2020-" +
this.ramdomId() +
"\n Favor introduccir una contraseña"
);

let confirmarPass = prompt("Vuelva a introducir la contraseña");

if (confirmarPass) {
alert(
'Su solicitud fue agregada con exito, favor verificar su correo personal (El que
introdujo anteriormente al sistema) para obtener informacion acerca de la siguiente
fase de su proceso de admision y su calendario con fechas importantes con respecto
al mismo.'
);
alert("Fin de la solicitud");
} else {
alert("Contraseñas no coinciden, intente de nuevo");
this.passwords();
}
}
function ramdomId() {
const value = Math.floor(1000 + Math.random() * 9000);
return value;

8
}

Prueba Estática
Resumen de los resultados

RESULTADO DEL SERVICIO

ACEPTADO

<Introduzca contenido y borre cuadro>


Se debe comentar por encima los resultados que luego son detallados en los siguientes apartados:
• TAMAÑO DE LA ENTREGA: Pequeño
• VERIFICACIONES DE CALIDAD GENERAL: El código se comporta de acuerdo a las especificaciones del
cliente y cumple con todos los requisitos que este pidió.
• REGLAS DE CONFORMIDAD: los resultados arrojados de la prueba han sido todos satisfactorios y
mejoraron después de la primera prueba. también pudimos notar que la única observación que dimos ,
fue mejorar la organización del código para entendimientos de terceros.
• LICENCIA EUPL: si se cumple.

Detalles de los resultados de la prueba


Tamaño de la Entrega: Normal
Verificamos que el código tuviera relación con las especificaciones impuestas. También buscamos
defecto en los patrones y miramos el código fuente para determinar si había un problema adyacente
en la fuente. para estos análisis nos apoyamos en algunas herramientas que nos facilitaron el analisis y
la busca de fallos en la seguridad. después de todo esto concluimos que el trabajo estaba listo para la
fase final, que es la entrega.

Verificaciones de Calidad General

<Versión de <Versión de
TIPOS DE VERIFICACIONES la entrega la entrega Evolución
anterior> actual>
GRADO DE COMENTARIO DE CÓDIGO 1.1.1 1.2.1 mejora

9
GRADO DE DUPLICACIÓN DE CÓDIGO 1.1.1 1.2.1 mejora

Prueba Dinámica
Primero se probó el código de manera general para comprobar que las acciones básicas que esta
supuesto a realizar, funcionan correctamente. De esto resultó que todo funcionaba debidamente con
respecto las solicitudes que realiza el programa. Luego procedimos a comprobar que el programa
funcionara de acuerdo con cada rama de ejecución de los if-elses y afortunadamente todo estaba en
orden.

Por último, se realizó una prueba un poquito más minuciosa corriendo el programa introduciendo datos
que de acuerdo con lo que pide cada fragmento, debió haber causado algún tipo de error. Por ejemplo,
en la parte en la que te solicitan que introduzcas un numero residencial, si en vez de numero ponías
letras el programa pasaba, de la misma forma en el fragmento en el que te solicitan ingresar una
dirección de correo valida, si en vez de un correo ingresas un número de teléfono el programa va a
pasar.

Luego de haber identificado y corregido estos errores, el programa empezó a funcionar de manera
correcta al 100%.

Prueba Unitaria
Probamos el código modulo por modulo para verificar que cada una de las funciones del programa
realiza su propósito correctamente.

Al comprobar el primer módulo nos damos cuenta de que cumple su propósito correctamente al
informar al usuario de que se encuentra en el sistema de registro de la Universidad APEC. Continuamos
con el segundo modulo y al ingresar los datos que solicita, pasa al siguiente modulo confirmando que
funciona de manera adecuada. En el tercer modulo se le confirma al usuario el dato ingresado en el
módulo anterior. En el siguiente modulo se le solicita al usuario que ingrese el número del documento
de identificación que selecciono anteriormente y si este es válido se le desplegará por pantalla toda la
información personal del usuario relacionada al mismo, de lo contrario el programa emitirá una alerta
informándole al usuario que no existe ninguna coincidencia con el número de identificación ingresado.
Luego de confirmar que toda la información es correcta, pasamos al siguiente modulo en el que el
programa le solicita al usuario que ingrese un numero residencial válido. Si este cumple como válido, el
programa pasa al siguiente modulo, de no ser así, se le solicitará al usuario que ingrese un número que
si sea válido. En el siguiente modulo se le solicita al usuario que ingrese un numero móvil valido, si este

10
es válido, el programa pasará al siguiente modulo, de lo contrario le solicitara al usuario que ingrese un
número que sea válido. En el siguiente modulo se le solicita al usuario que ingrese una dirección de
correo valida, y al igual que los últimos 2 módulos si la información no es válida, el programa se lo
informara al usuario. Por último, el programa emitirá una matrícula temporal y le solicitará al usuario
que ingrese una contraseña, luego le pedirá que la confirme y por último el programa emitirá una alerta
informándole al usuario que su información ha sido almacenada exitosamente y que próximamente
estará recibiendo un correo con la información relacionada con la siguiente fase del proceso de
admisión.

Al finalizar las pruebas nos damos cuenta de que cada módulo depende del anterior.

Prueba de Stress
Uno de los análisis que suelen integrar cualquier plan de QA es la prueba de stress. Esta evaluación pone
a prueba la robustez y la confiabilidad del software sometiéndolo a condiciones de uso extremas. Entre
estas condiciones se incluyen el envío excesivo de peticiones y la ejecución en condiciones de hardware
limitadas. El objetivo es saturar el programa hasta un punto de quiebre donde aparezcan bugs (defectos)
potencialmente peligrosos.

11

También podría gustarte