stringtranslate.com

Pruebas exploratorias

Las pruebas exploratorias son un enfoque de las pruebas de software que se describe de forma concisa como aprendizaje, diseño y ejecución de pruebas simultáneos. 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 y la responsabilidad personal del evaluador individual para optimizar continuamente la calidad de su trabajo al tratar el aprendizaje relacionado con las pruebas, el diseño de las pruebas, la ejecución de las pruebas y la interpretación de los resultados de las pruebas como actividades que se apoyan mutuamente y se ejecutan en paralelo durante todo el proyecto". [2]

Mientras se prueba el software, el evaluador aprende cosas que, junto con la experiencia y la creatividad, generan nuevas y buenas pruebas para ejecutar. Las pruebas exploratorias suelen considerarse una técnica de prueba de caja negra . En cambio, quienes las han estudiado las 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 han sido realizadas por probadores expertos. A principios de la década de 1990, ad hoc era demasiado a menudo sinónimo de trabajo descuidado y descuidado. Como resultado, un grupo de metodólogos de pruebas (que ahora se autodenominan Context-Driven School ) comenzó a usar el término "exploratorio" con el fin de enfatizar el proceso de pensamiento dominante involucrado en las pruebas no guionadas 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 averiguar cómo funciona realmente el software y plantear preguntas sobre cómo manejará 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 evaluador sobre el producto y los diferentes métodos de prueba , mejor será la prueba.

Para explicarlo mejor, se puede hacer una comparación entre las pruebas exploratorias de estilo libre y su antítesis, las pruebas con guiones . En esta última, los casos de prueba se diseñan de antemano. Esto incluye tanto los pasos individuales como los resultados esperados. Estas pruebas las realiza más tarde un evaluador que compara el resultado real con el esperado. Al realizar pruebas exploratorias, las expectativas son abiertas. Algunos resultados pueden predecirse y esperarse; otros, no. El evaluador configura, opera, observa y evalúa el producto y su comportamiento, investigando críticamente el resultado y reportando información que parece probable que sea un error (que amenaza el valor del producto para alguna persona) o un problema (que amenaza la calidad del esfuerzo de prueba).

En realidad, las pruebas casi siempre son una combinación de pruebas exploratorias y pruebas programadas, pero con una tendencia hacia una u otra, dependiendo del contexto.

Según Kaner y James Marcus Bach , las pruebas exploratorias son más una mentalidad o "...una forma de pensar sobre las pruebas" que una metodología. [6] También dicen que cruzan un continuo desde ligeramente exploratorias (pruebas ligeramente ambiguas o vagamente guionadas) hasta altamente exploratorias (pruebas exploratorias de estilo libre). [7]

La documentación de las pruebas exploratorias abarca desde la documentación de todas las pruebas realizadas hasta la documentación de los errores . Durante las pruebas en pareja , dos personas crean casos de prueba juntas; una los realiza y la otra los documenta. Las pruebas basadas en sesiones son un método diseñado específicamente para que las pruebas exploratorias sean auditables y medibles a mayor escala.

Los evaluadores exploratorios a menudo utilizan herramientas, incluidas herramientas de captura de pantalla o de vídeo 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 y desventajas

La principal ventaja de las pruebas exploratorias es que se necesita menos preparación, se detectan errores importantes 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 programadas.

Otro beneficio importante es que los evaluadores pueden usar el razonamiento deductivo basado en los resultados de resultados anteriores para guiar sus futuras pruebas sobre la marcha. No tienen que completar una serie actual de pruebas programadas antes de centrarse en un entorno más rico en objetivos o pasar a explorarlo. Esto también acelera la detección de errores cuando se utiliza de forma 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 de manera lógica al afirmar: "Los programas que pasan ciertas pruebas tienden a seguir pasando las mismas pruebas y tienen más probabilidades de fallar 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 antelación (y así evitar errores en el código y los casos de prueba) y que puede ser difícil mostrar exactamente qué pruebas se han ejecutado.

Es poco probable que las ideas de pruebas exploratorias de estilo libre, cuando se revisan, 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 unidad.

Estudios científicos

Un experimento replicado ha demostrado que, si bien las pruebas con guión y exploratorias dan como resultado una eficacia de detección de defectos similar (el número total de defectos encontrados), las exploratorias 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] Un 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 eficacia de las pruebas exploratorias. [9] Un estudio de caso de tres empresas encontró que la capacidad de proporcionar una 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 altas exigencias a la persona que realiza las pruebas. [11]

Véase también

Referencias

  1. ^ Cem Kaner, "Un tutorial sobre pruebas exploratorias Archivado el 12 de junio de 2013 en Wayback Machine ", pág. 2
  2. ^ Cem Kaner, Un tutorial sobre pruebas exploratorias Archivado el 12 de junio de 2013 en Wayback Machine , pág. 36.
  3. ^ Cem Kaner, Un tutorial sobre pruebas exploratorias Archivado el 12 de junio de 2013 en Wayback Machine , págs. 37-39, 40- .
  4. ^ Cem Kaner, Prueba de software de computadora , TAB Books, Blue Ridge Summit, PA, 1988. pág. 6, 7-11.
  5. ^ Kaner, Cem ; Bach, James; Pettichord, Bret (2001). Lecciones aprendidas en pruebas de software . John Wiley & Sons . ISBN 978-0-471-08112-8.
  6. ^ Cem Kaner, James Bach, Pruebas exploratorias y basadas en riesgos , www.testingeducation.org Archivado el 11 de mayo de 2008 en Wayback Machine , 2004, pág. 10
  7. ^ Cem Kaner, James Bach, Pruebas exploratorias y basadas en riesgos , www.testingeducation.org Archivado el 11 de mayo de 2008 en Wayback Machine , 2004, pág. 14
  8. ^ Itkonen, Juha; Mäntylä, Mika V. (11 de julio de 2013). "¿Son necesarios los 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. S2CID  254472881. 
  9. ^ Itkonen, J.; Mäntylä, MV; Lassenius, C. (1 de mayo de 2013). "El papel del conocimiento del evaluador en las pruebas exploratorias de software". IEEE Transactions on Software Engineering . 39 (5): 707–724. doi :10.1109/TSE.2012.55. ISSN  0098-5589. S2CID  1763558.
  10. ^ Itkonen, J.; Rautiainen, K. (1 de noviembre de 2005). "Pruebas exploratorias: un estudio de casos múltiples". 2005 Simposio Internacional sobre Ingeniería de Software Empírico, 2005 . págs.10 págs.–. doi :10.1109/ISESE.2005.1541817. ISBN 978-0-7803-9507-7.S2CID 7974121  .
  11. ^ 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.S2CID 17924562  .

Enlaces externos