Calidad Del Sof
Calidad Del Sof
Calidad Del Sof
EXTENSIÓN CHONE
CARRERA:
TECNOLOGIA DE LA INFORMACION
MATERIA:
INGIENERIA EN SOFTWARE
ESTUDIANTE:
FIGUEROA HIDALGO ANTHONY JAHIR
MACIAS PARRAGA ANDY STEVEN
ADRIANA JAMILETH CEDEÑO ORTEGA
TEMA:
CONSULTA
DOCENTE:
ING: FABRICIO RIVADENEIRA
SEMESTRE:
QUINTO SEMESTRE
2023-2024
Calidad del Software
Para definir qué es la calidad del software, comencemos definiendo qué es calidad y
esta se define como un conjunto de características subyacentes a un producto o servicio
que cumplen determinados requisitos para satisfacer las necesidades de un cliente. Y
¿qué es un software y cuál es su papel en la sociedad actual?
El software se puede definir como un conjunto de programas intangibles encargados de
recibir órdenes, procesar datos y reflejar resultados, estas son características que hacen
que el software sea muy demandado pues facilita, complementa o automatiza tareas y
procesos que se llevan a cabo en el día a día de los diferentes hogares y organizaciones.
Teniendo claro los dos conceptos anteriores se puede inferir que calidad en el software
está en relación directa con el cumplimiento de los requerimientos formulados por el
usuario, de tal forma que si un programa no cumple con alguno de estos requerimientos,
es un software de baja calidad. Aunque el criterio de cumplimiento de los
requerimientos es un factor importante, no es el único, ya que existen condiciones
implícitas que el software debe cumplir como son eficiencia, seguridad, integridad,
consistencia, entre otras.
Por lo tanto, no podemos afirmar que un software es de alta calidad cuando cumple con
los requerimientos del usuario, si:
– No es eficiente al utilizar los recursos de la máquina (programas muy lentos).
– No es confiable; los resultados que entrega varían, no son siempre iguales al procesar
los mismos datos.
– No es fácil de utilizar.
– No es seguro.
– No es fácil hacerle mantenimiento.
¿Cómo se logra la calidad del software?
Actualmente la responsabilidad de garantizar un software de calidad no es función de
una persona; en esto están comprometidos los ingenieros de análisis y diseño, los
gestores y coordinadores del proyecto, los usuarios, los programadores y todas las
personas involucradas en el desarrollo.
La garantía de calidad en el software no es una certificación impuesta luego de haber
desarrollado un programa. Es un proceso que involucra las siguientes actividades:
1) Aplicación de metodologías de ingeniería de software para conseguir una
especificación y un diseño de alta calidad.
2) Realización de revisiones técnicas formales.
3) Prueba del software.
4) Ajuste a los estándares de la organización.
5) Control de cambios y modificaciones (mantenimiento).
6) Mediciones.
7) Registro e informes
Gracias a este tipo de tests podemos encontrar bugs directamente en los pull requests,
sin necesidad de pasar regresivos relacionados con esa parte del producto. Hacen que el
sistema sea fiable, pudiendo confiar en las partes protegidas por estos tests, ya que
tendrán el comportamiento deseado al ser llamados por otros componentes.
Adicionalmente, protegen a los grupos de desarrolladores, para que el código de otros
componentes no les sorprenda de formas desagradables.
Al utilizar un lenguaje como gherkin, para escribir este tipo de pruebas, se consigue
además una documentación extra sobre el funcionamiento del sistema. Pudiendo hallar
rápidamente, qué está cubierto por los tests, y qué no.
Tests funcionales
Son un paso más allá de los tests de integración, y tratan de probar el sistema como lo
haría un usuario. Aquí entra especialmente la automatización de interfaces gráficas. Son
las pruebas funcionales que más mantenimiento necesitan, y las más lentas.
Sin embargo, los beneficios son similares a los anteriores tipos de pruebas. Protegen
contra interfaces fallidas, y quitan trabajo a la hora de hacer pruebas manuales. Son
especialmente útiles al configurarlos y prepararlos, para ser ejecutados en todos los
entornos en los que se distribuye o se ejecuta la aplicación. Por ejemplo, en los
diferentes navegadores soportados, si la interfaz a probar fuera un entorno web.
Sin este tipo de tests estamos condenados a probar manualmente las interfaces,
pudiendo dejarnos en el tintero posibles combinaciones. Suelen ser los mejores para las
pequeñas
Como lo dijimos anteriormente, los atributos de calidad nos ayudan a garantizar que un
activo digital va a tener un funcionamiento estable, que cumple las especificaciones
técnicas necesarias y que, además, es capaz de satisfacer las necesidades de los
usuarios.
1. Funcionalidad
Este atributo se ve desde el punto de vista de los usuarios finales. Hace referencia a la
capacidad del software para ofrecer una solución o satisfacer necesidades explícitas e
implícitas de las personas que lo van a utilizar.
Estas hacen referencia a la capacidad de software para realizar la totalidad de las tareas
necesarias para que el usuario cumpla su objetivo, ofrecer resultados precisos y el grado
en que se cumplen los objetivos que han sido especificado para satisfacer al usuario.
2. Fiabilidad
7. Mantenibilidad
Un activo digital debe poder modificarse para ser corregido, mejorado o para
adaptarlo a los cambios en el entorno.
En este atributo de calidad se tiene en cuenta la modularidad, es decir, la
capacidad que se tiene de cambiar un componente con el menor impacto posible
para los demás.
También se mide la capacidad del software para construir otros
activos (reusabilidad), la posibilidad de evaluar su impacto y el de cada una de
sus partes (analizabilidad) y la modificabilidad, que se refiere a la posibilidad
de ser modificado sin introducir defectos o desmejorar la calidad.
En este atributo de calidad también entra la testabilidad, que es la capacidad
para establecer criterios de prueba para determinar si está cumpliendo con
determinados criterios.
8. Portabilidad
Por último, tenemos el atributo de calidad que mide la capacidad de un activo
digital para pasar de un entorno operativo o de uso a otro.
En resumen, podríamos decir que cada uno de estos atributos de calidad buscan un
objetivo concreto:
Fiabilidad: Hacer que el software funcione sin fallos y de manera consistente.
Escalabilidad: Lograr que el software maneje sin fricciones aumentos en la carga
de trabajo o el volumen de datos.
Mantenibilidad: Conseguir que el software se pueda mantener y actualizar el
software fácilmente.
Rendimiento: Construir un software que sea veloz y eficiente.
Seguridad: Garantizar que el software es capaz de proteger la integridad de los
datos y evitar accesos no autorizados.
Usabilidad: Ofrecer una experiencia fácil de utilizar y navegar.
Portabilidad: Lograr que el software pueda ejecutarse en diferentes plataformas
y sistemas operativos.
Interoperabilidad: Construir el software de manera que pueda interactuar y
trabajar con otros sistemas y aplicaciones.