Está en la página 1de 7

Pruebas de Calidad y Software

Como asegurar y verificar la calidad.


Como asegurar y verificar la calidad.

Primero se debe intentar identificar los factores que desde un punto de vista externo
definen la calidad del software, no me refiero a los procesos internos de desarrollo, como
pruebas unitarias, gestión de cambios, calidad del código... no!! se refiere a lo que se
percibe, una vez el software está terminado, implantado y en producción, lo que nota un
usuario. Intentemos pensar (como ejemplo para evaluar la calidad) en un producto
software..., uno de los primeros que desarrollamos o probamos, así veremos mejor su
evolución y evaluaremos la calidad teniendo en cuenta factores temporales.

Satisfacción del cliente (se suelen hacer encuestas para obtener este dato): Interfaz
de usuario (usabilidad, accesibilidad, facilidad de manejo, curva de aprendizaje, diseño.)

Rendimiento de la aplicación, Seguridad, Despliegue, Actualizaciones, Integración


con sistemas.

Número de bugs en producción (bugs encontrados y la importancia de los mismos,


se podría incluir en satisfacción del cliente).

Rentabilidad económica (%, precio de venta - coste de desarrollo): Este factor no es


relevante para el usuario, pero tiene mucha información subliminal y por eso lo quiero
incluir. Para mí está muy ligada la rentabilidad a la calidad, por muchas cosas como la (la
buena estimación, buena planificación, gestión, previsión, pruebas, buena arquitectura,
buen código, pocos bugs, aplicación modular y bien preparada para el cambio...) por ello lo
quiero incluir como factor a tener en cuenta, aunque no le afecte al cliente directamente, si
indirectamente, ya que si el software es rentable, el cliente obtendrá un mejor servicio,
soporte, mantenimiento... en definitiva un buen producto...(bueno este es otro tema).

Tiempo de vida por cliente (años que el software está funcionando).


El usuario quiere algo que le satisfaga y si (por ejemplo) en el banco de Cuenca tienen una
aplicación Cobol, desarrollada hace 15 años, que les satisface las necesidades actuales,
desde luego que es un aplicativo con calidad. Al igual que un coche, de hecho es muy típico
ver mercedes de hace 20 años rodando a diario por las carreteras.

Número de clientes (clientes que tiene el software implantado y en producción)


Otro factor importante es el número de clientes que tiene un software, (no voy a poner más
ejemplos de coches), por ejemplo existen productos software que están muy estandarizados
(SAP, Subversion, PhotoShop, Office...) es software muy popular, muy testeado, en
diferentes entornos y condiciones, y yo creo que eso es un síntoma de calidad.

Es tan difícil medir la calidad..., no cabe duda de que si diésemos con una fórmula
válida, nos haríamos multimillonarios, pero la calidad no es algo tan trivial, que se pueda
medir en una escala de 0 a 10... la calidad tampoco es binario o 0 o 1, o se tiene o no se
tiene, es algo más complejo, la calidad es el día a día, el trabajo meticuloso, de trabajo
organizado y estructurado, probado y documentado, orientado a la petición de cambio del
cliente y a la facilidad para llevar a cabo el cambio en el equipo de desarrollo, la calidad no
es CMMI o SCRUM, aunque si es cierto que cualquier metodología actual sienta las bases
para desarrollar un producto de calidad.

Por todo esto y para terminar, decir que la calidad no se puede medir, pero los
factores que afectan a la calidad si se pueden identificar y mejorar... por lo tanto la calidad
está en la mejora diaria, en cada uno de los eslabones del desarrollo de software, en la
buena gestión, en cada línea de código, ... todos deben aportar calidad, desde la
codificación (tratando de documentar el código, haciéndolo, legible, mantenible...), hasta la
implantación del producto (haciendo un aterrizaje suave sobre un entorno de pre-
producción, pasar de nuevo el plan de pruebas), hasta incluso después de la puesta en
producción aportando al cliente un buen bug-tracker y comunicación continua.

Cultura de calidad, evitar errores y otros problemas que afectan la


calidad.
Cultura de calidad, evitar errores y otros problemas que afectan la calidad.
El aseguramiento de la calidad data de muchos años atrás, pero es hasta en 1920
cuando se consolida el término; elaboración de gráficas de control, técnicas de muestreo y
de análisis económicos fueron lo que los pioneros del aseguramiento de calidad empezaron
a implementar en sus áreas de trabajo, esto gracias al departamento de ingeniería de
inspección que implementó la empresa Bell System. Desde ese entonces la palabra calidad
ha tomado sentido para las empresas que la ven no sólo como un atributo más, sino que una
responsabilidad con sus clientes.
¿Qué es el Aseguramiento de la Calidad de software?

Para hablar del aseguramiento de la calidad debemos también hablar de control de


calidad, que son procedimientos que se establecen para poder verificar y medir la calidad
de un producto, servicio o proceso. Ya sabiendo que es el control de calidad podemos
definir entonces que el aseguramiento de la calidad es la labor continua de garantizar que el
control de la calidad se aplica y el resultado es un producto de calidad. Por lo descrito en el
párrafo anterior podemos intuir que para tener un correcto aseguramiento de la calidad
debemos de tener controles, ¿estos controles existen en las empresas dedicadas a crear
sistemas de información? Lamentablemente no es así, se necesita además de una fuerte
inversión económica, el tiempo necesario para promover un producto de calidad, las
empresas que tienen mucha demanda no les da tiempo de hacer las pruebas necesarias para
asegurarse que el producto final es de calidad, es por eso que acuden a la filosofía de
entregar un producto que funcione, pero tal vez no es lo que el cliente necesita. La falta de
dichos controles los podemos atribuir a que la mayoría de empresas dedicadas a la
elaboración de sistemas de información en nuestro país son pequeñas empresas, unas
cuantas consideradas mediana empresa, que el número de trabajadores son pocos y todos
hacen de todo para sacar los proyectos adelante, de una u otra forma el ingeniero de
software hace sus propias pruebas y es el único que avala el trabajo a entregar, una muy
mala práctica pero es la realidad.

Sin embargo, hoy en día existen empresas que tienen solidez y contemplan en su
visión el entregar no sólo lo que pide el cliente, sino que también dar el plus que los
diferencia de la competencia, no sólo es pensar en el bien de la organización, sino que
también pensar en el bienestar de los clientes. Pero ¿Cómo infundir la cultura de calidad en
una organización? ¿Cómo hacer que nuestros colaboradores se involucren en el cambio?
Para contestar estas preguntas debemos empezar por cosas muy sencillas, para luego
establecer un departamento que cumpla con la función de asegurar la calidad en la
organización. Podemos empezar con:

1.- Nuevas formas de trabajo.


2.- Ponerse en los zapatos del cliente. ¿Qué esperaría yo del software a entregar?
3.- Establecer normas mínimas que el software a entregar debe cumplir.

Cuando ya se toma conciencia de lo importante que es la calidad, el tener un


departamento que se encargue de la calidad total de la organización se vuelve
indispensable, el saber que la calidad ya no es un complemento sino que una
responsabilidad y parte del proceso. El departamento de QA tiene en sus principales
objetivos el ayudar a las otras instancias de la organización para que los productos y
servicios que se generen en ésta sean de calidad y sean los mejores a través de la
innovación constante. Para que un plan de calidad total en los servicios/productos que
brinda el TI a clientes internos como externos funcione, es necesario que los miembros del
TI tengan el compromiso con lo siguiente:

1.- Comprender qué significa calidad (que los clientes reciban lo que esperan del servicio y
queden satisfechos).
2.- Estar convencidos de que lo que se desea es producir servicios y productos con calidad,
y que para esto “todos” tenemos la responsabilidad de alcanzarlo.
3.- Comprometerse a realizar todo lo que sea necesario para brindar productos y servicios
con calidad, desde la primera vez que se hacen
4.- Promover la cultura donde todos se sientan con libertad de contribuir con ideas, donde
el involucramiento en la solución de problemas y la toma de decisiones sea una norma.
El aseguramiento de calidad hace que todo lo creado tenga sentido, pero no
podemos asegurar la calidad sino existen controles adecuados para cada proceso, es
importante definir éstos controles de acuerdo a lo que producimos para luego infundir una
cultura de calidad en los que conforman nuestro equipo de TI.

El beneficio que trae al departamento de TI la calidad total es muy grande, los


clientes lo perciben y se genera la confianza que todo ingeniero de software necesita, ya
que a través de la credibilidad que el cliente tenga en nuestro trabajo así es como la
organización va creciendo tanto a nivel de clientela como en conocimiento.

Aseguramiento de la calidad del proceso vs. Aseguramiento de la calidad


del producto.
Aseguramiento de la calidad del proceso vs. Aseguramiento de la calidad del producto.

Con el paso de los años se han ido inventando nuevas formas de mejorar los
sistemas. Estas mejoras son tomadas en cuenta dada la necesidad de obtener productos
(software) de mejor calidad. Este artículo ha sido escrito precisamente para tratar de aclarar
2 de los conceptos más mencionados al referirse a la calidad del software: Pruebas de
Software (Software Testing) y Aseguramiento de la calidad QA (siglas de las palabras en
inglés Quality Assurance).

Para tener una idea clara de las diferencias y relación entre ambos, es necesario
conocer los conceptos.

Las Pruebas de Software son una fase muy importante dentro de casi todos los
modelos conocidos de Ciclo de Vida del Software. Por ejemplo; en el venido de los 70’s
pero aún utilizado, modelo Cascada, se realizan las pruebas una vez terminada la
construcción del sistema, en el Incremental se realizan las pruebas en cada incremento del
sistema, o por ejemplo, en el Evolutivo mediante la retroalimentación de los usuarios, en el
espiral durante su verificación y validación del desarrollo, o en los enfoques XP (eXtreme
Programming o Programación Extrema) con repetidas pruebas de cada una de las mejoras
debido a su desarrollo iterativo e incremental. Así podríamos ir mencionando otros modelos
no tan conocidos pero que seguramente incluyen Pruebas también para entregar sistemas de
Calidad.

Por otro lado, QA se refiere a asegurar (como su nombre lo dice) la calidad en cada
una de las fases de la elaboración de un producto final, cualquiera que éste sea. En el caso
de QA de software, se referirá entonces, a asegurar la calidad de los resultados de cada una
de las fases del ciclo de vida del software y con esto, asegurar la calidad del producto final.
Para cumplir con este aseguramiento se deberán definir estándares y establecer
procedimientos contra los cuales se pueda comparar lo alcanzado durante cada una de las
fases. Por ejemplo; si para el Análisis de Requisitos dentro de un modelo cascada, se ha
definido un tipo determinado de documento a presentar, entonces para pasar a la fase de
Diseño, el documento de Análisis deberá estar conforme al documento estándar ya que una
fase que no se ejecutó de forma correcta podría causar (y muy probablemente lo haga)
defectos en las fases posteriores. La idea es que mientras más temprano se detecten las
fallas, menor será el costo (monetario, de tiempo, recursos, calidad, etc.) de repararlas y
mayor la calidad del producto final.

Una vez con estos conceptos en mente será más sencillo señalar un par de
diferencias y relaciones entre ambos:

1.- Las Pruebas de Software se realizan en una de las fases del ciclo de vida del software;
mientras que QA de software se deberá ejecutar en todas las fases (incluida la fase de
Pruebas).
2.- Las Pruebas de Software utilizarán Casos de Pruebas para ser ejecutados; en cambio QA
de software utilizará los estándares y procedimientos establecidos para cada una de las
fases del ciclo de vida del software.

3.- Ambas permitirán verificar y afirmar la calidad del producto final, el software.

4.- Ambas definen un conjunto de actividades a realizarse dentro del ciclo de vida del
software para mejorar y asegurar la calidad del mismo.

Este tema es sumamente amplio y en este artículo sólo se ha tocado una pequeña
parte de él, pero como se mencionó inicialmente, QA y Pruebas de Software son de los
conceptos más utilizados al hablar de Calidad de Software así que hay que tenerlos siempre
claros para saber cuándo utilizarlos.

También podría gustarte