Clase 1

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 50

Ing.

Félix Gerardo Díaz


CONTENIDO DE CURSO
 Clases sincrónicas y asincrónicas.
 Clases de repaso.
 Asistencia.
 Foro de consultas.
 Presentación.
 Cuestionario de cada clase.
 Grupos de 5 integrantes.
 Examen final.
 Trabajo práctico integrador.
CLASE 1
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
¿Qué es el testing?
UN POCO DE HISTORIA
La ingeniería de software nace como producto de la crisis del
software en las décadas de 1960, 1970 y 1980, cuando se
identificaron los problemas que llevaron el software al fracaso
como por ejemplo: 
• El sobrecosto.
• La sobrestimación de tiempo.
• La baja calidad, causando daños a la propiedad, y en
ocasiones, pérdidas de vidas humanas.
ALGUNOS PROYECTOS FALLIDOS
Accidentes aéreos: en abril de 1986, un avión de combate modelo F - 18
ejecutando una prueba de maniobras tuvo un giro descontrolado, producto de
una falla en el código en una sentencia “If then”, la cual no tenía un control de
falla “else”.

Sistemas bancarios: en 1988, el banco llamado Bank of América invirtió 23


millones de dólares en un software, llamado MasterNet, que debía hacer la
contabilidad y reportes de fideicomisos, pero para que el software saliera a
producción, se invirtieron 60 millones de dólares más, generando un
sobrecosto altísimo, finalmente el banco canceló este proyecto.
DEFINICIÓN DE TESTING

“Es la verificación dinámica de la adecuación


del sistema a los requerimientos”.
DEFINICIÓN DE TESTING

“Testing es el infinito proceso de comparar


lo invisible con lo ambiguo”

Por James Bach


DEFINICIÓN DE TESTING

“El testing es una forma efectiva de mostrar


la presencia de errores pero es una forma inadecuada
de mostrar la ausencia de los mismos.”

Por Dijkstra
DEFINICIÓN DE TESTING
El Testing de Software es toda una disciplina en la ingeniería de
software permite tener procesos, métodos de trabajo y
herramientas para identificar defectos en el software alcanzando
un proceso de estabilidad del mismo.

El Testing no es una actividad que se piensa al final del desarrollo


del software, va paralelo a este. Permite que lo que se está
construyendo, se realice de manera correcta de acuerdo a lo que
necesita un usuario final.
DEFINICIÓN DE TESTING
Se tenía la equivocada idea que el testing se realizaba al final,
cuando ya el software estaba codificado y justo antes de
entregarlo a la operación, pero actualmente el testing de software
debe ir desde el inicio del proceso.
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
¿ QUE ENTIENDEN POR
VERIFICACIÓN Y VALIDACIÓN?
VERIFICACIÓN Y VALIDACIÓN (V&V)
Conjunto de procesos de comprobación y análisis que aseguran
que el software que se desarrolla está acorde a su especificación
y cumple las necesidades de los clientes.
VERIFICACIÓN
¿Estamos construyendo el producto correctamente?
Se comprueba que el software cumple los requisitos funcionales
y no funcionales de su especificación.

VALIDACIÓN
¿Estamos construyendo el producto correcto?
Comprueba que el software cumple las expectativas que el
cliente espera

Importante: Nunca se va a poder demostrar que el software está


completamente libre de defectos
EL PROCESO DE V & V
Es el proceso de todo un ciclo vital: La V & V debe aplicarse en
cada etapa del software.

Tiene dos objetivos principales:


• El descubrimiento de defectos en el sistema.
• La evaluación de si el sistema es útil y utilizable en una situación
operacional o no.
VERIFICACIÓN Y VALIDACIÓN (V&V)
Es importante llevar a cabo la validación de los requerimientos
del sistema de forma inicial. Es fácil cometer errores y omisiones
durante la fase de análisis de requerimientos del sistema y, en
tales casos, el software final no cumplirá la expectativas de los
clientes. Sin embargo, en la realidad, la validación de los
requerimientos no puede descubrir todos los problemas que
presenta la aplicación. Algunos defectos en los requerimientos
solo pueden descubrirse cuando la implementación del sistema
es completa.
VALIDACIÓN
• La validación de requerimientos trata de mostrar que éstos
realmente definen el sistema que el cliente desea.

• Coincide parcialmente con el análisis ya que este implica


encontrar problemas con los requerimientos

• La validación de los requerimientos es importante porque los


errores en el documento de requerimientos pueden conducir
a importantes costos al repetir el trabajo cuando son
descubiertos durante el desarrollo o después que el sistema
esté en uso
VALIDACIÓN
VALIDACIÓN DE REQUERIMIENTOS
VERIFICACIÓN
• La revisión de requerimientos es una actividad manual que
involucra a personas tanto de la organización del cliente como el
equipo de desarrollo del sistema

• El documento de los requerimientos se verifica para encontrar


anomalía y omisiones

• Las revisiones de requerimientos pueden ser informales o


formales
VERIFICAR LOS REQUERIMIENTOS
“REUNIÓN FORMAL DE REVISIÓN”
TÉCNICAS PARA LA VERIFICAR LOS REQUERIMIENTOS
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
¿Cuándo un producto es de calidad?
CALIDAD DE SOFTWARE
La Calidad del software, por definición, ese el grado en que
un sistema, componente o proceso, cumple con los requisitos
especificados y satisface las necesidades del usuario o
cliente.

“Concordancia del software producido con los


requerimientos explícitamente establecidos, con los
estándares de desarrollo prefijados y con los requerimientos
implícitos no establecidos formalmente, que desea el
usuario”.
(Pressman, 1998).
¿CÓMO SE LOGRA LA
CALIDAD DE SOFTWARE?
1) Aplicación de metodologías de ingeniería de software para
conseguir una especificación y un diseño de alta calidad. 
2) Realización de revisiones técnicas formales. 
3) Prueba del software. 
4) Ajuste a los estándares de la organización. 
5) Control de cambios y modificaciones (mantenimiento). 
6) Mediciones. 
7) Registro e informes
CALIDAD DE SOFTWARE
Por lo tanto, no podemos afirmar que un software es de alta
calidad cuando cumple con los requerimientos del usuario, si:

• No es eficiente al utilizar los recursos de la máquina


(programas muy lentos).
• No es confiable; los resultados que entrega varían, no son
siempre iguales al procesar los mismos datos. 
• No es fácil de utilizar. 
• No es seguro. 
• No es fácil hacerle mantenimiento.
CONCLUSIÓN
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
DIFERENCIA ENTRE Q/A Y Q/C
Mucha gente piensa que QA y QC son iguales e
intercambiables, pero esto no es cierto. Ambos están
estrechamente vinculados y, a veces, es muy difícil identificar
las diferencias. El hecho es que ambos están relacionados entre
sí, pero tienen diferentes orígenes. QA y QC son parte de la
Gestión de la Calidad, sin embargo, QA se centra en prevenir el
defecto, mientras que QC se centra en identificar el defecto.
Seguro de calidad Control de calidad
QA significa Planificación para realizar un QC Significa Acción para ejecutar el proceso
proceso. planificado.
Es un proceso que delibera en brindar QC es un proceso que delibera sobre el
garantía de que se logrará la solicitud de cumplimiento de la solicitud de calidad.
calidad.

Un objetivo de QA es prevenir el defecto. Un objetivo de QC es identificar y mejorar


los defectos.
QA es la técnica de gestión de la calidad. QC es un método para verificar la calidad.
El control de calidad no implica la ejecución El control de calidad siempre implica la
del programa. ejecución del programa.
Todos los miembros del equipo son El equipo de prueba es responsable del
responsables del control de calidad. control de calidad.
Ejemplo de control de calidad: verificación Ejemplo de control de calidad: validación.

La técnica estadística utilizada en QA se La técnica estadística utilizada en QC se


conoce como control de proceso estadístico conoce como control de calidad estadístico
(SPC). (SPC).

QA se asegura de que esté haciendo lo QC se asegura de que los resultados de lo


correcto. que ha hecho sean los que esperaba.
QA Define estándares y metodologías a QC asegura que se sigan los estándares
seguir para cumplir con los requisitos del mientras se trabaja en el producto.
cliente.

QA es el proceso para crear los entregables. QC es el proceso para verificar los


entregables.
QA es responsable del ciclo de vida QC es responsable de ciclo de vida de las
completo del desarrollo de software. pruebas de software.
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
DEBUGGING/DEPURACIÓN
La depuración de programas es el proceso de identificar y
corregir errores de programación. Es conocido también por el
término inglés debugging, cuyo significado es eliminación de
bugs.
¿Cómo funciona el proceso de debugging?

En el proceso de debugging o depuración, un programa se


ejecuta paso a paso, verificando qué elementos pueden
representar un problema, lo que le permite al programador
reconocer en qué parte del código existe un error. De igual
manera, al utilizar un depurador, es posible establecer algunas
indicaciones para que se revise el código a partir de un punto
específico.
DEBUGGING/DEPURACIÓN
Estos son los pasos que sigue una herramienta de debugging
para encontrar los problemas en el código de una aplicación o
programa:

•Analizar línea por línea el código fuente de un programa.


•Revisar la asignación de variables y determinar posibles cambios en ella.
•Interrumpir la ejecución de un programa cuando se cumplen un
determinado tipo de parámetros o condiciones.
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
INDEPENDENCIA DE LAS PRUEBAS
“Muchas veces las pruebas se perciben como una actividad “destructiva”, pero
esa concepción es errónea ya que por el contrario las pruebas constituyen una
actividad constructiva. Su propósito es la eliminación de la mayor cantidad de
defecto y fallas en pos de generar la entrega de un producto, en nuestro caso
de software, con mejor calidad.”
INDEPENDENCIA DE LAS PRUEBAS
White-box (caja blanca)
Si para diseñar las pruebas nos basamos en información interna
del sistema que estamos probando, tal como el código,
esquema de base de datos, etc., entonces se dice que estamos
siguiendo una estrategia de caja blanca. Lo más común es basar
el diseño en el código fuente para lograr determinados niveles
de cobertura. Para figurar esto, podemos decir que el más
simple de estos niveles implicaría intentar cubrir todas las líneas
de código.
INDEPENDENCIA DE LAS PRUEBAS
Black-box (caja negra)
Contrariamente a caja blanca, la expresión “caja negra” intenta
figurar que el sistema es una caja cuyo interior no puede ser
observado desde afuera. En este modo de trabajo, nos basamos
únicamente en la observación de entradas y salidas del sistema.
Esto puede ser a nivel de sistema, unidad, componente, API, etc.
Podríamos decir que con caja blanca nos preocupamos por lo
que pasa dentro de la caja y con caja negra nos preocupamos
por lo que pasa fuera de ella.
INDEPENDENCIA DE LAS PRUEBAS
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
7 PRINCIPIOS DEL TESTING
1. La ejecución de pruebas demuestra la presencia de defectos
El testing nos permite demostrar la existencia de incidentes en un producto,
no su ausencia.

2. El testing exhaustivo no es posible


Exceptuando casos puntuales, probar cada combinación posible de datos y
acciones en todas las funcionalidades de un software generalmente no es
una opción viable, ya sea por cuestiones de tiempo, costos o recursos.

3. Pruebas tempranas
Cuando el proceso de testing comienza en las etapas más tempranas del
desarrollo de software, esta alianza resulta extremadamente beneficiosa,
pues permite detectar incidentes en los albores del producto.
7 PRINCIPIOS DEL TESTING
4. Agrupación de defectos
Generalmente, hay ciertos módulos y funcionalidades que son más
proclives a presentar incidencias (de mayor prioridad) en comparación al
resto de las partes que conforman un producto. 

5. Paradoja del pesticida


Ejecutar los mismos tests en una misma parte estable de un sistema
repetidas veces es una práctica que tiende a dificultar la detección de
nuevos incidentes que aún no han sido descubiertos.

6. El testing depende del contexto


La estrategia y el tipo de pruebas serán seleccionados en función del
sistema y a los entornos que se pretenden verificar. Por ejemplo, un
software médico no será probado de la misma forma que un sistema de e-
commerce.
7 PRINCIPIOS DEL TESTING
7. Falacia de ausencia de incidentes
Supongamos que todos los incidentes detectados en un sistema dado son
corregidos. A continuación, se realiza un nuevo ciclo de pruebas, tras el cual
no se detecta la presencia de nuevos incidentes.

La ausencia de nuevos errores detectados no implica necesariamente que el


software sea útil, ya que la utilidad del mismo no es indicada por este
parámetro, sino por la satisfacción de las expectativas del cliente que el
producto pueda brindar.
CONTENIDO
 Definiciones de testing.
 Diferencia entre Validación y Verificación.
 Definiciones de calidad.
 Diferencia entre QA, QC y Testing.
 Debugging.
 Independencia de las pruebas.
 Principio de las pruebas.
CASO DE ESTUDIO
1. Completar el cuestionario que se encuentra en la plataforma.
2. Definir con sus palabras que entiende por Testing.
3. ¿Para usted cuando un producto de software es de Excelente calidad,
Buena Calidad y Baja Calidad?
4. Nombrar 10 propiedades de un producto de software, que usted crea
que sean importante para que el mismo sea de Excelente calidad.

También podría gustarte