Está en la página 1de 3

1

Siete principios de pruebas de software


García López Geraldine

Resumen – En este documento conoceremos 7 principios de


pruebas de software los cuales son esenciales para garantizar la III. PRINCIPIO 2: NO ES POSIBLE REALIZAR PRUEBAS
calidad y confiabilidad del software, ayudando a reducir los costos EXHAUSTIVAS
y los problemas que pueden surgir en etapas posteriores del
desarrollo o después de que el software esté en producción. En condiciones reales, se utilizan generalmente una prueba de
una muestra. Probar todas las combinaciones posibles de
entradas y precondiciones sólo es económicamente viable en
I. INTRODUCCIÓN casos triviales.

A l construir el software habitualmente se cometen errores.


• La Pruebas exhaustivas (“exhaustive testing”)
o Enfoque de prueba donde el conjunto de
En la industria, la técnica para solucionar los problemas pruebas abarca todas las combinaciones de
derivados de dichos errores, serán las pruebas de software, que valores de entrada y precondiciones
consistirán en una serie de pasos realizados antes y después de • Explosión de casos de prueba (“test case explosión”)
la construcción de este software. o Define el incremento factorial de esfuerzo y
coste en el caso de pruebas exhaustivas
• Prueba de Muestra (“sample test”)
II. PRINCIPIO 1: EL PROCESO DE PRUEBA DEMUESTRA o La prueba incluye solamente un subconjunto
LA PRESENCIA DE DEFECTOS (generado de forma sistemática o aleatoria)
de todos los posibles valores de entrada
Lo que podemos sacar de este principio es que, por más que
probemos una aplicación nunca podemos decir que el sistema
se encuentra al 100% en su calidad de software, y esto lo
decimos es porque no podemos estar seguros de que la IV. PRINCIPIO 3: PRUEBAS TEMPRANAS
aplicación ya no tiene defectos. (“EARLY TESTING”)

• El proceso de prueba puede probar la presencia de Las pruebas no solo son sobre el software funcionando,
defectos podemos empezar desde mucho antes, desde la misma
• Las desviaciones identificadas a lo largo del proceso documentación, los probadores tenemos una gran capacidad
de prueba demuestran la presencia de un fallo de análisis, buscando todos los caminos y variantes que se
• La causa de un fallo puede no ser obvia pueden presentar, es por esto por lo que apoyamos mucho con
• El proceso de prueba no puede demostrar la ausencia nuestra revisión temprana a la documentación, también
de defectos durante el proceso de desarrollo de software.
• Las pruebas reducen la probabilidad de la presencia
de defectos que permanezcan sin ser detectados. La • Cuanto más temprana es la detección de un defecto,
ausencia de fallos no demuestra la corrección de un menos costosa es su corrección
producto software • Se obtiene una máxima rentabilidad cuando los erro-
• El mismo proceso de prueba puede contener errores res son corregidos antes de la implementación
• Los conceptos y especificaciones también pueden ser
• Las condiciones de prueba pueden ser inapropiadas
probados
para detectar errores.
• Los defectos detectados en la fase de concepción son
corregidos con los menores esfuerzo y coste
• La preparación de una prueba también consume
tiempo

.
2

• El proceso de prueba implica más que sólo la ejecu- o La automatización de pruebas puede resultar
ción de la prueba conveniente si un conjunto de casos de
• Las actividades de prueba pueden ser preparadas an- prueba se debe ejecutar con frecuencia
tes de que el desarrollo se haya completado
• Las actividades de prueba (incluidas las revisiones) VII. PRINCIPIO 6: LAS PRUEBAS DEPENDEN DEL
deben se ejecutadas en paralelo a la especificación y
diseño software. CONTEXTO

V. PRINCIPIO 4: AGRUPAMIENTO DE • Las pruebas se llevan a cabo de forma diferente en


DEFECTOS (“DEFECT CLUSTERING”) diferentes contextos
• Objetos de prueba diferentes son probados de forma
Si encuentras un bug en un componente, es muy probable que diferente
haya más. Con lo que una posible estrategia sería centrarse en • El controlador del motor de un coche requiere prue-
bas diferentes respecto de aquellas para una aplica-
mejorar las pruebas de aquellos componentes para los que se
ción de “e-Commerce”
han reportado un número mayor de bugs, para ser más eficaces • Entorno de prueba (“test environment”, cama de
a la hora de cazarlos en fases tempranas. prueba – “test bed”) vs. entorno de producción (“pro-
duction environment”)
• ¡Encuentre un defecto y encontrará más defectos • Las pruebas tienen lugar en un entorno distinto del
“cerca”! entorno de producción.
o -Los defectos aparecen agrupados como • El entorno de prueba debe ser muy similar al entorno
hongos o cucarachas de producción
o -Vale la pena investigar un mismo módulo • Siempre habrá desviaciones entre el entorno de
donde se ha detectado un defecto prueba y el entorno de producción. Estas desviacio-
• Los probadores (“testers”) deben ser flexibles nes ponen en tela de juicio las conclusiones que se
o Habiendo sido detectado un defecto, es con- obtuvieran tras las pruebas.
veniente volver a considerar el rumbo de las
pruebas posteriores VIII. PRINCIPIO 7: LA FALACIA DE LA AUSENCIA
o La identificación/localización de un defecto
puede ser investigada con un mayor grado DE ERRORES
de detalle, por ejemplo, realizando pruebas
adicionales o modificando pruebas existen- • Un proceso de prueba adecuado detectará los fallos
tes. más importantes
• En la mayoría de los casos el proceso de prueba no
VI. PRINCIPIO 5: PARADOJA DEL PESTICIDA detectará todos los defectos del sistema (ver Principio
2), pero los defectos más importantes deberían ser de-
Según este principio un plan de pruebas va perdiendo tectados
efectividad conforme se ejecuta sucesivas veces. Con lo que • Esto por sí solo no prueba la calidad del software
o La funcionalidad del software puede no sa-
cada vez tenderá a encontrar menos bugs… ¡lo que no tisfacer las necesidades y expectativas de los
significa que no haya! (vuelve a leer el primer principio). usuarios
o ¡No se puede introducir la calidad a través
• Repetir pruebas en las mismas condiciones no es de las pruebas, la calidad tiene que cons-
efectivo truirse desde el principio!
o Cada caso de prueba debe contar con
una combinación única de parámetros de en-
trada para un objeto de prueba particular, de IX. EL ERROR EN LOS FRENOS DE LOS TOYOTA
lo contrario no se podrá obtener información (2010)
adicional.
o Si se ejecutan las mismas pruebas de forma Toyota retiró más de 400.000 de sus vehículos híbridos en
reiterada no se podrán encontrar nuevos de- 2010, por un problema de software, que provocaba un retraso
fectos (“defects”). en el sistema antibloqueo de frenos. Se estima entre
• Las pruebas deben ser revisadas/modificadas re- sustituciones y demandas el error le costó a Toyota 3 billones
gularmente para los distintos módulos de código de dólares.
o Es necesario repetir una prueba tras una mo-
dificación del código (corrección de defec-
tos, nueva funcionalidad).
3

X. EL DESASTRE DE APPLE MAPS (2012)

Ocurrió con el iPhone 5, en 2012, cuando se lanzó Apple


Maps, el iPhone usaba los mapas de Google, pero Apple
quería independizarse y crearon sus propios mapas con mucha
prisa, comprando datos de empresas como Yelp o Waze. El
resultado fue desastroso: sitios deformados en la vista 3D,
puentes que parecían derretidos, ubicaciones
erróneas (como poner a Londres en Estados Unidos o a Hong
Kong dentro de China) e incluso, indicaciones peligrosas
para llegar a tu destino (como conducir por la pista de
aterrizaje de un aeropuerto). Rodó la cabeza del director del
producto e, incluso, Tim Cook tuvo que pedir disculpas
públicas por el desastre.

XI. REFERENCIA

https://todosqa.com/siete-principios-del-proceso-de-prueba/

También podría gustarte