X
BLOG

Un micromanifiesto sobre pruebas de API para inspirar y recargar su organización

Un micromanifiesto sobre pruebas de API para inspirar y recargar su organización Tiempo de leer: 6 minutos
En esta publicación, el director ejecutivo de tecnologías de desarrollo de software, escritor invitado en el blog, Ed Kit, decreta que es hora de que todos, en todas partes, acepten la necesidad de realizar pruebas de API y nos brinda 13 consejos de inspiración para generar la energía necesaria para hacerlo.

Después de 25 años de dirigir muchos proyectos de ingeniería de software en pequeñas y grandes empresas de Fortune 200, he llegado a una gran realización. Las pruebas de la interfaz del programa de aplicaciones (API) son más importantes que las pruebas de la interfaz de usuario (UI). En términos de manifiesto, Pruebas de API sobre pruebas de IU. Esto no es para disminuir el valor de las pruebas de IU; simplemente deseo inspirarlo a valorar más el elemento de la izquierda (prueba de API).

Finalmente podemos cerrar la brecha de productividad de las pruebas de API y ofrecer a los equipos de desarrollo y prueba las capacidades de nivel equivalente o mejor que las que se han experimentado con la UI y las pruebas unitarias. Se puede hacer una comparación entre las pruebas de API y las pruebas de IU para criticar de manera justa qué tan atrás está la prueba de API en ser realizada de manera productiva dentro del ciclo de vida general. Cada nivel de prueba presenta desafíos únicos, enfoques de diseño únicos y herramientas únicas, pero los conocimientos, la tecnología, la capacitación y los nuevos servicios de terceros actuales han cambiado eso para las pruebas de API.

Pronto llegaremos a los hechos y recomendaciones de inspiración importantes, pero primero, aquí hay una descripción general rápida de por qué las pruebas de API son tan importantes ahora.

Descripción general de las pruebas de API

Las aplicaciones se comunican de forma eficaz y poderosa entre sí mediante un lenguaje común o una interfaz de programa de aplicaciones. Las pruebas a nivel de API son una parte fundamental de las pruebas técnicas de software, entre las pruebas de interfaz de usuario y las pruebas unitarias. Con las pruebas de API, las API se prueban directamente para determinar si cumplen con las expectativas de funcionalidad, confiabilidad, rendimiento y seguridad. Cuando una API no se ha probado adecuadamente y no se comporta como debería, se producen defectos (potencialmente muy importantes) en la calidad, la privacidad y la seguridad.

A nivel de API, podemos automatizar las pruebas para:

  • Servicios web SOA (XML, WSDL, SOAP, GZIP, etc.)
  • Servicios web RESTful (JSON, RAML, Swagger / Open API, WADL)
  • Microservicios (Kafka, RabbitMQ, MQTT, WebSockets, etc.)
  • Protocolos (HTTP, JMS, MQ, TCP / IP, SMTP, Tibco, etc.)
  • SQL (JDBC, ODBC, etc.)
  • Formatos de mensaje (Swift, EDI, etc.)

¿Suena abrumador? Probar las API es técnico y, por lo tanto, puede dar un poco de miedo al principio, es decir, hasta que comprendamos lo que realmente implica. Creo que las pruebas de API son el tipo de prueba más importante que habitualmente ha tenido un rendimiento inferior en la mayoría de las organizaciones.

La buena noticia es que, como industria, estamos considerando la API desde una perspectiva de prueba ahora, no tenemos que decidirnos por RESTful versus SOAP. Solo tenemos que descubrir la información relacionada con la API específica bajo prueba.

Como director ejecutivo de una empresa de pruebas que ha estado en el negocio y ha observado tendencias durante 25 años, me complace informar que las pruebas de API son ahora la forma de prueba más solicitada en mi empresa, Tecnologías de desarrollo de software (SDT). Este año marca un punto de inflexión para SDT, de hecho. Nunca lo predije, pero después de 25 años de proporcionar todos los tipos de servicios de prueba posibles, este es el primer año que hacemos más pruebas de API para los clientes que cualquier otro tipo de prueba.

Puede parecer obvio, pero dado que la comunicación de la aplicación ocurre a nivel de API, este es el nivel más eficiente para realizar pruebas. Las pruebas que se diseñan, implementan y ejecutan a nivel de API interactuarán directamente con las API subyacentes. Duh. Y, sin embargo, muchos equipos no están probando las API; a veces, el resultado es que el cliente hace las pruebas por nosotros, para su disgusto.

Así que aquí están mis 13 puntos de inspiración y recomendaciones sobre las pruebas de API, que he categorizado a continuación.

Pruebas de API: críticas para el cliente

1. El Internet de las cosas (IoT) afecta a todos hoy en día y, dado que la interfaz de usuario típica no existe allí, las pruebas de API son críticas. Se requieren pruebas de API para hacer bien el trabajo de prueba de IoT.

2. Los piratas informáticos atacarán el software vulnerable a nivel de API, por lo que las pruebas de seguridad deben realizarse a nivel de API. Protegemos al cliente realizando pruebas de ataques de penetración maliciosa, etc. a nivel de API.

3. Con Agile, la retroalimentación rápida supera a la retroalimentación más lenta. Las pruebas de API proporcionan comentarios rápidos, por lo que el cliente no tiene que esperar una entrega de calidad.

Pruebas de API: críticas para la eficiencia del ciclo de vida

4. Las pruebas de API se pueden diseñar antes en el proceso de desarrollo, antes de que se conozca la interfaz de usuario. Las pruebas con la interfaz de usuario llevan más tiempo que las pruebas a nivel de API. ¿Quién puede permitirse los retrasos del ciclo de compilación debido al mayor tiempo de ejecución de la prueba de IU?

5. Cuando realizamos casos de prueba de API antes de los casos de prueba de IU, podemos omitir los casos de prueba de IU innecesarios que no agregan valor.

6. Las pruebas de API son menos frágiles que las pruebas de IU y, por lo tanto, resisten mejor los cambios de software a lo largo del tiempo.

7. Las pruebas de API tienden a ser más fáciles de depurar debido a su enfoque.

8. Se requieren muchas menos pruebas de IU cuando tiene una cantidad suficiente de pruebas de API. Los casos de prueba de IU todavía tienen un lugar importante.

9. Las pruebas de API tienen una vida útil más larga que las pruebas de IU. Cuando se implementan las pruebas de API, tiende a mantenerse actual por más tiempo que las pruebas de IU. Esto se debe a que los enfoques y tecnologías actuales conducen a soluciones más fáciles de mantener a largo plazo.

10. Puede incorporar pruebas de API con CI / CD / CT (Integración continua / Entrega continua / Pruebas continuas) en su proceso de desarrollo; en SDT usualmente usamos Jenkins.

Pruebas de API: algo fundamental y hacerlo bien

11. Encuentre el propietario adecuado para sus pruebas de API. En un estudio reciente, el 80% de los desarrolladores dijeron que la organización de pruebas es responsable de las pruebas de API, y el 70% de los evaluadores dijeron que la organización de desarrollo es responsable de las pruebas de API. Suena como una broma, pero no es una broma.

En la mayoría de las organizaciones, no es realista esperar que los desarrolladores sean dueños de las pruebas de API. Si sus desarrolladores se han hecho cargo de esto y están haciendo un gran trabajo, fantástico, déjelos tenerlo, pero en mi experiencia, en la mayoría de las organizaciones, no lo están haciendo ahora y no van a comenzar a hacerlo pronto. Su plato está lleno; si están haciendo bien las pruebas de unidad, se agradecido.

Tal vez el equipo de prueba debería poseer las pruebas de API, pero mi experiencia ha demostrado que los evaluadores no saben cómo probar las API; técnicamente, está mucho más allá de las capacidades y el ancho de banda de la persona promedio en el equipo de prueba promedio.

Considere asociarse con un proveedor de servicios externo experimentado e independiente especializado en pruebas de API, alguien que pueda demostrar sus habilidades y experiencia con las pruebas de API y tecnologías relacionadas. Un socio apasionado por las pruebas de API y el proceso y la tecnología puede diseñar e implementar el marco de prueba y ponerlo en funcionamiento rápidamente. Como mínimo, vale la pena tener una conversación con un socio potencial para determinar el valor que puede aportar.

12. Es importante encontrar las herramientas adecuadas para las pruebas de API. Las herramientas de prueba de API han sido débiles en el pasado, pero desde entonces se ha abordado.

Las herramientas de prueba manuales pueden ayudarlo a comenzar con las pruebas de API. Nuestros equipos de servicios de pruebas SDT han utilizado a Postman para las pruebas manuales iniciales, para explorar la API y ayudar con el diseño de la prueba API. Pero las pruebas manuales sin automatización son una fórmula para fallar: ejecutar repetidamente las mismas pruebas manualmente no satisfará las demandas del mundo ágil actual y no brindará suficiente cobertura para las complejidades del software actual.

Muchos están familiarizados con el uso de pruebas de palabras clave para los desafíos empresariales de prueba clave asociados con la nube, web, cliente / servidor, Java, mainframe, dispositivos integrados, dispositivos móviles y escritorio, ¡pero este excelente enfoque también funciona para las pruebas de API!

Las palabras clave son los bloques de construcción básicos y reutilizables para el diseño de pruebas basado en palabras clave. Un caso de prueba de palabras clave es una secuencia de palabras clave con parámetros, y las palabras clave definen acciones que impulsan u obtienen información de los elementos de la aplicación. Una palabra clave de nivel superior suele estar formada por palabras clave de nivel inferior. La reutilización de palabras clave asegura un rápido desarrollo de pruebas y un mantenimiento más sencillo. Las API se pueden ver como bloques de construcción, al igual que las palabras clave.

La herramienta de código abierto Robot Framework agrega un paradigma de caso de prueba basado en palabras clave para proporcionar una reutilización significativa de artefactos (palabras clave de bajo nivel, palabras clave de alto nivel, casos de prueba y conjuntos de prueba) y una biblioteca incorporada para reducir el esfuerzo de desarrollo de pruebas y simplificar mantenimiento.

Así como Selenium es un complemento de Robot Framework que impulsa el comportamiento de la aplicación web y valida los resultados utilizando una rica biblioteca de métodos (palabras clave de bajo nivel), HTTPLibrary y la biblioteca de solicitudes son complementos que impulsan las pruebas de API. El lenguaje Python se usa a menudo para crear palabras clave personalizadas de bajo nivel.

13. Cuando esté listo, encontrará los controladores clave que indican que es hora de considerar una solución empresarial.

El primero y más importante es el deseo de lograr niveles más altos de cobertura de prueba para casos de uso más complicados, por ejemplo, interfaces que no son SOAP y REST, microservicios, ESB o bases de datos. En esta etapa de madurez, las organizaciones buscan soluciones de prueba de API empresariales. Cuando esté listo para una solución comercial con todas las funciones para las pruebas de API, consulte SOAtest de Parasoft.  Parasoft SOAtest es ampliamente reconocida como la solución líder de nivel empresarial para pruebas de API, y lo ayudará a pasar al siguiente nivel de Pruebas de API, para escalar a través de tecnologías y funciones de siguiente nivel.

Resumen

Las pruebas de API están experimentando un aumento por el que ya han pasado las pruebas de IU. Quizás su única gran oportunidad actual para mejorar la calidad del software es la prueba de API. ¿Quiere hacer algo grandioso por su empresa? Entrada Pruebas de API - sé el campeón - usa este blog para ayudar a defender tu caso - escribe tu propio micromanifiesto para tu empresa y cuéntame cómo te va. Hablo en serio, envíame un correo electrónico a kit@sdtcorp.com.

Lecturas y referencias relacionadas:

Cómo elegir la solución de prueba de API adecuada

Escrito por

Ed Kit

Líder de software internacional con más de 25 años de experiencia en ingeniería de software, Ed brindó supervisión ejecutiva para el establecimiento de Automatización de pruebas y Centros de excelencia para UGS / Siemens PLM Software, Southwest Airlines, PepsiCo, Fondo de seguro de compensación del estado de California, JC Penney, WellPoint y muchos más. otras empresas pequeñas y de Fortune 500. Titular de la patente en automatización de pruebas de software y apasionado defensor de las pruebas de API. Gerente sénior de una gran organización responsable de pruebas independientes, rendimiento, pruebas de sistemas, lanzamiento de software, herramientas, ingeniería de software, métricas, capacitación y calidad. Fundador y presidente de Software Development Technologies (SDT), una corporación que brinda servicios de pruebas prácticas de clase mundial.

Reciba las últimas noticias y recursos sobre pruebas de software en su bandeja de entrada.

Prueba Parasoft