¿Las pruebas de rendimiento son mejores que la automatización?

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.

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.

Para limpiar el aire primero … Las pruebas de rendimiento son solo una forma de pruebas de automatización. Esto se debe a que todas estas pruebas se realizan utilizando herramientas ( Loadrunner, JMeter, Neoload, QTP, Selenium, etc. ). La principal diferencia que radica en esta división es funcional y no funcional.

La prueba de rendimiento es un tipo de prueba no funcional en la que apenas nos preocupan las funcionalidades del código, como navegar a la página correcta, la entrada debe ser adecuada, etc. porque tener un código debidamente funcional es la entrada básica para las pruebas de rendimiento. Lo más importante es que nos interesan las métricas del cliente y del servidor y de la base de datos ( cosas como los tiempos de respuesta de las transacciones, la utilización de la memoria del servidor, las utilidades de la CPU, las utilidades de intercambio, la E / S de disco, las consultas principales en las bases de datos, el tiempo que toman las principales SQL, etc. . ) que ayudan a retener el rendimiento del código bajo prueba. Por lo tanto, es importante verificar los elementos vitales del hardware para estar en su lugar en todas las cargas y también conocer la arquitectura del hardware e2e.

Para las pruebas de automatización, básicamente se presentan los casos de prueba para verificar las funcionalidades del nuevo código bajo prueba y también la regresión. Por lo tanto, no es necesario conocer los detalles de infraestructura / hardware de la misma manera que se debe realizar una única iteración una y otra vez.

Por lo tanto, desde una perspectiva general en mi opinión personal, siento que las pruebas de rendimiento son mejores pruebas funcionales (leer como automatización usando herramientas de selenio, qtp, etc.). También 1 punto más que sumaría es que un probador de rendimiento puede ser un probador funcional, ya que hay una verificación funcional en su lugar antes de ejecutar las pruebas, pero viceversa no es posible sin ningún tipo de formación horrible …

A2A

Es una pregunta ambigua. ‘Mejor’ es un término subjetivo que generalmente significa diferentes cosas para diferentes personas. Intentaría responderlo desde algunos puntos de vista:

Perspectivas de carrera : es difícil decir cuál tiene mejores perspectivas de carrera. Sería como comparar manzanas con naranjas (demasiado cliché …) pero realmente no hay comparación. Ambas prácticas tienen buenas perspectivas de futuro siempre y cuando seas bueno en lo que estás haciendo. Lo mismo ocurre con cualquier otra cosa en la vida. ¡¡Historia verdadera!!

Habilidades de codificación: Diría que si está utilizando una herramienta como Silenium, necesita tener un buen conocimiento de uno de los lenguajes de programación, preferiblemente Java. Mientras que las herramientas de HP como QTP y Load Runner necesitan un poco menos de habilidades de codificación ya que la ‘codificación’ toma una pequeña parte y todo lo que están utilizando se puede aprender rápidamente. Si desea utilizar jMeter, una pequeña codificación es suficiente en la mayoría de los casos.

Curva de aprendizaje : el rendimiento tiene una curva de aprendizaje mayor, ya que su trabajo no se limitará a crear y ejecutar scripts. Debería identificar los cuellos de botella, aprender a decodificar (¡sí!) Los requisitos comerciales en Requisitos no funcionales, necesitar saber cómo diferentes sistemas operativos (al menos Windows y un tipo de sistema operativo basado en Unix como Red Hat), necesitan saber cómo una base de datos funciona internamente, habilidades para comprender arquitecturas complejas rápidamente, etc.

Compensación : los probadores de rendimiento y automatización generalmente se pagan un poco más que los probadores de aplicaciones en India

Esas son las cosas en mi cabeza. Avísame si necesitas algo específico

Ambos tienen igual importancia

Automatización:

  • Las pruebas automatizadas son más confiables, ya que se realizan mediante herramientas y / o scripts.
  • Las pruebas automatizadas se ejecutan mediante herramientas de software, por lo que es significativamente más rápido que un enfoque manual.
  • Las pruebas automatizadas son más confiables, ya que se realizan mediante herramientas y / o scripts.
  • Las pruebas automatizadas se ejecutan mediante herramientas de software, por lo que es significativamente más rápido que un enfoque manual.
  • Las pruebas automatizadas no implican la observación humana y no pueden garantizar la facilidad de uso o la experiencia positiva del cliente.
  • El diccionario define la automatización como “la técnica de hacer que un aparato, un proceso o un sistema operen automáticamente”.
  • Definimos la automatización como “la creación y aplicación de tecnología para monitorear y controlar la producción y entrega de productos y servicios”.
  • Utilizando nuestra definición, la profesión de automatización incluye a “todos los involucrados en la creación y aplicación de tecnología para monitorear y controlar la producción y entrega de productos y servicios”; y el profesional de la automatización es “cualquier individuo involucrado en la creación y aplicación de tecnología para monitorear y controlar la producción y entrega de productos y servicios”.

Ventajas de la automatización de pruebas:

a) Rápido: las herramientas tienen una ejecución más rápida que los usuarios humanos

b) Confiable: las herramientas son confiables en cálculos y tareas complejas

c) Reutilizable: podemos reutilizar las pruebas automatizadas en cualquier número de veces

d) Repetible: podemos repetir las mismas operaciones durante el número requerido de veces

e) Programable: podemos usar sentencias de control de flujo para la lógica del aparato

f) Completo: también podemos ejecutar lotes de prueba sin interacción humana.

Los profesionales de la automatización son responsables de resolver problemas complejos en muchos aspectos vitales de la industria y sus procesos. El trabajo de los profesionales de la automatización es de vital importancia para la preservación de la salud, la seguridad y el bienestar del público y para la sostenibilidad y la mejora de nuestra calidad de vida.

El gobierno de los Estados Unidos, entre muchos otros, reconoce el valor desconocido de los profesionales de la automatización. El apoyo a la importancia de la automatización para la industria proviene del Comité de Asignaciones del Senado de los Estados Unidos. El 30 de junio de 2009, el comité presentó el lenguaje del informe (incluido el extracto que se muestra a continuación) para acompañar el proyecto de ley: HR 2847 (Ley de Asignaciones de Comercio, Justicia, Ciencia y Agencias Relacionadas, 2010) que enfatiza la importancia de la automatización para la industria:

“Apoyar a los fabricantes de la nación, especialmente a las pequeñas empresas, es fundamental para mantener a Estados Unidos innovador en un mercado global … MEP, NIST y sus socios están dirigidos a considerar la importancia que juega la automatización en la aceleración e integración de los procesos de fabricación. El tema de la automatización abarca todos los niveles de la industria, en lugar de servir como una tecnología independiente, y afecta particularmente los campos de seguridad cibernética de sistemas de control, sensores inalámbricos industriales, interoperabilidad de sistemas y otras tecnologías de automatización básicas necesarias para el éxito de la industria. empresas. Se alienta al NIST a consultar y colaborar con expertos independientes en el campo de la automatización para apoyar los esfuerzos de la agencia en el trabajo con la industria para aumentar la innovación, el comercio, la seguridad y el empleo “.

Los profesionales de la automatización desempeñan y seguirán desempeñando un papel crucial para protegernos del ataque cibernético; mejorando nuestra calidad de vida; y garantizar la confiabilidad, eficiencia, seguridad, mejora constante y competitividad de nuestros sistemas de energía eléctrica, sistemas de transporte, operaciones de fabricación e industria en general. Sin estos individuos, no podemos avanzar hacia el futuro.

Pruebas de rendimiento:

La prueba de rendimiento es la prueba, que se realiza, para determinar cómo están funcionando los componentes de un sistema, dada una situación particular. El uso de recursos, la escalabilidad y la confiabilidad del producto también se validan en esta prueba. Esta prueba es el subconjunto de la ingeniería de rendimiento, que se centra en abordar los problemas de rendimiento en el diseño y la arquitectura del producto de software.

Objetivo de prueba de rendimiento:

El objetivo principal de las pruebas de rendimiento incluye establecer el comportamiento de referencia del

sistema. Hay una serie de puntos de referencia definidos por la industria, que deben cumplirse durante las pruebas de rendimiento.

Las pruebas de rendimiento no tienen como objetivo encontrar defectos en la aplicación, sino que abordan una tarea un poco más crítica de probar el punto de referencia y el conjunto estándar para la aplicación. La precisión y la supervisión estrecha del rendimiento y los resultados de la prueba es la característica principal de las pruebas de rendimiento.

Importancia de las pruebas de rendimiento:

El rendimiento de las aplicaciones tiene un gran impacto en la calidad y popularidad general, especialmente en los casos en que las organizaciones dependen de TI para las principales actividades comerciales.

Los clientes tienen una expectativa clara cuando se trata de calidad y se han vuelto más exigentes.

Cada cliente busca una aplicación confiable y rápida; Las pruebas de rendimiento aseguran que todas las aplicaciones funcionen de manera óptima y estén disponibles y sean rápidas.

La necesidad de eliminar los cuellos de botella se ha vuelto mayor en este competitivo mundo de los negocios. Las pruebas de rendimiento aseguran que se identifiquen y eliminen los cuellos de botella antes de que la aplicación entre en la etapa de producción.

El incumplimiento de las condiciones del acuerdo de nivel de servicio se puede evitar mediante pruebas de rendimiento de las aplicaciones.

Es como comparar manzanas con naranjas. Las pruebas de rendimiento y la automatización son dos cosas completamente diferentes. La prueba de rendimiento es una técnica de prueba no funcional que se realiza para determinar los parámetros del sistema en términos de capacidad de respuesta y estabilidad bajo diversas cargas de trabajo. Las pruebas de rendimiento miden los atributos de calidad del sistema, como la escalabilidad, la confiabilidad y el uso de recursos.

La prueba de software automatizada es un proceso en el que las herramientas de software ejecutan pruebas preescritas en una aplicación de software antes de que se lance a producción. Cada grupo de desarrollo de software prueba sus productos, pero el software entregado siempre tiene defectos. Los ingenieros de prueba se esfuerzan por atraparlos antes de que se lance el producto, pero siempre se arrastran y a menudo reaparecen, incluso con los mejores procesos de prueba manual. El software Test Automation es la mejor manera de aumentar la efectividad, la eficiencia y la cobertura de sus pruebas de software.

Cualesquiera que sean sus requisitos, QualityKiosk Technologies lo ayudará en las pruebas de rendimiento, así como en la automatización de pruebas, ¡ya que lo hemos estado haciendo durante los últimos 16 años! Contáctenos para cualquier consulta relacionada con el rendimiento o la automatización.

Las pruebas de automatización son mejores que las pruebas de rendimiento.

Beneficios de las pruebas de automatización de software

1. La automatización de pruebas le permite a uno lograr pruebas detalladas del producto con una reducción significativa en el tiempo del ciclo de prueba.

2. La eficiencia de las pruebas automatizadas incorporadas en el ciclo de vida del producto puede generar ahorros sostenibles de tiempo y dinero.

3. Pruebas mejores y más rápidas.

4. Es posible la validación rápida de los cambios de software con cada nueva versión de la aplicación.

5. Las pruebas automatizadas aumentan la importancia y precisión de las pruebas y dan como resultado una mayor cobertura de pruebas.

6. Las pruebas automatizadas ofrecen un nivel de consistencia, que no se puede lograr mediante el uso de pruebas manuales.

7. Las pruebas automatizadas eliminan las limitaciones de tiempo asociadas con las pruebas manuales. Los scripts se pueden ejecutar en cualquier momento sin intervención humana.

8. Los scripts de prueba automatizados son reutilizables y pueden usarse en diferentes escenarios y entornos.

9. Productividad mejorada.

10. La automatización elimina muchas de las funciones mundanas asociadas con las pruebas de regresión.

Gracias A2A

Las pruebas de rendimiento y las pruebas de automatización son campos completamente diferentes.

La prueba de rendimiento es la prueba del servidor de la aplicación, mientras que la prueba de automatización es solo para la funcionalidad de la aplicación. Entonces, podemos decir que ambos son complementarios entre sí.

Es muy difícil decir cuál es mejor.

Feliz prueba

Ambos tienen igual importancia. No hay comparación entre dos.
En términos de oportunidades de trabajo, puede obtener trabajos lucrativos a través de ambos.
Es totalmente su decisión lo que quiere hacer, sugeriría aprender scripting en Core Java y luego puede aprender cualquiera de las herramientas (para pruebas de automatización O para pruebas de rendimiento)
Nota: cualquiera que elija, aprenda una herramienta de código abierto porque las herramientas de código abierto proporcionarán más oportunidades.
Espero que esto ayude.

More Interesting

¿Debería concentrarme en mi carrera o entablar una amistad / relación con mi enamorado? Soy un ingeniero de software de 27 años en India.

¿Debo dejar mi trabajo si no estoy contento y trabajo como freelance? ¿Es esta una buena decisión?

¿Vale la pena cambiar una carrera de programador de software con más de 6 años de experiencia a Business Analytics?

Cómo convertirse en un excelente programador

¿Qué conocimientos básicos debo tener para ser ingeniero de software en Google? Actualmente soy un estudiante universitario con 0 conocimientos de programación

¿Qué tipo de pasantías debe hacer un estudiante de ciencias de la computación interesado en la ingeniería de confiabilidad del sitio?

¿Debo convertirme en diseñador de interfaz de usuario?

¿Cómo funciona la economía de la industria del software y la tecnología?

Trabajo en la industria de petróleo y gas en controles de proyectos con 7 años de experiencia. ¿Cómo uso esta experiencia para ingresar a la industria del software?

¿Puede uno convertirse en un ingeniero de software exitoso sin completar un título?

¿Qué tipo de trabajos existen en Google para las personas con 20 años de experiencia en desarrollo de software en diversas tecnologías como .Net, sql, BI, ETL, etc.?

¿Cuáles son buenas maneras de ser un desarrollador de pila completa sin ninguna experiencia de inicio?

¿Qué tipo de programador debería ser?

¿Qué tan pronto antes de graduarme debo comenzar a buscar trabajos [de desarrollador de software]?

¿Cómo se convirtió India en una potencia de software?