En la empresa para la que trabaja, ¿escribe las pruebas para las características que desarrolla o alguien más lo hace?

Tu preguntaste:

En la empresa para la que trabaja, ¿escribe las pruebas para las características que desarrolla o alguien más lo hace?

¡Estoy hablando de e2e y pruebas de integración, no de pruebas unitarias!

Mira, me acabas de cortar.

  1. Tengo que asumir que usted está en la gestión, porque esos dos tipos de pruebas provienen de dos paradigmas de prueba diferentes, y tienden a no mezclarse bien.
  2. Las pruebas de integración reales requieren pruebas unitarias, por lo que lo que está preguntando allí es imposible. Es parte del modelo de pruebas SDLC ( Software Development Life Cycle ), y usted ha engullido en una parte, mientras tira (¡explícitamente!) Las otras partes que hacen que esa parte funcione.
  3. Lo que está llamando “e2e”, el resto del mundo lo llama “prueba de interfaz de usuario”, y su capacidad para hacerlo está limitada por una serie de factores.

    Esto es realmente atractivo para la administración, especialmente para los sitios SaaS y otros sitios donde el acceso principal es a través de un portal web. La gerencia lo quiere porque, si fuera fácil de hacer, garantizaría una experiencia de usuario consistente, y la mayoría de las quejas de los clientes implican la experiencia del usuario.

    Cabe señalar en este punto que la consistencia de la experiencia es algo malo, si la experiencia es siempre mala .

    Tendrá que escribir diferentes pruebas para cada plataforma, por lo que puede crear su propio marco encima de los marcos de prueba para cada plataforma, y ​​luego escribir sus pruebas en su marco general.

    1. Es fácil de hacer para aplicaciones binarias, que no son sitios web , en Windows o OSF / Motif, pero solo si sigue algunas pautas bastante rígidas que casi nadie sigue , y solo en sistemas que permiten la introspección de las jerarquías de widgets, lo que significa no puede usarlo en la mayoría de los dispositivos móviles, y no puede usarlo en aplicaciones de reproducción de contenido, que están perversamente diseñadas para prohibir la introspección a fin de prohibir la copia de contenido.
    2. Es más difícil de hacer en Mac OS X, debido a los cambios en la fuente del sistema y la coincidencia de mapas de bits en lugar de la introspección de la jerarquía. Es factible
    3. También puede hacerlo en sitios web conocidos para la validación del navegador, si es un proveedor de navegadores. Felicitaciones, Apple, Microsoft, Google, Opera y Firefox.
    4. Hacer lo contrario, la validación del sitio web en muchos navegadores, es prohibitivamente difícil, porque los más importantes que le interesarán serán en Windows, y no hay un marco de prueba real entre navegadores, e incluso entonces, usted ‘ deje comparar la salida visual con la salida visual esperada para asegurarse de que lo que se renderizó es lo que pretendía renderizar.

      Es posible, pero le costará mucho dinero o requerirá mucho trabajo humano (elija uno).

Si quieres preguntar cómo hacer pruebas efectivas durante un ciclo de vida del software, o cómo, dado eso, Apple tiende a equivocarse realmente, o Google tiende a arruinarlo realmente, está bien.

Si desea dar un ejemplo de IU que está fuera del dominio de reproducción de medios / acceso al contenido, está bien.

Pero como se le preguntó, la pregunta es a la que muchos gerentes les gustaría una buena respuesta para que puedan marcar la casilla de verificación y pasar a otras cosas, y omite la mayor parte del valor que obtendría de cualquier tipo de prueba real.

En los sistemas empresariales de gran equipo empresarial en los que estoy involucrado, los ingenieros de prueba realizan pruebas formales. Esas pruebas se realizan en cuatro áreas amplias, pruebas de requisitos funcionales, pruebas de requisitos no funcionales, pruebas de integración y (típicamente) pruebas de aceptación.

Los ingenieros de software también escriben pruebas unitarias en algún grado (u otro), y algunos incluso pueden hacer TDD, pero esto es en gran medida para aquellos involucrados con aspectos de la arquitectura técnica, en lugar del modelo de dominio problemático. Estas últimas pruebas se ejecutan automáticamente como parte del proceso de compilación automatizado, pero las pruebas realmente importantes son aquellas formales.

Cuando escribo una característica como desarrollador Java utilizando principalmente Spring Framework, solo escribo pruebas unitarias, que es el código Java de forma aislada. En algunos casos escribo una prueba de integración local que hace uso de las instalaciones de prueba de Spring Framework, y también accedo a una base de datos local para ejercer el código de acceso a datos.

Las pruebas automáticas completas las realiza un ingeniero independiente, que es la forma de hacerlo porque necesitan su propia mentalidad independiente sobre cómo validar el código. Si bien podría hacerlos yo mismo si me asignaran el tiempo del proyecto, no sería efectivo ya que estaré sesgado y no veré los problemas que yo mismo creé.

Alguien más lo hace. Escribir los scripts de prueba de integración siempre parece recaer en los pasantes y los nuevos desarrolladores. No creo que sea la mejor manera de hacerlo, pero eso es lo que sucede.

More Interesting

¿Cuáles son los pros y los contras de consultar frente a tiempo completo para los desarrolladores de software?

¿Cuáles son las oportunidades de empleo en el desarrollo de software para alguien con antecedentes penales?

¿Qué conocimiento necesita un probador para probar un software?

¿Por qué se supone que un desarrollador de software piensa como un tomador de decisiones empresariales?

¿Por qué los propietarios de sitios de torrents y otros sitios web de descarga de contenido gratuito no comparten sus ingresos (de anuncios, etc.) con los propietarios de contenido?

¿Hay alguna manera de dar un nuevo código de desarrollador para un proyecto de 2.5 GB a través de la red y luego sincronizar su copia a SVN para que pueda registrar el código?

¿Cuál es la mejor manera de medir la productividad del desarrollador?

¿Qué va a tener más demanda en los próximos 5-10 años en la industria del juego? ¿Diseñadores de juegos, desarrolladores de software o artistas?

¿Por qué las personas solicitan el desarrollo de software personalizado teniendo en cuenta que siempre es tan costoso?

¿Cuál es la herramienta JIRA de Atlassian?

¿Cómo puedo, como desarrollador de software, entregar mi trabajo de oficina dentro de los plazos establecidos en la industria india de TI?

¿Cómo pueden los desarrolladores de software mayores encontrar trabajos bien remunerados en las grandes compañías tecnológicas?

A los 25 años, ¿soy demasiado viejo para solicitar un programa de pasantías de desarrollador de software?

¿Es cierto que no es probable que los desarrolladores de software se conviertan en CEO porque no están dispuestos a abandonar la programación y centrarse solo en los negocios?

¿Los desarrolladores de software de 20 años deben preocuparse por el envejecimiento en Silicon Valley cuando envejecen?