El blog de django.mx


¿Qué es un QA?



El término QA se refiere a Quality Assurance, es decir al aseguramiento de la calidad. Esto puede ser aplicado a productos y servicios que sean manufacturados o prestados. Sin embargo un aseguramiento de la calidad va más allá de una supervisión de procesos como se pudiera pensar.

En el caso de productos de software se aplica SQA (Software Quality Assurance) para garantizar la entrega de un software eficiente, seguro y acorde a las necesidades del cliente. Para  hacer esto se realizan una serie de procesos que varían de acuerdo al tamaño del software que se entrega.

Un departamento especializado en QA es solo posible en empresas con productos digitales de alto riesgo. Por ejemplo: aplicaciones financieras, médicas, fábricas de software, entre otras. ¿Pero qué pasa con las empresas pequeñas y medianas cuya operación no es 100% digital? En estos casos en vez de tener un área especializada solo se cuenta con un equipo de una o dos personas para atender a los productos digitales.

¿Entonces cuál es la función de un QA?

No hay que confundir la función de un QA con la de un Corrector de estilo. Si bien parte de la calidad de un sistema es cuidar que los textos estén correctos en ortografía y redacción, no es la función de un QA verificar este aspecto.

Un QA técnico verifica la calidad de un sistema en varias etapas

Unit test: El QA debe tener conocimientos técnicos para verificar que los módulos programados funcionen como deben. Con ayuda del developer, se hacen pruebas de ejecución que validen los casos de uso contemplados en un módulo. Para esto se sirven de varias técnicas de programación que verifican la correcta funcionalidad de partes individuales del programa. Por ejemplo ¿ el módulo de envío de mails funciona correctamente cuando se saturan las peticiones?  ¿El módulo de generación de videos hace bien un merge de videos si se cambian parámetros en las funciones que lo ejecutan?

Pruebas de integración: Pruebas que garantizan que los componentes funcionan bien juntos. Estos son realizados por developers y verificados por el QA. Estas pruebas son basadas en las pruebas unitarias y llevadas al siguiente nivel. 

Pruebas de aceptación: Se testean escenarios de aplicaciones de acuerdo a perfiles de usuarios. Los niveles de pruebas incluyen funcionalidad, seguridad y performance. Estas pruebas están diseñadas para comprobar que la funcionalidad del sistema sea lo que se requirió.

UI : el aseguramiento de la usabilidad en el sistema. Estas pruebas están diseñadas para asegurar que la interfaz del sistema funcione de la forma en que fue planeada. Preguntas como : ¿Se encuentran los elementos del sistema que completan la operación que se pidió? ¿Es fácil encontrar los links que necesita el usuario? ¿Están bien colocados los elementos en la interfaz? ¿si es un sitio, tiene un acomodo correcto en diversos dispositivos?

Por supuesto el proceso de QA puede ser llevado a tanto detalle como el producto lo requiera. Y hay que conocer qué herramientas o técnicas pueden ser aplicadas de acuerdo al tamaño o complejidad del sistema. Puede ser desde verificar la seguridad de un sitio web hasta implementar un script de verificación de concurrencia en el servidor. Es trabajo del QA y del equipo de desarrollo definir el alcance del aseguramiento de la calidad.

Recursos

Software Testing: A Guide to Testing Mobile Apps, Websites, and Games. Mark Garzone. Fuente

The Art of Software Testing. Glenford J. Myers. Fuente

Unity testing. Site

Test Driven Development. Kent Beck. Fuente

Certificaciones

Quality Assurance Institute Worldwide

Quality Global Institute

Cursos Lynda.com: Foundations of Programming: Software Quality Assurance



Facebook Twitter