Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
para qué?
0 COMENTARIOS
SUSCRÍBETE A GENBETA
SUSCRIBIR
Síguenos
Youtube
Telegram
RSS
Flipboard
LinkedIn
TE RECOMENDAMOS
La Unión Europea aprueba la nueva Ley de Copyright: cómo te afecta y por qué es
importante
Un error de código causa que Subaru tenga que destruir casi 300 vehículos por no tener
arreglo
Tras una larga polémica los términos 'Maestro' y 'Esclavo' ya no se usarán más en Python
Compartir
JUAN QUIJANO
DevOps y la herencia de la
automatización
La llegada de las metodologías Agiles, desde los años 90 del siglo
pasado, fue un revulsivo en la organización y ejecución de
pruebas dentro de procesos Waterfall.
La importancia que han ido ganando las pruebas ha sido tal que la
propia forma de codificar el software también ha sufrido cambios
profundos. El nacimiento de TDD (desarrollo orientado a las
pruebas) y su forma de supeditar el código a los test, implica que
hacer software testeable es un requisito imprescindible en el
código de calidad.
Además factores como el uso de software de terceros desde aplicaciones móviles han añadido
niveles adicionales de complejidad y por ende incrementado los posibles puntos de fallas.
En la literatura existen diversas clasificaciones de los tipos de pruebas de software, por ejemplo
pruebas funcionales, pruebas de sistemas, pruebas no funcionales, pruebas de caja negra,
pruebas de caja blanca, entre otros.
Otro aspecto a considerar es el auge que están teniendo las aplicaciones para dispositivos
móviles, lo cual abre toda una nueva gama de pruebas que debemos considerar en los planes
de pruebas.
Una clasificación clásica para las pruebas de Software las divide en pruebas de caja negra y
pruebas de caja blanca. A continuación te compartimos un artículo sobre el tema:
Aquí te compartimos recursos para presentar tu hoja de vida y también sobre las certificaciones
ISTQB:
Elaborar los casos de uso o historias de usuario si estamos bajo metodología Agile
o Plantilla de casos de uso.
o Plantilla de historias de usuario.
Hoy en día es indispensable contar con un Plan de Pruebas de Software para especificar
minuciosamente las funciones a probar, como serán ejecutadas esas pruebas, quienes serán
los responsables y el cronograma para su ejecución.
Es por ello que esta plantilla de Matriz RACI puede ser de utilidad.
Especifica el área Funcional sujeta de pruebas, funcionalidad que se está probando, datos y
acciones de entrada, resultados esperados (salidas), requerimientos específicos del
ambiente de pruebas o de procedimiento, así como información para el seguimiento como el
estatus actual.
En esta se identifican y se definen planes de respuesta para los riesgos que puedan
encontrarse durante el ciclo de pruebas.
Los servicios web se han convertido en componentes que deben incorporarse sin excepción en
todo de desarrollo de software empresarial, por lo cual se hace también importante desarrollar
pruebas especificas para asegurar la calidad con pruebas funcionales, de carga y seguirdad.
La Automatización de pruebas de software.
Se ha venido convirtiendo cada vez más en una necesidad imperiosa, antes las demandas de
los clientes de ejecutar desarrollos cada vez más iterativos y rápidos. Aquí algunos recursos de
utilidad:
Una vez comienza la ejecución de las pruebas del software, debe tomarse nota de los
defectos y gestionar su corrección. Esto se realiza por medio de la Gestión de defectos.
Al hacer seguimiento de los defectos, es importante tomar en cuenta todos los posibles
casos emergentes cuando se estén realizando correcciones, pues podrían surgir nuevos
errores, o el mismo error podría no ser corregido para todas las entradas posibles de datos. La
no identificación de errores que todavía persisten es la falla más frecuente que se observa
en los sistemas de seguimiento de incidencias.
Son importantes para documentar que salió bien y que no tan bien, para aprender, replicar las
buenas situaciones o evitar las malas en el futuro.
Muchas empresas se están volcando al internet móvil desde aplicaciones para celular en busca
de nuevas oportunidades. El desarrollo de aplicaciones para celular supone nuevos retos, tanto
en el área técnica como en el aseguramiento de calidad de software.
Frente a este reto que supone la complejidad del Software Testing hoy en día, se necesita una
metodología para las Pruebas de calidad de software estructurada y comprendida tanto por
desarrolladores como ingenieros de pruebas.
Es una práctica de pruebas de software que sigue los principios del desarrollo ágil de
software. El rol del tester es el de un experto multifuncional, garante que se entregue el
valor de negocio deseado por el cliente a un ritmo sostenible y continuo.
Pruebas de software Agile: Planificar con los 4 cuadrantes del Agile Testing (1era
parte):
Para aplicar el Agile Testing, se hace necesario contar con un marco de referencia para
planificar las pruebas, esto es precisamente lo que nos suministrar los 4 cuadrantes del Agile
Testing.
Pruebas de software Agile: Planificar con los 4 cuadrantes del Agile Testing (2da
parte):
Consejos y recomendaciones sobre cómo usar los 4 cuadrantes para definir el enfoque y plan
de pruebas de software agile.
1. Prueba unitaria
Empecemos con el primero y más pequeño de todos – prueba unitaria.
La prueba unitaria se aplica en el elemento más pequeño de un sistema,
cada componente es testeado para asegurar que funciona
correctamente. Normalmente desarrolla una única función cohesiva. La
función de la prueba unitaria es de analizar cada pequeña parte y testear
que funciona correctamente.
La prueba unitaria se usa mayormente por desarrolladores ágil,
especialmente en programadores extremos, los amantes del TDD. Sin
embargo las pruebas unitarias son más populares hoy en dia y otros
desarrolladores están empezando a utilizarlo.
2. Pruebas de integración
La prueba de integración es una extensión lógica de las pruebas
unitarias. Dos unidades que ya han sido testeadas y combinadas en un
componente y su interface son testeadas entre ellas. Un componente, en
este ejemplo, se refiere a un agregado que está integrado en más de una
unidad, estas son combinadas en componentes, que son agregadas por
orden en partes mas grandes del programa. El motivo de las pruebas de
integración es de verificar la funcionalidad y la seguridad entre los
componentes que han sido integrados. Identifica los problemas que
ocurren cuando las unidades se combinan. Esto es particularmente
beneficioso porque determina cómo de eficientes son los tests trabajando
juntos. Recuerda que no importanta como de eficiente cada test funcione,
si no están propiamente integrados. Afecta a la funcionalidad del
programa de software. Además, es importante conocer que las pruebas
de integración están basados en pruebas unitarias con base de datos u
otra biblioteca ajena de terceras partes.
Herramientas de pruebas de integración: Mocha, Jasmine, Jest y Ava
3. Pruebas funcionales
Las pruebas funcionales se basan en asegurarse de que todas las
características funcionen de cabo a rabo. Por ejemplo, testear que las
características de un usuario se actualicen cuando el usuario clicka en el
botón de guardar. Las pruebas funcionales testean una pequeña parte de
la funcionalidad del sistema entera. Se aplica para verificar que las
aplicaciones y funcionalidades del software actuan correctamente acorde
a un diseño específico.
Como <type of user>, quiero <some goal> para que <some reason>
Por ejemplo,
4. Pruebas de rendimiento
Y la última es la prueba de rendimiento. En el desarrollo de software, la
prueba de rendimiento es una práctica de test que determina la actuación
de un sistema en términos de respuesta y estabilidad en una carga de
trabajo en particular. También puede servir para investigar, medir, validar
o verificar otros atributos de calidad del sistema, como la escalabilidad,
seguridad y uso de recursos.
Puede servir para verificar que una plataforma de software presenta las
especificaciones del product owner. Este test muestra como eficiente es
un software. Chequea como de bien un software trabaja bajo una carga
máxima de trabajo. Hay varias variaciones o subtipos de pruebas de
rendimiento como tests de carga, test de estrés, test de volumen y
muchas otras más. Estos métodos de tests de aseguran de que lo que se
ha hecho, se ha realizado correctamente, teniendo en cuenta las
diferentes circunstancias que pueden aparecer en el futuro.
La Importancia que tienen las pruebas del software de calidad del mismoson de gran utilidad
para ver las fallas que presenta el sistema y poderanalizar las futuras fallas además de esto
también sirven para quecuando entreguemos nuestro software ya nalizado este software
esteculminado tenga altos estándares de calidad y esté listo para entregar!"ara la prueba del
software e#isten unos modelos que son de sumaimportancia para realizar las pruebas de dic$o
software estos modelostienen varios esquemas que son los que se le realizan al software
comolo son%&' (odelo )ascada% el cual permite *ealizar pruebas cuando estáterminado la
construcci+n del sistema!,' (odelo Incremental% con este modelo se realizan pruebas a
cadaetapa o incremento que $aiga en el sistema!-' (odelo .volutivo% este se enfoca en el uso y
retroalimentaci+n de losusuarios!/' (odelo .spiral% este modelo se enfoca en las pruebas
c0clicas deveri caci+n y validaci+n en el desarrollo del sistema!1' (odelo 2"% .ste modelo se
realiza la prueba durante las me3oras quese le $acen al sistema!"or esta raz+n es
recomendable dividir el software por etapas y alrealizar alguna etapa de una vez $acer las
pruebas para de una vezme3orar si $ay algo malo y no acumular las pruebas para el nal
cuandoes más dif0cil identi car en que parte del software se está presentandoel
inconveniente para poder entregar el software con una alta calidad"or esto y por muc$as
razones es de suma importancia realizar laspruebas de un software desde que iniciamos
durante y nalizado elsoftware para que cuando vallamos a entregar el producto sea de
grancalidad! .stas pruebas son importantes en el desarrollo de las - etapasdel software inicio
durante y al nalizar el software ya que si realizamosdic$as pruebas solo al nalizar el software
corremos el riesgo quedurante el desarrollo o peor a4n al iniciar el software tengamos un
errory nos toque comenzar desde el inicio! 5usti que la importancia de elaborar y aplicar el
plan de pruebas en unproyecto de desarrollo de software"lan de "ruebas de 6oftware
Qué importancia tienen las pruebas del software en la
calidad del mismo?
La Importancia que tienen las pruebas del software de calidad del mismo son
de gran utilidad para ver las fallas que presenta el sistema y poder analizar las
futuras fallas además de esto también sirven para que cuando entreguemos
nuestro software ya finalizado este software este culminado, tenga altos
estándares de calidad y esté listo para entregar.
Para la prueba de los software existen unos modelos que son de suma
importancia para realizar las pruebas de dicho software estos modelos tienen
varios esquemas que son los que se le realizan al software como lo son:
-Modelo Cascada: el cual permite Realizar pruebas cuando está terminado la
construcción del sistema.
-Modelo Incremental: con este modelo se realizan pruebas a cada etapa o
incremento que haiga en el sistema.
-Modelo Evolutivo: este se enfoca en el uso y retroalimentación de los
usuarios.
-Modelo Espiral: este modelo se enfoca en las pruebas cíclicas de verificación y
validación en el desarrollo del sistema.
-Modelo XP: Este modelo se realiza la prueba durante las mejoras que se le
hacen al sistema.
Por esto y por muchas razones es de suma importancia realizar las pruebas de
un software desde que iniciamos durante y finalizado el software, para que
cuando vallamos a entregar el producto sea de gran calidad. Estas pruebas son
importantes en el desarrollo de las 3 etapas del software inicio durante y al
finalizar el software ya que si realizamos dichas pruebas solo al finalizar el
software corremos el riesgo que durante el desarrollo o peor aún al iniciar el
software tengamos un error y nos toque comenzar desde el inicio.
Por esta razón es recomendable dividir el software por etapas y al realizar
alguna etapa de una vez hacer las pruebas para de una vez mejorar si hay algo
malo y no acumular las pruebas para el final cuando es más difícil identificar en
que parte del software se está presentando el inconveniente para
poder entregar el software con una alta calidad.