2010-05-13 25 views
5

Nos gustaría crear algunas pruebas automatizadas simples que serán creadas y mantenidas por los evaluadores. En este momento tenemos un verificador que puede codificar en cualquier idioma, pero en el futuro podríamos desear que cualquier probador con un conocimiento limitado de programación pueda agregar o modificar las pruebas.¿Qué es un buen lenguaje de programación para probadores que no son grandes programadores?

¿Qué es un buen lenguaje de programación para probadores que no son grandes programadores o programadores en absoluto?

Alguien sugirió LUA, pero busqué en LUA y podría ser más complicado que en otro idioma.

Preferiblemente, el idioma se interpretará y no se compilará. Déjame saber lo que piensas.

Actualización: C y C++ están bajo el capó. Nadie aspira realmente a ser un programador ... podría ser algo en lo que podrían trabajar si pueden manejar la tarea.

Actualización 2: soy un ingeniero de software que actualmente es un probador. Estoy muy bien informado sobre todo el ciclo de vida ... incluyendo el desarrollo de código, así que para mí podría ir con cualquier idioma pero estoy tratando de pensar en otros probadores que no están tan bien informados sobre programación como yo.

Actualización 3: El lenguaje deberá poder hacer llamadas al código C++ fácilmente.

+2

-------- ¡Python! – Nix

+3

Seguramente depende del lenguaje utilizado en el sistema bajo prueba? –

+1

Las pruebas deben ser escritas preferiblemente por grandes programadores. Calidad sobre cantidad. –

Respuesta

4

Siempre recomiendo Python.

La gente siempre piensa que estoy loco, pero es la forma más fácil y flexible de mostrar a las personas. Y siempre se puede diseñar algún tipo de marco de "prueba", y solo exponerlos a un subconjunto muy pequeño de él.

Y siempre se puede hacer referencia a:

alt text http://images.barnesandnoble.com/images/16900000/16904769.JPG

+0

+1 para python, -1 para cualquier cosa "para tontos" – Earlz

+0

Odio los libros, las personas que los leen, pero me encanta su imagen. ;) La mayoría de los otros libros "nerd" tienen portadas bastante flojas. – Nix

+0

Estoy de acuerdo, y si realmente eres un maniquí es fácil de entender. –

1

depende un poco de lo que quiere, pero para mi dinero Ruby es probablemente la lengua más comprensible alrededor.

Además, si está trabajando con material web, entonces Watir le ofrece una gran cantidad de funciones de prueba allí.

+0

... y muchos frameworks de prueba disponibles. P.ej. Pepino (http://cukes.info). – nathanvda

+0

No estoy de acuerdo con la declaración del 'lenguaje más comprensible'. Francamente, siempre he encontrado que los bucles de Ruby son incómodos y el uso de la puntuación dentro de los nombres de los métodos también es cuestionable. –

+0

A juzgar por su representante SO, usted es un buen programador, sin embargo, Matthieu M. Las cosas que son obvias y/o cuestionables para usted pueden no ser obvias para quienes no son programadores o para alguien con experiencia en programación muy limitada. – glenatron

5

Es posible que ni siquiera necesita el lenguaje en función de lo que se está probando puede utilizar Las herramientas de modelado de prueba como CubicTest: http://cubictest.seleniumhq.org/

Te recomiendo que comprobar que, si usted está haciendo las aplicaciones web.

Nuestro equipo de control de calidad tuvo un gran éxito.

De lo contrario, recomendaría un dominio específico del lenguaje más de un idioma de uso general en su dominio del problema. El DSL en realidad podría ser un subconjunto de una GPL (por ejemplo, Rake for Ruby) así que busca con cuidado.

Si no puede encontrar una DSL existente a continuación:

  • Crear una conexión DSL para sus probadores que utilizan Rubí o Esquema.Esos dos idiomas son el más fácil de crear idiomas específicos del dominio.

  • Python Si todo lo demás falla y necesitan una GPL, Python es el idioma más fácil de aprender en mi humilde opinión.

EDITAR - Sobre la base de sus requisitos actualizados, Python podría ser la mejor opción. Me ha resultado muy fácil llamar a C o C++ con Python CTypes. Sin embargo, estoy seguro de que Ruby tiene algo igualmente bueno.

1

Si su ambición es convertirse en un programador, le sugiero usar el lenguaje del sistema que está probando.

La experiencia te convertirá en un mejor programador, y el conocimiento solo puede hacerte un mejor probador.

+0

buenos programadores casi nunca son buenos testers – Earlz

+0

es por eso que tenemos ingenieros de software –

+0

verdaderos ingenieros de software, no personas de informática que afirman que son ingenieros de software. –

0

Creo que la mejor pregunta podría ser qué piensas hacer con los programas creados. He hecho Java, html, css, php, mysql, vb, C#, etc., etc. De todos ellos, los elementos fundamentales siguen siendo los mismos. Siempre tienes el mismo tipo de lógica de un idioma a otro. SI ES LO QUE DECIR, para bucles, etc. Sin embargo, si no planeas crear programas de carga automática, entonces buscarías algo que no haría eso.

Persoanlly Java es difícil pero permite una gran portabilidad. No vaya solo con lo que es más fácil, porque es posible que no pueda hacer nada con eso en el futuro.

EDITAR *

si usted todavía está interesado, Java tiene la capacidad de hacer llamadas a C++, pero no sin su parte de problemas. Link este enlace tiene un aspecto al hacer llamadas, pero podría ser un poco demasiado complicado si solo deseas mostrar la programación introductoria.

+0

Java es demasiado difícil para que un no programador comience a involucrarse. No es realmente el lenguaje en sí mismo, pero configurarlo todo es un gran dolor ... asegurarse de tener el JRE, JDK correcto, etc. la mayoría de la gente ni siquiera puede distinguir qué es qué. Quiero que el probador sea capaz de decir descargar, instalar, escribir, ejecutar, hacer ... no tener que preocuparse por las estúpidas versiones de JRE y toda esa porquería. –

+0

P.S. Me encanta Java y lo uso mucho para el software interno, pero definitivamente no satisface las necesidades aquí. –

1

Python es un lenguaje muy simple y útil de entender. Algunos incluso lo comparan con la escritura de pseudocódigo. También viene con su propio unit testing framework.

EDITAR: También viene con un C API.

2

Creo que antes de elegir realmente un idioma, debemos definir aún más precisamente lo que está buscando.

  • Basura recogida, ya que no queremos que la gente tenga que entender la gestión de memoria !!
  • buen número de módulos/bibliotecas de todo, a fin de no reinventar la rueda
  • Preferiblemente subir con marcos de prueba de unidad ya existentes (y probados)
  • buena documentación para los módulos/bibliotecas
  • Preferiblemente secuencias de comandos idioma, ya que las pruebas tienen que ser modificados/correr rápidamente
  • fácil interacción con C/C++, aunque los desarrolladores tendrán que proporcionar la interfaz

Y, quizás lo más importante de todo:

  • personas claros y sintaxis "Inglés-like", por lo que será (al menos) legible por no tecnológico

Sobre la base de esta lista, recomendaría Python.

  • Es quizás el lenguaje de programación (que ha alcanzado una masa crítica) que es el más cercano a las expresiones tradicionales de inglés/algoritmo. Sin duda, es uno de los que tiene menos signos de puntuacion/símbolos extraños que arrojan no programadores
  • Viene de inmediato con tantos módulos que es poco probable que tenga que cavar más en el futuro ... que comprende un módulo unittest
  • El documentation es muy buena, en general, ilustrado con ejemplos
  • es bastante simple para interactuar con C
  • incluso puede ejecutar scripts de Python desde Java que utiliza JPython;)

Tenemos un in- software de la casa para nuestros no regresivos en las pruebas. Si bien ha sido programado en Java (probablemente para la parte de la GUI y el requisito de portabilidad de Windows/Unix), Python ha sido elegido como el lenguaje para usar dentro de las pruebas de no regresión.

Esto es utilizado principalmente por nuestra gente de control de calidad, e incluso los principiantes suelen hacerlo con bastante facilidad, incluso cuando no tienen ningún fondo de programación en absoluto.

Nota: No tengo ninguna experiencia práctica con LUA, por lo que no puedo elegir entre Python o LUA. Sin embargo, al usar Python y Ruby, debo decir que he encontrado que Python es mucho más legible (construcciones de bucle/puntuación). Solo asegúrese de no recoger Perl;)

+0

Haces algunos puntos muy buenos aquí. 1. No puedo hacer que los probadores se preocupen por la basura de la memoria. Se debe tener en cuenta toda la memoria para el probador. 2) Una buena cantidad de módulos es esencial para ser incorporados porque digamos que tienen que extraer algunos archivos de un archivo zip y colocarlos en el escritorio como primer paso, entonces será mejor o no funcionará. 3) el lenguaje de guiones es imprescindible, 4) marcos de prueba unitarios ... realmente no me importa, probablemente no los use. 5) También es necesario interactuar fácilmente con C/C++ –

+0

Afortunadamente, Python y Ruby vienen con un sólido conjunto de bibliotecas y manejan varios archivos de codificación, compresión, ... Python incluso crea una biblioteca sqlite y por supuesto hay Django para administrarlo, etc. :) –

0

Ok, como entiendo la pregunta es en realidad, ¿cómo puedo dejar que las pruebas automáticas de escritura de un programador no se programen en una aplicación escrita en C++? Entonces, en este contexto, sugiero echar un vistazo a Fit y FitNesse.

Fit es esencialmente una base F ARCO mesa para I NTEGRACIÓN T teresante. La idea es que conectes accesorios en el código para probar y luego estos dispositivos se controlan de diferentes maneras usando solo tablas o en el caso de la marca wiki FitNesse simple que crea las tablas bajo el capó.

La ventaja de esto es que no hay ningún lenguaje de programación involucrado en absoluto.Solo necesitan saber qué accesorios has expuesto y el uso adecuado para ellos.

El inconveniente de esto es que puede ser difícil al principio mapear los accesorios que necesita/desea para sus pruebas. Además, en general es más mantenimiento que el uso como un marco de prueba de unidad donde todas las pruebas solo están en el código.

+0

Nunca he usado FitNesse con C++ pero encontré este pequeño tutorial. Es bastante antiguo, por lo que no puedo garantizar la precisión actual, pero al menos puede ser un buen punto de partida para configurarlo. http://accu.org/index.php/journals/305 – mockobject

Cuestiones relacionadas