Calidad mejor que cantidad

Software Quality

Bienvenidos una vez más a este su blog favorito donde hablamos del desarrollo de software. En esta ocasión vamos a tomar enfoque en la calidad y las pruebas de software, algo de suma importancia en el desarrollo de software.

A lo largo de estos blogs hemos podido apreciar como el hacer software no es simplemente hacer código y compilar sino que hay todo un proceso detrás de para facilitarnos las cosas tanto a nosotros como a aquellos que trabajan con nosotros. Pues bueno otro de estos puntos del proceso se encuentra la calidad y las pruebas de software, así que porqué no comenzamos directamente definiendo qué es calidad de software:

Qué es calidad de software

Como siempre recurrimos a nuestra vieja y confiable Wikipedia donde se define calidad de software se puede dividir en dos aspectos importantes:

  • Calidad funcional: se refiere a que tan bien cumple el diseño de acuerdo a los requisitos o especificaciones funcionales, es decir, si nuestro programa hace lo que se dijo que haría.
  • Calidad estructural: se refiere a cómo se cumplen con los requisitos extrafuncionales que respaldan la entrega de los requisitos funcionales, es decir, el que tan bien funciona el software según sea necesario, estar listo para imprevistos.

El proceso

Ya hemos hablado de como todo en esta vida para que se haga de manera adecuada debe tener un proceso, y la calidad del software no es la excepción entonces para ello necesitamos dejar en claro como gestionar los posibles defectos y cuáles serán nuestros atributos de calidad.

Podemos tener defectos tanto en nuestro software pero también en el usuario, siendo uno aquel que se basa más en contar y controlar los defectos pudiendo clasificarlos para poder dar prioridades; mientras que el otro se refiere más a aquellos requerimientos que no se cumplieron y provoca que el usuario no pueda hacer lo que se esperaba, estos pueden ir desde errores en el diseño hasta errores en la misma codificación.

Asegurar la calidad de software

Ahora bien debemos llevar a cabo un proceso y cumplir ciertas actividades para poder hacer una revisión de nuestro software y poder medir la calidad de este, es entonces cuando la Software Quality Assurence aparece para indicarnos cuáles actividades debemos llevar a cabo, dentro de las que se encuentran:

  • Definición de procesos
  • Entrenamiento de procesos
  • Implementación de procesos
  • Auditoría de procesos

Entonces la SQA nos ayuda a definir un ciclo para cada proceso y llevarlo a cabo para obtener la tan ansiada calidad de software, así que ahora veamos cómo podemos tener la tan aclamada calidad en nuestro software.

Los estándares en la Calidad de Software

Para poder llevar a cabo el proceso requerimos entonces de las actividades para poder evaluar nuestra creación de software.

Sabemos que para tener una mejor prueba de calidad el acudir a las normas establecidas en la industria es lo mejor ya que obtenemos un cierto grado de calidad que está respaldado, dentro de estos podemos encontrar algunas normas muy conocidos como lo son ISO e IEC y dentro de estos tenemos algunos estándares que nos ayudan a la calidad de software:

  • ISO/IEC 9126, dentro de esta norma nuestra calidad de software se puede clasificar en seis factores, buscando entonces como nuestro software actúa de manera externa a partir de ciertos atributos internos, calificando entonces:
    • Funcionalidad
    • Fiabilidad
    • Usabilidad
    • Reutilización
    • Eficiencia
  • ISO/IEC 250:10:2011, similar a nuestra norma anterior pero que ahora tiene un enfoque hacia el dominio del software, el tipo de producto y el uso que se espera de este, para esta norma contamos con ocho estándares que debemos cumplir:
    • Idoneidad funcional, se refiere a qué tan bien funciona el sistema y el cómo completar las tareas cuando se encuentra en condiciones específicas.
    • Fiabilidad, se refiere a que tan bueno actúa nuestro software en condiciones especificas durante un periodo de tiempo.
    • Eficiencia de rendimiento, se refiere a que tan bien aprovecha los recursos en ciertas condiciones para tener un buen rendimiento.
    • Compatibilidad, se refiere a que tan bien el sistema puede intercambiar información con otros sistemas si lo requiere.
    • Usabilidad, se refiere al grado en que los usuarios pueden utilizar el software para cumplir sus objetivos con eficacia, eficiencia y satisfacción.
    • Seguridad, se refiere a que tan bien el sistema puede proteger los datos teniendo en cuenta niveles de autorización y evitando compartir información confidencial.
    • Portabilidad, se refiere a que tan bien el sistema puede cambiar y utilizarse en otro hardware, software o en un sistema operativo diferente.

Muy bien ya tenemos los puntos que debemos tomar en cuenta para poder reconocer si nuestro software tiene calidad o simplemente cumple su objetivo pero no de la mejor manera.

Conclusión

La calidad como en cualquier otro ámbito debe ser respaldada por ciertos estándares que no solamente dan seguridad y confianza ante el producto sino que también aportan valor a la marca demostrando así que se puede llegar a tener una buena relación con la empresa y el cliente. El software no es una excepción y creo que no solamente debemos contar con las buenas prácticas y todo aquello que se nos ha indicado en semestres pasados sino que también debemos verlo como un producto más profesional y proporcionar siempre la mejor calidad antes que cantidad.

CREANDO UNA TRILOGÍA

KEN III: REVENGE OF THE SOFTWARE

Algunos dicen que las terceras partes no son las mejores, pero hay casos en los que terminan dándonos sorpresas y acontecimientos que no esperábamos.

Así que bienvenido a la tercera parte de blogueando con Ken, en esta ocasión tendremos un enfoque a la calidad y pruebas de software.

No te lo pierdas, recuerda suscribirte y activar la campanita.