15

He estado trabajando como probador manual y documentación (planes de prueba, etc.) en el departamento informático/de TI de una empresa. No tengo una gran experiencia en programación, pero quiero aprender el (los) lenguaje (s) de programación y la (s) herramienta (s). Por lo tanto, estoy buscando herramientas de prueba automatizadas y lenguaje (s) de programación para aprender que también me dan una ventaja industrial.Idioma para aprender a pasar de las pruebas manuales a la automatización/programación

Algunos puntos a tener en cuenta son:

  1. Necesito saber qué herramientas son las más comunes en la industria y lenguajes asociados con esas herramientas.
  2. No tengo mucho tiempo para aprender muchas cosas. Por lo tanto, estoy buscando herramientas que usen lenguajes que sean beneficiosos para aprender en caso de que quiera hacer más programación.
  3. Preferiría las pruebas de aplicaciones basadas en web, pero eso no es una limitación.
  4. Puede dar 2-3 idiomas, ya que entiendo que no puede haber un ganador.
  5. He hecho algo de QTP que usa VBScript, pero VBScript no se usa ampliamente. Quiero aprender un idioma que tenga una base más amplia.
  6. Aún así, dé sus sugerencias e ideas, incluso si esta pregunta parece realmente difícil de responder.

Gracias de antemano.


EDIT: Creo que hasta ahora he decidido que voy a ir a por:

  1. QTP
  2. selenio
  3. Test Driven Metodologías de Desarrollo

I solo necesita descubrir un buen lenguaje de programación que me da un margen de programador y es adecuado para múltiples herramientas de prueba (incluido el Selenio). Tal vez Python, Ruby o Java?

+0

Creo que hasta ahora he decidido ir por: 1. QTP, 2. Selenium, 3. Pruebas de Metodologías de Desarrollo. Solo necesito encontrar un buen lenguaje de programación que me brinde una ventaja para el programador y es adecuado para múltiples herramientas de prueba (incluyendo Selenium). Tal vez Python, Ruby o Java? – SKA

+0

De esos 3 escogería java. Yo afirmaría que tiene las herramientas de prueba automatizadas más establecidas. Aunque Ruby y Python tienen una barrera más baja para entrar. –

+0

Gracias. ¿Qué hay de C# y nUnit? – SKA

Respuesta

11

Wow, esta es una pregunta bastante amplia. Diría que estaba en una buena posición a medida que la industria avanza hacia un modelo Test Driven Development (o escriba sus pruebas antes de su código).

Antes que nada, querrá saber acerca de Unit Testing, Continuous Integration y Web Automation.

voy a centrarse en las áreas que conozco (.NET, Java, JavaScript, Construir automatización, selenio)

  1. En .NET NUnit es probablemente el marco de la unidad de pruebas más ampliamente utilizado. Es un puerto (copia de) JUnit en el mundo de Java. La mayoría de los marcos de prueba de unidades son muy similares a estos en términos de conceptos. Así que aprende uno y no te llevará mucho tiempo recoger a los demás.
  2. Creo que leer los enlaces de arriba y tener una idea acerca de estos conceptos lo pondrá en su camino. Probablemente valga la pena experimentar con Python o Ruby, ya que tienen pocas barreras de entrada para realizar algunas pruebas sencillas.
  3. Para las pruebas basadas en web, las más conocidas son probablemente Selenium y Watin. Estos le permiten programar navegadores para realizar acciones automáticamente. Sin embargo, he encontrado muy pocos buenos usos de estos y son muy complicados (está hablando de días/semanas de esfuerzo) para configurar y ser útiles. De nuevo, los conceptos detrás de estos son similares sea cual sea el marco que use.

    Piense en respondí 4,5,6 1,2,3 :-)

HTH

+0

Gracias por la idea de TDD. Creo que la mayoría de las empresas actuales se están volviendo ágiles. Necesito aprender eso. – SKA

+0

Agile significa muchas cosas diferentes para diferentes personas. En mi experiencia, ágil a menudo puede significar "simplemente hazlo" cuando de hecho es un proceso estricto. Agile tampoco es una bala mágica, las técnicas anteriores te ayudarán con la agilidad, pero lo más difícil es la disciplina. –

2
  1. Selenium es muy popular para las pruebas automáticas en el nivel de control de calidad.
  2. No importa lo que hagas, habrá alguna curva de aprendizaje asociada a tu solución
  3. El objetivo de Selenium es proporcionar un marco de prueba para webapps: utilizas Selenium para manipular elementos DOM en el navegador, sin ejecutar versión de su aplicación.
  4. Selenium es un modelo cliente/servidor (ejecuta el servidor en algún lugar que tiene acceso a su instancia de aplicación de control de calidad, codifica sus pruebas utilizando las bibliotecas cliente) que proporciona a los clientes en varios idiomas (Java, Ruby, etc.)

  5. Este tipo de prueba es una buena idea si tiene recursos de control de calidad dedicados que pueden escribir código. Proporciona algunas pruebas de regresión de alto nivel. Sin embargo, no deja de tener sus desventajas: (1) las pruebas pueden llevar un tiempo, (2) es posible que deba realizar algunos cambios en los elementos dom de la aplicación web para usar el marco fácilmente, (3) el cambio de la aplicación web requerirá cambiando su código de prueba, que puede ser no trivial.

Su otra opción es escribir pruebas de unidad para el código de la aplicación. Por lo general, los desarrolladores hacen esto como parte de un proceso basado en pruebas. Entonces, hay TDD para desarrolladores y luego pruebas automatizadas de QA para control de calidad.

+0

Gracias por la idea de Selenio. Creo que definitivamente voy a bucear junto con QTP. – SKA

3

En cuanto a la 'ventaja industrial' que depende de lo que quiere decir con eso.

Para grandes empresas QTP es ampliamente utilizado. Lo que hay que aprender con QTP no es realmente el lenguaje, sino la herramienta en sí misma. Para mí fue más problemático superar las especificaciones de la herramienta que aprender VBscript. Si piensas en las pruebas de rendimiento, probablemente PerformanceCenter sea la opción. Aquí tiene C como lenguaje, pero una vez más, hay más dificultades con una herramienta que con un lenguaje. En algunas empresas hay stack de IBM, por lo que el software Rational viene a jugar (FunctionalTester, Robot, PerformanceTester). También hay un poco de complejidad de la herramienta para completar (IBM Redbobks puede ayudar).

En las empresas más pequeñas Java/C# podría ser beneficioso. Aquí puede familiarizarse con junit/nunit/TestNG/MSTest. Para webapps vale la pena mirar cosas como Selenium/Watij/Watin/Fit/Fitness/Concordian. Si tiene un momento, mire AutoIT, PowerShell, Python, Fiddler, Jmeter, Abbot, Watir/Cucumber, Sikuli.

También hay muchas otras herramientas como WebAii, TestComplete, Twist ... algunas otras herramientas comerciales. Por lo general, puedes obtener pruebas para que jueguen con ella durante una semana o dos.

Todo depende de a qué tipo de proyecto estará expuesto y qué tipo de compañía será.

En cualquier caso, en mi opinión, es suficiente aprender Java/C# hasta cierto punto.No necesita ser C#/Java ninja, conocer todas las bibliotecas y estudiar un lenguaje realmente difícil. Verá, desarrollar software es más que conocer un lenguaje de programación, y la automatización de pruebas es más que conocer una herramienta/lenguaje (M. Fewster & D. Graham), así que no se obsesione con eso. Si puede programar secuencias de comandos en QTP (sin grabar pero con el programa, usando la Programación descriptiva, descomponiendo la lógica en bibliotecas, teniendo control total de TestResults a través de métodos apropiados, etc.), otras herramientas no serán un problema. Es posible que necesite una semana o dos para aprender los conceptos básicos de un idioma determinado, pero eso es todo por automatización de prueba (al menos para empezar). Necesita más experiencia, conocer herramientas, conocer conceptos, conocer los pros y los contras de los diferentes enfoques, tener una imagen más grande en la cabeza, que simplemente 'cómo escribo esto en ese idioma' (tiene SO para esto : D).

+0

Creo que tienes razón. QTP es una necesidad.Estoy buscando un buen lenguaje de programación para unir mi experiencia de no programación ahora. – SKA

+1

Vaya con Java/C#, y sumérjase en TDD, BDD, ATDD y otras cosas ágiles. – yoosiba

+0

Sí. Estaba pensando C# con nUnit. Esto es difícil a pesar de Java Vs C#. – SKA

3

La respuesta a esta pregunta realmente depende de un par de cosas. Primero, ¿qué tipo de prueba estás haciendo? ¿Está probando aplicaciones basadas en web? Probando bibliotecas/componentes de un programa más grande? Prueba GUI? ¿Estás probando aplicaciones de línea de comandos?

he encontrado los siguientes útil para crear secuencias de comandos/instalaciones de pruebas automatizadas:

TCL - TCL puede interactuar con la línea de comandos con tanta facilidad como un archivo por lotes, pero tiene un poderoso lenguaje que sopla por lotes fuera del agua (incluidas las capacidades de GUI). Si está creando aplicaciones de consola basadas en Windows (ya sea para probarlas o para usarlas para probar otra cosa), le recomiendo tomarse el tiempo de usar TCL.

AutoIt - Este lenguaje de scripting le permite automatizar la interacción de UI con aplicaciones de Windows de forma rápida y sencilla. También es bastante fácil de aprender. Si desea tomarse el tiempo y la molestia de desarrollar una utilidad para raspar pantallas, puede combinarla con AutoIt para crear algunos sistemas de prueba bastante sofisticados.

C - Cuando pruebo bibliotecas compiladas, he tenido un sorprendente grado de éxito usando buen 'ol C. Escribiré el esqueleto básico para una aplicación de prueba y crearé una utilidad con guiones que generará dinámicamente el resto del código en función de qué pruebas deben ejecutarse (le doy una biblioteca de ejemplos de fragmentos de código C que puede usar para tareas más complicadas).

Ruby - Cuando realiza pruebas automáticas, un lenguaje de scripting robusto puede llegar muy lejos. Ya sea que necesite analizar los registros de prueba, generar informes o generar automáticamente scripts de prueba, un lenguaje de scripts que conozca bien puede ahorrarle mucho tiempo y dolor de cabeza. Mi idioma de elección es Ruby, pero otros en mi empresa prefieren otros idiomas como Perl o Python. La elección del idioma no es demasiado importante, elija uno y apréndalo bien.

Dependiendo de qué es lo que está probando, también puede tener algún tipo de herramientas de prueba integradas en el código que está probando. El código Java a veces se escribe con pruebas JUnit, el código Ruby puede usar el marco Test :: Unit, etc. Here es una lista de marcos de prueba de unidades para una amplia variedad de idiomas. Si el código que está probando se creó teniendo en cuenta las pruebas unitarias, querrá aprender el idioma en el que se escribió el código para que pueda aprovechar estas pruebas unitarias.

+0

Haré principalmente la funcionalidad de aplicaciones web. – SKA

+1

Con respecto a Tcl, no es el único lenguaje como ese. Perl y Python funcionan muy bien en el mismo rol. En su caso, sugeriría Python en lugar de Perl o Tcl, ya que Python es un mejor puente para la programación. –

+0

Gracias. Mi esposo ama a Python. – SKA

3

Para realizar pruebas basadas en web, es posible que desee consultar fitnesse. Además, un marco de prueba automatizado basado en python es el robot framework.

0
  • Sí se puede aprender IDE selenio, Su justo como un complemento en el navegador Firefox, con el que puede grabar sus pruebas y reproducirlos cuando sea necesario. La limitación de IDE es que solo se puede usar en Firefox.

  • Si quiere probar en varios navegadores, necesita Selenium Grid o WebDriver, que requieren un conocimiento de Java. Y una vez más, no es necesario ser un profesional de Java para hacer esto, un simple aprendizaje ayudará.

  • Puede buscar tutoriales de selenio en youtube.com.

Ventajas de Selenio:

  1. Su Abrir sourse !!
  2. Es fácil de aprender e implementar ...
  3. Admite múltiples navegadores.
  4. Admite múltiples lenguajes de scripting/programación.
  5. Flexible a su elección, grabación y reproducción simples (IDE), diseño de Comple Framework a su elección mediante el uso de su lenguaje de programación favorito.
  6. Admite la ejecución parellel.

Espero que esto te ayude.

1

también conllevan un pequeño comentario

Hay una nueva plataforma XML2Selenium la automatización de pruebas

Esta plataforma se construye en la parte superior del marco de classis Selenio y ofrece muchas características útiles

pero es bastante fácil de usar

no es necesario para aprender cualquier java o ruby ​​- usted puede escribir en XML

SMTH así:

<!-- here we have some imports Frame - is like a class, you can extend it with extends --> 
<import resource="Demo.a-server/03Registration/framesRegist.xml" name="frames"/> 
<import resource="Demo.a-server/01Action/FramesAction.xml" name="framesAct"/> 
<import resource="Demo.a-server/03Registration/FramesLogin.xml" name="framesLog"/> 

<property resource="Demo.a-server/LogValue.properties" name="logValue"/> 
<test name="creatAction" description="create and check action"> 

<frame extends="frames:logAdmin"/> 
<frame extends="framesAct:createAct"/> 

// here we upload the image 
<upload id="img_id0" resource="image.jpg"/> 

// click save button with id=save 
<button id="save" /> 

// make a screen shot 
<screenshot/> 

// sleep for 3 seconds 
<pause time="3000" /> 

// make a screenshot again 
<screenshot/> 

// navigate to the given URL: 
<navigate to="${logValue.baseUrl}/admin"/> 

<frame extends="framesLog:logOutAdmin"/> 
<pause time="1000"/> 
</test> 

Aquí se puede ver el informe de errores: http://xml2selenium.com/demored/xml2selenium/

Y aquí se puede ver el informe con el estado de éxito: http://xml2selenium.com/demogreen/xml2selenium/

PS: Es compatible con las pruebas en todos los navegadores , no solo en Firefox como Selenium IDE

Cuestiones relacionadas