Testing Flashcards
Que es un test de software?
Es un bloque de software el cual ejecuta otro bloque de software. El test valida si el resultado retornado es el esperado o si ejecuta la secuencia de eventos esperada.
Que es el smoke testing?
Es un test de la funcionalidad básica o criticas. Se ejecuta antes de probar todos lo otros tests. La idea es identificar tempranamente que no hay errores graves y se puede iniciar las demás actividades de testing.
Que es el acceptance test?
El acceptance test determina si el sistema cumple con los requerimiento del negocio y de los usuarios finales.
Hay varias formas de pruebas de aceptación:
-Pruebas de aceptación del usuario
-Pruebas de aceptación comercial
-Pruebas alfa
-Pruebas beta
Cuales son las fases del testing?
Analisis de requerimientos ->Test de aceptación
Diseño de alto nivel -> Test de sistema (system test)
Diseño bajo nivel ->Test de integración
Coding -> Test unitario
Cuál es el objetivo de los test de sistema?
Es un tipo de testing de caja negra que se realiza para evaluar el sistema completo. En general se llevan a cabo por un equipo de testing. Incluye prueba funcionales y no funcionales. El test de sistema incluye:
Funcionalidad
Iteroperabilidad
Performance
Escalabilidad
Stress
Carla y estabilidad
Confiabilidad
Regression
Regulaciones y cumplimiento. *No se ven a fondo en esta materia.
Cuál es el objetivo de los test de integración?
Verificar el funcionamiento de todos los módulos integrados. No es funcional, sino a nivel código y módulos.
Algunos de los objetos de prueba en este nivel son: subsistemas, base de datos, interfaces, API’s, microservicios.
En estas pruebas nos debemos enfocar en la comunicación entre módulos o sistemas; por ejemplo: desajuste de la interfaz, datos incorrectos o faltantes, suposiciones incorrectas de términos o unidades de datos que se transmiten entre los sistemas.
Qué función cumplen los test unitarios?
Se prueban los módulos individuales (se prueban los métodos de una clase por ej.).
Están enfocadas en componentes que pueden ser probados de forma separada y son hechas usualmente por los programadores. Son excelentes candidatas a automatizarse y hechas de forma separada del resto del sistema. Algunos de los objetos de pruebas en este nivel son: código, estructura de datos, clases, módulo de bases de datos.
Las ventajas de hacer unit testing son:
Reducir defectos en las características recientes desarrolladas.
Reduce el costo de las pruebas ya que son detectadas tempranamente.
Mejora el diseño.
Incorporan calidad al desarrollo.
Describir el ciclo de vida de los test unitarios
Checkout code from repository
Make changes
Execute Unit test
Fix Defects and Re-execute
Code Review
Checkin code to repository
y vuelva a empezar
Qué es el black box testing?
Es un método de testing que examina las funcionalidades de una aplicación en función de las especificaciones.
Qué es State transition test (Test de transición)
Es un tipo de testing de caja negra, en las que las salidas se activan por cambios de condiciones de entrada. Las pruebas están diseñadas para ejecutar transiciones de estado validas e invalidas.
Qué es el regression testing?
Es un testing de caja negra que consiste en volver a ejecutar aquellas pruebas que se ven afectadas por los cambios de código. La idea es probar que lo que funcionaba, siga funcionando cada vez que se incorpora código o se hacen cambios.
Hay pruebas de regresión final - las pruebas antes de entregar el producto final y pruebas de regression que se ejecutan a lo largo del desarrollo para verificar que las compilaciones no rompen ninguna otra parte de la aplicación.
Explicar Test coverage vs code coverage
El code coverage es una métrica que tiene como objetivo medir el numero de lineas cubiertas por los casos de prueba. La intención es que cuanto mayor sea la cobertura de código, menor sera la posibilidad de tener errores.
El test coverage determina si los casos de prueba cubren los requisitos funcionales.