Tecnología de pruebas de software (7) Pruebas automatizadas

prueba automatizada

Definición de prueba automatizada: use una herramienta de prueba automatizada para verificar los requisitos de varias pruebas de software, incluida la gestión e implementación de actividades de prueba, el desarrollo y la ejecución de scripts de prueba.

自动化测试只是测试工作的一部分,是对手工测试的一种补充;
自动化测试绝不能代替手工测试;多数情况下,手工测试和自动化测试应该相结合,以最有效的方法来完成测试任务。

El significado de las pruebas automatizadas

Por lo general, la carga de trabajo de las pruebas de software es muy grande (según las estadísticas, las pruebas ocuparán el 40% del tiempo de desarrollo; para algunos programas con requisitos de confiabilidad muy altos, el tiempo de prueba representa incluso el 60% del tiempo de desarrollo). Sin embargo, muchas operaciones en la prueba son repetitivas, no intelectuales y no creativas, y requieren un trabajo preciso y meticuloso. Las computadoras son las más adecuadas para reemplazar a los humanos para completar tales tareas.

Las pruebas automatizadas de software existen en relación con las pruebas manuales, y se realizan principalmente a través de herramientas de prueba de software desarrolladas, scripts, etc. Tiene las características de buena operabilidad, repetibilidad y alta eficiencia.
Para comprender por qué se necesitan pruebas automatizadas, considere dos aspectos:

  1. Limitaciones de las pruebas manuales
  2. Beneficios de las pruebas de software automatizadas

Limitaciones de las pruebas manuales

  • No es posible cubrir todas las rutas de código a través de pruebas manuales.
  • Los casos de prueba funcionales simples son indispensables en cada ronda de prueba, y hasta cierto punto son mecánicos y repetitivos, y la carga de trabajo suele ser grande.
  • Muchos errores lógicos invisibles relacionados con el tiempo, interbloqueo, conflictos de recursos, subprocesos múltiples, etc. son difíciles de detectar mediante pruebas manuales.
  • Al realizar pruebas de carga y rendimiento del sistema, es difícil hacerlo a través de pruebas manuales cuando es necesario simular varios escenarios de aplicaciones, como una gran cantidad de datos o una gran cantidad de usuarios concurrentes.
  • Al realizar pruebas de confiabilidad del sistema, las pruebas continuas a largo plazo requieren simular el funcionamiento del sistema durante 10 o décadas para verificar si el sistema puede funcionar de manera estable, lo que no se puede simular mediante pruebas manuales.
  • Si hay una gran cantidad (miles) de casos de prueba que deben completarse en un corto período de tiempo (1 día), la prueba manual es casi imposible.

Beneficios de las pruebas automatizadas

  • Acortar el ciclo de desarrollo y prueba de software puede llevar los productos al mercado más rápido.
  • La eficiencia de la prueba es alta y los recursos de hardware se utilizan por completo.
  • Ahorre recursos humanos y reduzca los costos de las pruebas.
  • Estabilidad y confiabilidad mejoradas de la prueba.
  • Mejore la exactitud y la precisión de las pruebas de software y aumente la confianza en el software.
  • Las herramientas de prueba de software hacen que las pruebas sean relativamente fáciles y producen resultados de prueba de mayor calidad.
  • Las pruebas automatizadas pueden hacer cosas que no se pueden hacer manualmente, como pruebas de carga y rendimiento.

Requisitos previos para las pruebas automatizadas

Antes de implementar pruebas automatizadas, es necesario analizar el proceso de desarrollo de software para ver si es adecuado para usar pruebas automatizadas. Por lo general, las siguientes condiciones deben cumplirse al mismo tiempo:

  1. Cambios poco frecuentes en los requisitos
    La estabilidad de los scripts de prueba determina el costo de mantenimiento de las pruebas automatizadas. Si los requisitos de software cambian con demasiada frecuencia, los evaluadores deben actualizar los casos de prueba y los scripts de prueba relacionados de acuerdo con los requisitos cambiantes, y el mantenimiento de scripts en sí mismo es un proceso de desarrollo de código, que debe modificarse, depurarse y automatizarse. prueba cuando sea necesario Framework, si el el costo no es menor que el costo de la prueba ahorrado al usarla, entonces la prueba automatizada ha fallado.
    Algunos módulos del proyecto son relativamente estables, mientras que los requisitos de algunos módulos son muy variables. Entonces podemos automatizar la prueba de módulos relativamente estables, mientras que la prueba manual todavía es necesaria para cambios relativamente grandes.
  2. El ciclo del proyecto es lo suficientemente largo.
    La determinación de los requisitos de prueba automatizados, el diseño del marco de prueba automatizado y la escritura y depuración de scripts de prueba toman mucho tiempo para completarse. Dicho proceso en sí mismo es un proceso de desarrollo de software de prueba y toma un mucho tiempo para completar. . Si el ciclo del proyecto es relativamente corto y no hay tiempo suficiente para respaldar dicho proceso, las pruebas automatizadas se convierten en una broma.
  3. Los scripts de prueba automatizados se pueden reutilizar
    si se ha desarrollado con gran esfuerzo un conjunto de scripts de prueba automatizados casi perfectos, pero la tasa de reutilización de los scripts es muy baja, lo que hace que el costo gastado durante el proceso sea mayor que el valor económico creado. , las pruebas automatizadas se han convertido en la elección del probador, es un trabajo de práctica, no un método de prueba que realmente puede generar beneficios.
  4. Cuando no se pueden completar las pruebas manuales y se requiere mucho tiempo y mano de obra, también es necesario considerar la introducción de pruebas automatizadas. Tales como pruebas de rendimiento, pruebas de configuración, pruebas de entrada de gran volumen de datos, etc.

Enfoques para las pruebas automatizadas

La base de la automatización de pruebas de software es simular el proceso de operación y el comportamiento de operación del probador en la computadora mediante el diseño de un programa especial, o para verificar el programa de la computadora como un sistema de compilación.

Los principios y métodos de automatización de pruebas de software incluyen principalmente:

  1. Análisis estático y dinámico directamente en el código
  2. Captura y reproducción del proceso de prueba.
  3. tecnología de guiones de prueba
  4. Tecnología de usuario virtual y tecnología de gestión de pruebas.

Deficiencias de las pruebas automatizadas

  • creencias incorrectas o expectativas poco realistas
  • Falta de personal de prueba calificado y experimentado.
  • Los problemas con la propia herramienta de prueba afectan la calidad de la prueba
  • Formación inadecuada y eficaz.
  • Introducir herramientas de prueba a ciegas sin tener en cuenta la situación real de la empresa
  • No formó un buen entorno de herramienta de prueba
  • Otras cuestiones técnicas y organizativas

Dirección de aplicación de pruebas automatizadas.

Las pruebas automatizadas y las pruebas manuales tienen cada una sus propias características, y sus objetos de prueba y alcances de prueba son diferentes.
Cuando se trata de pruebas de lógica de función del sistema, pruebas de aceptación, pruebas de aplicabilidad y pruebas de interacción física, el método de prueba manual de la prueba de caja negra a menudo es usado. .

Las pruebas unitarias, las pruebas de integración, las pruebas de carga del sistema, las pruebas de rendimiento, las pruebas de estabilidad, las pruebas de confiabilidad, etc., son más adecuadas para las pruebas automatizadas.
Las pruebas de software inestable, software con un ciclo de desarrollo corto y software único no son adecuadas para pruebas automatizadas.

Herramientas típicas de pruebas automatizadas de código abierto

herramienta de prueba funcional

nombre de la herramienta Introducción URL
Marco de prueba de GUI de Java de Abbot Herramientas de prueba de GUI de Java http://abbot.sourceforge.net/
Sharp Robo Una herramienta de prueba para la grabación/reproducción de la aplicación WinForm de dotNet http://gforge.public.thoughtworks.org/projects/sharprobo/
jabón Probar el Servicio Web a través del protocolo HTTP http://www.soapui.org/
unidad http Controle el acceso a las aplicaciones web y las pruebas funcionales a través del código. http://httpUnit.sourceforge.net
sammy Herramienta web de pruebas funcionales, basada en Perl http://samie.sourceforge.net/
agua Herramienta de prueba de funciones web, llamando a la implementación de la interfaz de automatización de IE, basada en Ruby http://wtr.rubyforge.org/
Proyecto de prueba de Linux Herramienta de prueba del kernel para Linux http://ltp.sourceforge.net/

herramienta de prueba de rendimiento

nombre de la herramienta Introducción URL
OpenSTA Una herramienta de prueba de rendimiento WEB con muchos usuarios, compatible con el protocolo HTTP/HTTPS http://opensta.org/
Jmetro Herramienta de prueba de rendimiento basada en Java que admite HTTP/HTTPS, FTP, Socket y otros protocolos http://jakarta.apache.org/jmeter/
el molinillo Una herramienta de prueba de rendimiento para probar aplicaciones J2EE http://grinder.sourceforge.net/
Creador de pruebas Una herramienta de prueba de rendimiento para probar aplicaciones WEB, que puede admitir protocolos HTTP, HTTPS, SOAP, XML-RPC, SMTP, POP3, IMAP http://www.pushtotest.com/ptt/
DBMonster Herramientas para generar datos base de bases de datos http://dbmonster.kernelpanic.pl/
Conjunto de pruebas de código abierto de base de datos Suite para probar el rendimiento de la base de datos http://ltp.sourceforge.net/

biblioteca de defectos

nombre de la herramienta Introducción URL
Bugzillar Una de las bibliotecas de defectos más prestigiosas, potente y bien integrada con la herramienta de configuración CVS http://www.mozilla.org/projects/bugzilla/
Mantis Una biblioteca de defectos fácil de usar que incluye todas las funciones básicas de una herramienta de gestión de defectos http://mantisbt.sourceforge.net/
seguimiento Una buena herramienta de gestión de defectos e incidentes, que puede integrarse bien con Subversion y mantener un seguimiento de la resolución de cada defecto. http://proyectos.edgewall.com/trac/
Libre de errores Afirma ser una versión simplificada del sistema de gestión de defectos de Microsoft, una herramienta de código abierto de los propios chinos. http://bugfree.1zsoft.com/

herramienta de prueba unitaria

nombre de la herramienta Introducción URL
JUnit El marco de prueba de regresión de Java se ha convertido en un gran marco de prueba a través de varias extensiones. http://www.junit.org/index.htm
Cactus Una herramienta de prueba unitaria para probar ServerSide, que se puede probar para Servlets, EJB, etc. http://jakarta.apache.org/cactus/index.html
Unidad Cpp Una herramienta de prueba unitaria para C++ http://cppunit.sourceforge.net/
Monja Herramientas de prueba unitaria bajo dotNet http://www.nunit.org/
UnidadBD Se utiliza para mantener el entorno de la base de datos entre diferentes pruebas. http://dbunit.sourceforge.net/

Supongo que te gusta

Origin blog.csdn.net/lichukuan/article/details/126861918
Recomendado
Clasificación