El término SQA se refiere a Software Quality Assurance, es decir, al aseguramiento de la calidad. Esto puede ser aplicado no solo a tecnología, también 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 nuestro caso, nos referimos al acercamiento planificado y sistemático para la evaluación de la calidad y su adhesión a los estándares, procesos y procedimientos de elaboración del software en desarrollo.
Para este aseguramiento, hay que tener en cuenta diferentes puntos, pero entre los más importantes esta la evolución en el propio desarrollo, ya que convivimos en un entorno muy variado y cambiante, el cual afecta no solo a herramientas y lenguajes, sino también a procesos y metodologías.
La inclusión del proceso de QA en la cadena de valor del desarrollo del software aporta un valor añadido significativo convirtiéndose en diferencial para la solución SW, potenciando y fortaleciendo el servicio o resultado final de cada proyecto, ya que un desarrollo bien ejecutado, además de obtener el resultado esperado, conlleva una reducción de costes y tiempo en tareas de mantenimiento futuros.
«El sistema hace lo que tiene que hacer, y no hace lo que no debe hacer»
Las principales actividades realizadas en un proceso SQA son:
- Diseño y ejecución integral de pruebas, verificando la corrección de los desarrollos mediante ciclos de pruebas de integración o sistema, o validando la aplicación mediante pruebas de aceptación o usuario
- Trazabilidad de los ciclos de prueba, identificando el objetivo, proceso y resultado de las pruebas frente al diseño, análisis y requisitos establecidos
- Automatización de pruebas, consiguiendo ahorro de recursos en la certificación de aplicaciones con evolutivos, o en soluciones con ciclos de vida iterativos
- Reducción de plazos al minimizar los tiempos de diseño o ejecución a través de planteamientos de reutilización o de automatización de pruebas, liberando slots de tiempo a otros grupos en fases críticas del ciclo de vida de software.
Tipo de servicios SQA
En Samelan contamos con los servicios SQA que más se adaptan a las necesidades de cada empresa.
QA Web, Servicios integrales de QA para aplicaciones web: Smoke Tests, sanity tests, acceptance Tests, performance tests, funcional, fuzz, gorilla, happy-path, etc.
Integrados en distintos procesos: planificados, ágiles, etc.
QA Mobile, Servicios integrales de QA para aplicaciones móviles: Tests funcionales, de regression, compatibilidad de terminales, cross-browser y responsive.
QA Microservices: Revisión de diseño, semántica, acoplamiento. Tests end-to-end, revision de interfaces y contraltos. Tests unitarios. Tests de carga, alta disponibilidad.
Extended QA: SQL y XSS Injections, Buffer Overflow. Confidencialidad e Integridad. Leak testing. Control de autenticación y acceso a recursos. Bajo proyecto ad-hoc.
Ventajas de usar la metodología QA Agile
El desarrollo Agile presenta unas particularidades que influyen en la implantación de un SQA:
- Entregables en tiempo y forma. Se pueden ir enviando entregables al cliente mientras vas atacando los objetivos más sencillos, eso te hace ganar tiempo para abarcar los objetivos más complejos.
- Los equipos son transversales y auto-organizados. Cada persona sabe que es lo que tiene que hacer y no es necesario estar reorganizando una y otra vez los Tracks de cada persona.
- Trabajo en equipo y definición de responsabilidades. Se involucra desde un principio y se da un rol a todos los stakeholders (personas que van a participar en el proyecto incluyendo cliente final, QA, Testers, etc.)
- Reducción del Riesgo. Se entrega el resultado del sprint y el Product Owner puede rápidamente ver el resultado, si éste no es suficiente se puede tomar alguna acción (Fail Fast)
- Evita el Context Change. El equipo de desarrollo toma la decisión de en que va a trabajar durante el Sprint sin interrupciones por parte de factores externos.