testing - software - Pruebas manuales Vs Pruebas automatizadas
testing automatizado (7)
Las pruebas se pueden clasificar principalmente en pruebas manuales y automatizadas. Con respecto a esto, algunas preguntas vienen a la mente.
Incluyen:
¿Cuál es la diferencia básica entre los dos tipos de pruebas?
¿Cuáles son los elementos de los desafíos involucrados en las pruebas manuales y automatizadas?
¿Cuáles son los diferentes conjuntos de habilidades requeridas por un probador de software para las pruebas manuales y automatizadas respectivamente?
¿Cuáles son las diferentes perspectivas de empleo y oportunidades de crecimiento entre los evaluadores de software que realizan pruebas manuales de pruebas automáticas, respectivamente?
¿Está la prueba manual por debajo de la calificación a la prueba automatizada en alguna forma? Si es así, ¿cómo?
¿Qué tan diferentes son los probadores manuales tratados en comparación con los comprobadores automáticos en el mundo corporativo? (Si realmente se diferencian en algún término como tal)
Bueno, solo puedo hablar de mis opiniones y experiencias, y solo soy un desarrollador que ha trabajado bastante con probadores e ingenieros de control de calidad. De todos modos, mi 2c:
La diferencia más básica se hace a mano, y la automática se hace por computadora :) Como consecuencia, el proceso de prueba manual puede ser de una magnitud más lenta que uno completamente automático. Por otro lado, las pruebas automatizadas solo pueden detectar los problemas que debían detectar y no pueden detectar el comportamiento fundamentalmente nuevo de un sistema. Básicamente, eso significa que las pruebas automatizadas son ideales para las pruebas de regresión, cuando se sabe qué se debe hacer, cómo y cuáles deben ser los resultados.
En cuanto a los conjuntos de habilidades, las pruebas manuales pueden ser realizadas básicamente por cualquier persona con la mentalidad correcta, mientras que las pruebas automáticas deben ser realizadas por alguien con al menos alguna experiencia de desarrollador. Existen marcos que permiten la grabación fácil de pruebas web automatizadas, por ejemplo, pero, a menudo, es necesario ajustar los escenarios registrados para satisfacer mejor las necesidades de las pruebas. Por supuesto, las habilidades básicas necesarias para las pruebas también deben estar presentes en cualquier persona que desee un trabajo en control de calidad, como la paciencia, la atención al detalle, las grandes habilidades de organización, las grandes habilidades de comunicación, etc.
Y por último, no creo que las pruebas manuales estén subestimadas; en todo caso, creo que las pruebas automatizadas están infrautilizadas en la mayoría de los entornos corporativos que he visto. Pero sí, algunas personas (en su mayoría gerentes, para ser honestos) interpretan mi párrafo anterior como "cualquiera puede hacer pruebas manuales".
La única forma de escribir todas las pruebas de manera objetiva es omitir una fracción significativa de los detalles necesarios para garantizar que el software sea adecuado para su propósito. El resultado es casi siempre un software que tiene que pagar a alguien una tarifa por hora para usar.
Esto no siempre puede ser un problema, pero el conjunto de casos en los que se encuentra es una parte bastante grande de la industria del software.
La diferencia más básica es cómo se verifica la prueba. ¿Se realiza a través de un control programático o se realiza una inspección humana?
El gran desafío con las pruebas automatizadas es lograr que las pruebas manuales sean automatizadas y garantizar que no sea necesaria una interpretación humana del resultado, por ejemplo, si un programa involucra una salida de audio o video, esto puede ser muy difícil de verificar exactamente.
Ambos requieren una atención al detalle, paciencia y habilidades de organización para tener credibilidad al decir: "Sí, este es un producto / servicio de alta calidad". Las diferencias pueden venir cuando las pruebas automatizadas usan software especial por lo general.
Las pruebas manuales pueden ser costosas, ya que hay alguien que observa las pruebas que se están ejecutando, mientras que las pruebas automatizadas generalmente se pueden ejecutar sin que alguien las vea. Sin embargo, las pruebas manuales pueden ser subestimadas cuando se trata de áreas donde las cosas pueden ser muy subjetivas, como el estilo de las páginas web o qué tan bien suena esta canción si le hacemos estos cambios. Esos serían donde vería a un ser humano preferido sobre una máquina.
En cuanto a las trayectorias profesionales y las oportunidades laborales, esta es, hasta cierto punto, una pregunta abierta. Como no todos los lugares contratan a los evaluadores y, en ocasiones, a los evaluadores solo se les presenta según sea necesario para los proyectos, hay diferentes perspectivas en las pruebas. Esto es sin entrar en la pregunta de cuánto deben los desarrolladores escribir sus propias pruebas y, ¿esto también hace que un desarrollador sea un probador? Supongo que esto no está respondiendo a su pregunta porque lo estoy viendo en la escala más grande de quién está haciendo las pruebas, ya que eso es algo más que debe considerar aquí.
La prueba automatizada es cualquier tipo de prueba en la que está utilizando una pieza de código / programa para probar otra pieza de código / programa. Esto puede ser una prueba de unidad como se describe anteriormente, o puede ser a través de una herramienta de automatización específica, como TestComplete, QTP, Selenium, etc. Las pruebas de unidad tienden a ser creadas y ejecutadas por el desarrollador del código en cuestión, mientras que la automatización de GUI probablemente será realizado por un especialista en control de calidad de software. Ciertos tipos de pruebas, como las pruebas de rendimiento y regresión, son muy adecuadas para la automatización, mientras que otras, como las pruebas de usabilidad, no lo son.
La prueba manual es un proceso en el que una persona prueba directamente una pieza de software, a menudo realizando el tipo de acciones que el usuario final puede realizar. Muchos evaluadores profesionales, como los que participan en las pruebas exploratorias, sugerirían que, si bien las pruebas unitarias son rentables, las pruebas manuales son igualmente importantes y rentables.
Para obtener información maravillosa sobre las dificultades de las pruebas automatizadas, debe leer el blog reciente de Linda Wilkinsons . Otros buenos recursos para leer incluyen discusiones del club de pruebas de software y la parte de pruebas automatizadas de SQAForums .
Si aún no lo ha hecho, vale la pena unirse a SQAforums para hacer preguntas relacionadas con lo que está involucrado en las pruebas, así como para las perspectivas de empleo.
Las pruebas automatizadas (especialmente las pruebas unitarias automatizadas) son buenas porque significa que puede realizar pruebas antes en el ciclo de desarrollo y puede realizar pruebas regularmente; permite a los desarrolladores identificar dónde han cometido errores antes de involucrar al equipo de control de calidad. Pero eso no significa que el control de calidad sea innecesario. Además de garantizar que las pruebas automatizadas sean adecuadas, también está la cuestión de determinar si la aplicación está haciendo lo que debe; Es bastante raro que se entienda completamente.
También es difícil probar automáticamente las interfaces de usuario. Por ejemplo, evaluar si un ícono es adecuadamente significativo y está bien ubicado es una cuestión para las personas, no para las computadoras, porque a la computadora no le importa pero al usuario sí.
Para responder solo la primera de sus preguntas: la diferencia básica es que las pruebas manuales se parecen a las pruebas, mientras que las pruebas automatizadas (generalmente) son las pruebas. Si no puede escribir una especificación completa y detallada de las pruebas que se ejecutarán, entonces realmente no está realizando pruebas. Y si puedes puedes hacer pruebas automatizadas. Esto es cierto ya sea que su script de prueba sea ejecutado por un programa o una forma de vida basada en carbono que lo sigue de manera rígida.
Te dejaré que adivines mis respuestas al resto de las preguntas de la premisa básica que he establecido.
- La ventaja principal con las pruebas automatizadas es que puede realizar pruebas de regresión rápidamente. El desarrollador puede verificar la funcionalidad anterior, si funciona bien o no después de agregar nuevas funcionalidades al sistema.
- Por lo tanto, cuando trabaja con una fecha límite ajustada, mediante el uso de herramientas de automatización puede reducir su esfuerzo de prueba ... así que en ese momento debe verificar solo aquellas funciones para las que no ha creado scripts de prueba automatizados. (Al igual que con las pruebas de notificaciones de correo electrónico / SMS, compatibilidad del navegador / interfaz de usuario, etc., etc.)
- Hoy en día, muchas compañías están usando herramientas de automatización de código abierto (como Selenium, OpenSTA, JMeter, etc.) para sus esfuerzos de prueba normales. Así que es mejor si sabes cómo probar una aplicación utilizando estas herramientas gratuitas en lugar de herramientas pagadas.