Tanto las pruebas de rendimiento como las pruebas automatizadas son, de hecho, una forma de ejecutar comprobaciones simples con una herramienta. La diferencia más obvia es el objetivo de ejecutar la prueba y analizar los resultados. Si son realmente tan similares, ¿eso significa que puede usar sus pruebas automatizadas para ejecutar también pruebas de rendimiento y viceversa?
Creo que la respuesta es fácil y difícil de explicar. La principal diferencia está en las verificaciones y afirmaciones realizadas en los dos tipos de prueba diferentes. En la automatización de pruebas funcionales (al menos llamémoslo así por ahora), las verificaciones y afirmaciones realizadas están orientadas a validar que se pasó la funcionalidad completa real como se describe en la especificación. Mientras que en las pruebas de rendimiento estas verificaciones y afirmaciones se centran más o menos en validar que se carguen todos los datos y especialmente los datos esperados.
- Trabajando como ingeniero de pruebas de software (manual) con solo 1 año de experiencia en una empresa, ¿puedo pensar en dejarlo ya que no siento pasión por trabajar?
- ¿Cuáles son los pros y los contras de convertirse en desarrollador de software a los 30 años?
- Cómo cambiar mi carrera de ingeniero / consultor de software Appian BPM a ingeniero de software regular
- He sido probador manual todo el tiempo durante 10 años. Quiero pasar al desarrollo. ¿Dónde empiezo?
- ¿Qué debo hacer para ingresar al departamento de desarrollo de software en Ravindra, Hyderabad?
Muchas de las pruebas de rendimiento que he realizado durante el año pasado más o menos, no han utilizado la interfaz gráfica de usuario. En cambio, las pruebas utilizan las comunicaciones debajo de la GUI, como XML, JSON o cualquier otra cosa que pase entre el servidor y el cliente. En estas pruebas de rendimiento, la funcionalidad de la aplicación bajo prueba todavía se ejecuta a través de las pruebas, por lo que se ejecuta un tutorial / prueba funcional, sin embargo, mis afirmaciones no necesariamente validan eso y definitivamente no en un nivel que sea aceptable para el funcionamiento normal prueba de automatización. En otras palabras, la mayoría de las pruebas de rendimiento no se pueden reutilizar (fácil o ciegamente) como automatización de pruebas funcionales.
Ahora podría pensar: “Entonces, ¿podemos poner la automatización de pruebas funcionales a funcionar como una prueba de rendimiento, si al revés no se puede hacer fácilmente, tal vez funcionará de esta manera?”
En mi experiencia, la respuesta a esto es similar a cuando se trata de usar pruebas de rendimiento como una automatización de prueba funcional. Se puede hacer, pero en realidad no le dará la ventaja en las pruebas de rendimiento que probablemente le gustaría tener. La ejecución de la automatización de pruebas funcionales generalmente requiere que la aplicación se ejecute. Si la aplicación es una aplicación web, puede salirse con la suya al ejecutar el navegador sin cabeza (por ejemplo, solo el motor de renderizado, no la versión GUI completa del navegador) para evitar la necesidad de una carga de máquinas virtuales para generar incluso un poco de carga. Sin embargo, cuando el SUT es una aplicación cliente / servidor, la automatización de la prueba funcional generalmente requiere que el cliente real se ejecute, lo que hace que cualquier tipo de carga sea realmente costosa.
Una de las maravillosas posibilidades es combinar pruebas funcionales, pruebas de rendimiento y pruebas de carga. Al ajustar la automatización de la prueba funcional no solo para registrar la aprobación / falla, sino también para representar los tiempos de pantallas / objetos, la suite de automatización de la prueba funcional se convierte en un monitor de rendimiento. Ahora inicia su generador de carga para probar los tiempos de respuesta del servidor durante la carga, una vez que se alcanza la carga objetivo, inicia el paquete de automatización de pruebas funcionales para recorrer un conjunto de pruebas sólido y medir los tiempos reales que toma un sistema caliente o caliente para ejecutar todo a través de un entorno renderizado completo. Esto proporciona información maravillosa sobre lo que los usuarios finales pueden experimentar durante cargas pesadas en el servidor.