Las pruebas exploratorias son un enfoque para las pruebas de software que se describe de manera concisa como aprendizaje simultáneo, diseño de pruebas y ejecución de pruebas. Cem Kaner , quien acuñó el término en 1984, [1] define las pruebas exploratorias como "un estilo de pruebas de software que enfatiza la libertad personal y la responsabilidad del evaluador individual para optimizar continuamente la calidad de su trabajo al tratar el aprendizaje relacionado con las pruebas. , diseño de pruebas, ejecución de pruebas e interpretación de resultados de pruebas como actividades de apoyo mutuo que se ejecutan en paralelo a lo largo del proyecto ". [2]
Mientras se prueba el software, el evaluador aprende cosas que, junto con la experiencia y la creatividad, generan nuevas pruebas buenas para ejecutar. Las pruebas exploratorias a menudo se consideran una técnica de prueba de caja negra . En cambio, quienes lo han estudiado lo consideran un enfoque de prueba que se puede aplicar a cualquier técnica de prueba, en cualquier etapa del proceso de desarrollo. La clave no es la técnica de prueba ni el elemento que se está probando o revisando; la clave es el compromiso cognitivo del evaluador y la responsabilidad del evaluador de administrar su tiempo. [3]
Historia
Las pruebas exploratorias siempre las han realizado probadores expertos. A principios de la década de 1990, ad hoc era con demasiada frecuencia sinónimo de trabajo descuidado y descuidado. Como resultado, un grupo de metodólogos de pruebas (que ahora se llaman a sí mismos la Escuela Orientada al Contexto ) comenzó a usar el término "exploratorio" buscando enfatizar el proceso de pensamiento dominante involucrado en las pruebas sin guión y comenzar a desarrollar la práctica en una disciplina enseñable. Esta nueva terminología fue publicada por primera vez por Cem Kaner en su libro Testing Computer Software [4] y ampliada en Lessons Learned in Software Testing . [5] Las pruebas exploratorias pueden ser tan disciplinadas como cualquier otra actividad intelectual.
Descripción
Las pruebas exploratorias buscan descubrir cómo funciona realmente el software y hacer preguntas sobre cómo manejará los casos difíciles y fáciles. La calidad de las pruebas depende de la habilidad del evaluador para inventar casos de prueba y encontrar defectos . Cuanto más sepa el probador sobre el producto y los diferentes métodos de prueba , mejor será la prueba.
Para explicar con más detalle, se puede hacer una comparación de las pruebas exploratorias de estilo libre con sus pruebas con guión antítesis . En la última actividad, los casos de prueba se diseñan de antemano. Esto incluye tanto los pasos individuales como los resultados esperados. Posteriormente, un evaluador realiza estas pruebas y compara el resultado real con el esperado. Al realizar pruebas exploratorias, las expectativas están abiertas. Algunos resultados pueden predecirse y esperarse; otros pueden no hacerlo. El probador configura, opera, observa y evalúa el producto y su comportamiento, investiga críticamente el resultado y reporta información que parece probable que sea un error (que amenaza el valor del producto para alguna persona) o un problema (que amenaza el calidad del esfuerzo de prueba).
En realidad, las pruebas casi siempre son una combinación de pruebas exploratorias y escritas, pero con una tendencia hacia cualquiera de las dos, según el contexto.
Según Kaner y James Marcus Bach , las pruebas exploratorias son más una forma de pensar o "... una forma de pensar sobre las pruebas" que una metodología. [6] También dicen que cruza un continuo desde ligeramente exploratorio (pruebas ligeramente ambiguas o vagamente escritas) hasta altamente exploratorio (pruebas exploratorias de estilo libre). [7]
La documentación de las pruebas exploratorias abarca desde documentar todas las pruebas realizadas hasta simplemente documentar los errores . Durante la prueba de pares , dos personas crean casos de prueba juntos; uno los realiza, y los otros documentos. Las pruebas basadas en sesiones son un método diseñado específicamente para hacer que las pruebas exploratorias sean auditables y medibles a una escala más amplia.
Los probadores exploratorios a menudo usan herramientas, incluidas herramientas de captura de pantalla o video como registro de la sesión exploratoria, o herramientas para ayudar a generar rápidamente situaciones de interés, por ejemplo, Perlclip de James Bach.
Beneficios e inconvenientes
La principal ventaja de las pruebas exploratorias es que se necesita menos preparación, los errores importantes se encuentran rápidamente y, en el momento de la ejecución, el enfoque tiende a ser más estimulante intelectualmente que la ejecución de pruebas con guiones.
Otro beneficio importante es que los evaluadores pueden usar el razonamiento deductivo basado en los resultados de resultados anteriores para guiar sus pruebas futuras sobre la marcha. No tienen que completar una serie actual de pruebas con guión antes de centrarse o pasar a explorar un entorno más rico en objetivos. Esto también acelera la detección de errores cuando se usa de manera inteligente.
Otro beneficio es que, después de las pruebas iniciales, la mayoría de los errores se descubren mediante algún tipo de prueba exploratoria. Esto se puede demostrar lógicamente al afirmar: "Los programas que pasan ciertas pruebas tienden a seguir pasando las mismas pruebas y es más probable que fallen en otras pruebas o escenarios que aún no se han explorado".
Las desventajas son que las pruebas inventadas y realizadas sobre la marcha no se pueden revisar con anticipación (y eso evita errores en el código y los casos de prueba), y que puede ser difícil mostrar exactamente qué pruebas se han ejecutado.
Las ideas de pruebas exploratorias de estilo libre, cuando se revisan, es poco probable que se realicen exactamente de la misma manera, lo que puede ser una ventaja si es importante encontrar nuevos errores; o una desventaja si es más importante repetir detalles específicos de las pruebas anteriores. Esto se puede controlar con instrucciones específicas para el evaluador o preparando pruebas automatizadas cuando sea factible, apropiado y necesario, e idealmente lo más cerca posible del nivel de la unidad.
Estudios científicos
El experimento replicado ha demostrado que, si bien las pruebas exploratorias y con secuencias de comandos dan como resultado una eficacia de detección de defectos similar (el número total de defectos encontrados), los resultados exploratorios dan como resultado una mayor eficiencia (el número de defectos por unidad de tiempo), ya que no se dedica ningún esfuerzo a diseñar previamente los casos de prueba. . [8] El estudio observacional sobre probadores exploratorios propuso que el uso del conocimiento sobre el dominio, el sistema bajo prueba y los clientes es un factor importante que explica la efectividad de las pruebas exploratorias. [9] Un estudio de caso de tres empresas descubrió que la capacidad de proporcionar retroalimentación rápida era un beneficio de las pruebas exploratorias, mientras que la gestión de la cobertura de las pruebas se señaló como una deficiencia. [10] Una encuesta encontró que las pruebas exploratorias también se utilizan en dominios críticos y que el enfoque de las pruebas exploratorias impone grandes exigencias a la persona que realiza las pruebas. [11]
Uso
Las pruebas exploratorias son particularmente adecuadas si los requisitos y especificaciones están incompletos o si hay falta de tiempo. [12] [13] El enfoque también se puede utilizar para verificar que las pruebas anteriores hayan encontrado los defectos más importantes. [12]
Ver también
Referencias
- ^ Cem Kaner, " Un tutorial en pruebas exploratorias ", p.2
- ^ Cem Kaner, Un tutorial sobre pruebas exploratorias , p. 36.
- ^ Cem Kaner, Un tutorial sobre pruebas exploratorias , p. 37-39, 40-.
- ^ Cem Kaner, Pruebas de software informático , TAB Books, Blue Ridge Summit, PA, 1988. p. 6, 7-11.
- ^ Kaner, Cem ; Bach, James; Pettichord, Bret (2001). Lecciones aprendidas en pruebas de software . John Wiley e hijos . ISBN 978-0-471-08112-8.
- ^ Cem Kaner, James Bach, Pruebas exploratorias y basadas en riesgos , www.testingeducation.org , 2004, p. 10
- ^ Cem Kaner, James Bach, Pruebas exploratorias y basadas en riesgos , www.testingeducation.org , 2004, p. 14
- ^ Itkonen, Juha; Mäntylä, Mika V. (11 de julio de 2013). "¿Se necesitan casos de prueba? Comparación replicada entre pruebas de software exploratorias y basadas en casos de prueba". Ingeniería de software empírica . 19 (2): 303–342. CiteSeerX 10.1.1.363.6524 . doi : 10.1007 / s10664-013-9266-8 . ISSN 1382-3256 .
- ^ Itkonen, J .; Mäntylä, MV; Lassenius, C. (1 de mayo de 2013). "El papel del conocimiento del probador en las pruebas de software exploratorias". Transacciones IEEE sobre ingeniería de software . 39 (5): 707–724. doi : 10.1109 / TSE.2012.55 . ISSN 0098-5589 .
- ^ Itkonen, J .; Rautiainen, K. (1 de noviembre de 2005). Pruebas exploratorias: un estudio de caso múltiple . 2005 Simposio internacional sobre ingeniería empírica de software, 2005 . págs. 10 págs.–. doi : 10.1109 / ISESE.2005.1541817 . ISBN 978-0-7803-9507-7.
- ^ Pfahl, Dietmar; Yin, Huishi; Mäntylä, Mika V .; Münch, Jürgen (1 de enero de 2014). ¿Cómo se utilizan las pruebas exploratorias? Una encuesta sobre el estado de la práctica . Actas del 8º Simposio Internacional ACM / IEEE sobre Ingeniería y Medición de Software Empírico . ESEM '14. Nueva York, NY, EE.UU .: ACM. págs. 5: 1–5: 10. doi : 10.1145 / 2652524.2652531 . hdl : 10138/153363 . ISBN 9781450327749.
- ^ a b Bach, James (2003). "Explicación de las pruebas exploratorias" (PDF) . satisfice.com. pag. 7 . Consultado el 23 de octubre de 2010 .
- ^ Kaner, Cem (2008). "Un tutorial en pruebas exploratorias" (PDF) . kaner.com. págs. 37, 118 . Consultado el 23 de octubre de 2010 .
enlaces externos
- James Bach, Explicación de las pruebas exploratorias
- Cem Kaner, James Bach, La naturaleza de las pruebas exploratorias , 2004
- Cem Kaner, James Bach, Los siete principios básicos de la escuela basada en el contexto
- Jonathan Kohl, Pruebas exploratorias: encontrar la música de la investigación de software , Kohl Concepts Inc., 2007