Pruebas de software
Las pruebas de software (en inglés software testing) son las investigaciones empíricas y técnicas cuyo objetivo es proporcionar información objetiva e independiente sobre la calidad del producto a la parte interesada o stakeholder. Son una actividad más en el proceso de control de calidad.
Las pruebas son básicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo del tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho proceso de desarrollo.
Índice |
Historia [editar]
La separación del proceso de "debugging" del "Testing", fue una idea introducida por Glenford J. Myers in 1979.[1] Myers enfocaba las pruebas como algo destructivo ("una prueba exitosa es aquella que descubre un Bug"[1] [2] aquí se refleja claramente el deseo de la comunidad de ingenieros de software de separar las actividades fundamentales del desarrollo, debugging y verificación).
Dave Gelperin y William C. Hetzel en 1988 clasificaron la evolución de las fases y objetivos de las pruebas en las siguientes etapas[3] :
- antes -1956 - Orientadas a la depuración[4]
- 1957–1978 - Orientadas a la demostración[5]
- 1979–1982 - Orientadas a la destrucción[6]
- 1983–1987 - Orientadas a la evaluación[7]
- 1988–2000 - Orientadas a la prevención[8]
Objetivos [editar]
El objetivo de las pruebas es presentar información sobre la calidad del producto a las personas responsables de este.
Teniendo esta afirmación en mente, la información que puede ser requerida es de lo más variada. Esto hace que el proceso de testing sea completamente dependiente del contexto[9] en el que se desarrolla.
A pesar de lo que muchos promueven, no existen las "mejores prácticas" como tal. Toda práctica puede ser ideal para una situación pero completamente inútil o incluso perjudicial en otra.
Por esto, las actividades, técnicas, documentación, enfoques y demás elementos que condicionarán las pruebas a realizar, deben ser seleccionadas y utilizadas de la manera más eficiente según contexto del proyecto.
Pruebas estáticas [editar]
Son el tipo de pruebas que se realizan sin ejecutar el código de la aplicación.
Pruebas dinámicas [editar]
Todas aquellas pruebas que para su ejecución requieren la ejecución de la aplicación.
Tipos de pruebas por su ejecución [editar]
Enfoques de pruebas o approaches [editar]
Niveles de pruebas [editar]
Pruebas funcionales [editar]
- Pruebas funcionales
- Pruebas de humo
- Pruebas de regresión
- Pruebas de aceptación
- Alpha testing
- Beta testing
Pruebas no funcionales [editar]
- Pruebas no funcionales
- Pruebas de seguridad
- Pruebas de usabilidad
- Pruebas de rendimiento
- Pruebas de internacionalización y localización
- Pruebas de escalabilidad
- Pruebas de mantenibilidad
- Pruebas de instalabilidad
- Pruebas de portabilidad
Véase también [editar]
Referencias [editar]
- ↑ a b The Art of Software Testing - Myers 1979
- ↑ Dr. Dobb's journal of software tools for the professional programmer - Dr. Dobb 1987
- ↑ Gelperin, D.; B. Hetzel (1988). «The Growth of Software Testing». CACM 31 (6). ISSN 0001-0782.
- ↑ until 1956 it was the debugging oriented period, when testing was often associated to debugging: there was no clear difference between testing and debugging. Gelperin, D.; B. Hetzel (1988). «The Growth of Software Testing». CACM 31 (6). ISSN 0001-0782.
- ↑ From 1957–1978 there was the demonstration oriented period where debugging and testing was distinguished now - in this period it was shown, that software satisfies the requirements. Gelperin, D.; B. Hetzel (1988). «The Growth of Software Testing». CACM 31 (6). ISSN 0001-0782.
- ↑ The time between 1979–1982 is announced as the destruction oriented period, where the goal was to find errors. Gelperin, D.; B. Hetzel (1988). «The Growth of Software Testing». CACM 31 (6). ISSN 0001-0782.
- ↑ 1983–1987 is classified as the evaluation oriented period: intention here is that during the software lifecycle a product evaluation is provided and measuring quality. Gelperin, D.; B. Hetzel (1988). «The Growth of Software Testing». CACM 31 (6). ISSN 0001-0782.
- ↑ From 1988 on it was seen as prevention oriented period where tests were to demonstrate that software satisfies its specification, to detect faults and to prevent faults. Gelperin, D.; B. Hetzel (1988). «The Growth of Software Testing». CACM 31 (6). ISSN 0001-0782.
- ↑ http://context-driven-testing.com/
Enlaces externos [editar]
- Context-driven Testing
- www.testingeducation.org
- ISO/IEC 29119 Pruebas de Software (Grupo de Trabajo de AENOR AEN/CTN71/SC7/GT26)
- MÉTRICA v3 en el CSAE