¿Cuáles son los atributos de calidad de un buen software?

Una mirada a los atributos de calidad en las pruebas de software

19 de diciembre de 2016Sin categorizar

Uno puede conocer los ‘Atributos de calidad’ a través de los diversos cursos de prueba de software en Pune . Sin embargo, para aquellos que quieran aprender por su cuenta, pueden leer este artículo que se basa en este tema.

Definición:

Los atributos de calidad son las variables generales que influyen en la conducta del tiempo de ejecución, el diseño del sistema y la experiencia del usuario. Representan áreas de preocupación que tienen el potencial para un amplio efecto de aplicación transversal en capas y niveles. Algunos de estos atributos se identifican con el diseño general del sistema, mientras que otros son específicos del tiempo de ejecución, el tiempo de diseño o los problemas basados ​​en el usuario. El grado en que la aplicación tiene una mezcla imaginaria de atributos de calidad, por ejemplo, rendimiento, usabilidad, confiabilidad y seguridad, muestra el cumplimiento del diseño y la naturaleza general de la aplicación de software.

En el momento en que se diseñan aplicaciones para cumplir con cualquiera de los requisitos previos de atributos de calidad, es importante tener en cuenta el efecto potencial en diferentes requisitos. Debe examinar las compensaciones entre varios atributos de calidad. La importancia o la necesidad de cada atributo de calidad varía de un marco a otro; por ejemplo, la interoperabilidad con frecuencia será menos imperativa en una aplicación minorista empaquetada de uso solitario que en un sistema de línea de negocio (LOB).

Atributos de calidad comunes:

Aquí discutiremos algunos de los atributos de calidad comunes.

1.Integridad conceptual:

La integridad conceptual caracteriza la consistencia e inteligencia del diseño general. Esto incorpora la forma en que se diseñan los segmentos o módulos, y además componentes, por ejemplo, estilo de codificación y nombres variables.

2.Calidades relacionadas con el diseño:

– Reusabilidad:

La reutilización caracteriza la capacidad de las partes y subsistemas para ser apropiados para su uso en diferentes aplicaciones y en diferentes situaciones. La reutilización minimiza la duplicación de segmentos además del tiempo de ejecución.

– Interoperabilidad:

La interoperabilidad es la capacidad de un marco o sistemas diversos para trabajar de manera efectiva mediante el transporte e intercambio de datos con otros sistemas externos compuestos y administrados por terceros. Un sistema interoperable facilita el comercio y la reutilización de datos internamente y también de forma remota.

– Capacidad de administración:

La capacidad de administración caracteriza lo simple que es para los administradores de sistemas manejar la aplicación, como regla a través de instrumentación adecuada y útil descubierta para su uso en marcos de monitoreo y para depuración y ajuste de rendimiento.

Disponibilidad:

La disponibilidad caracteriza el tiempo durante el cual el sistema funciona y funciona. Se puede medir como una tasa del tiempo de inactividad del sistema agregado durante un período predefinido. La disponibilidad estará influenciada por errores del sistema, problemas relacionados con la infraestructura, ataques maliciosos y carga del sistema.

3.Calidades de tiempo de ejecución:

– Actuación:

El rendimiento significa que la capacidad de respuesta de un sistema para ejecutar cualquier acción dentro de un período de tiempo determinado. Se puede medir como latencia o rendimiento. La latencia es el tiempo que se tarda en reaccionar ante cualquier situación. El rendimiento es el número de eventos que ocurren dentro de una medida de tiempo dada.

– Seguridad:

La seguridad es la capacidad de un sistema para evitar actividades maliciosas o accidentales fuera del uso descrito, y para anticipar la exposición o pérdida de datos. Un sistema seguro espera proteger la modificación no aprobada de datos

4. cualidades del sistema:

– Testabilidad:

La capacidad de prueba es una medida de la facilidad para preparar criterios de prueba para el sistema y sus partes, y para ejecutar estas pruebas teniendo en cuenta el objetivo final de determinar si se cumplen los criterios. La gran capacidad de prueba hace que sea más probable que las deficiencias en un sistema puedan aislarse de manera oportuna y exitosa.

5.Calidades del usuario:

– Usabilidad:

La usabilidad caracteriza qué tan bien cumple la aplicación con los requisitos del usuario y el comprador al ser natural, fácil de localizar y globalizar, brindando un buen acceso a los usuarios discapacitados y brindando una experiencia general decente al usuario.

A partir de esto, se puede decir que es importante conocer los atributos de calidad para garantizar el lanzamiento o la entrega de un producto de calidad.

Pruebas de software en Pune, es lo que puede buscar, para saber acerca de los diversos cursos de pruebas que se ofrecen en la ciudad.

Importa !

Las características del software y los atributos de calidad del software son terminologías diferentes .

Tengo una mnemotecnia para recordar los atributos de calidad del software.

Los atributos de calidad del software han recibido el acrónimo FURPS, que puede señalarse como:

funcionalidad, usabilidad, fiabilidad, rendimiento y compatibilidad.

Los atributos de calidad FURPS se describen brevemente:

  1. Funcionalidad Se refiere al grado de rendimiento del software contra su propósito previsto.
  2. Usabilidad: se refiere a la medida en que el software se puede utilizar con facilidad.
  3. Fiabilidad: se refiere a la capacidad del software para proporcionar la funcionalidad deseada en las condiciones dadas.
  4. Actuación: Se mide considerando la velocidad de procesamiento, el tiempo de respuesta, el consumo de recursos, el rendimiento y la eficiencia.
  5. Capacidad de soporte: se refiere a la facilidad con la que los desarrolladores de software pueden transferir software de una plataforma a otra, sin cambios (o con un mínimo).

La única calidad de software más importante que conozco es la tracción del mercado que produce, que es una función directa de cuán felices están los usuarios. Podría reformular como: el grado de utilidad para la audiencia prevista. Esto se refleja (y se mide por) la tracción del mercado producida por el software. Esto no tiene mucho que ver con las cosas técnicas que están sucediendo detrás de escena, sino con todo lo que hace el software. Por ejemplo, el iOS es un trabajo impresionante (para mí y para muchos otros). Como usuario típico, no técnico, satisface mi necesidad, aunque no tengo ni idea de lo bueno que es desde un punto de vista técnico. En realidad no me importa mientras haga lo que quiero que haga. En la superficie, esto puede parecer un criterio bastante superficial para poner en la parte superior, pero le aseguro que este es el factor de calidad único y más importante para cualquier software (o cualquier sistema para el caso): cuán felices y satisfechos están los usuarios. Y lo sorprendente es que esto tiene muy poco que ver con las cosas técnicas y todo lo que tiene que ver con cuán exitosamente se identifican las necesidades de los usuarios (esto se refleja en las Especificaciones del software: qué hace el software para sus usuarios).

Luego viene la noción atractiva, más técnicamente relevante, de sostenibilidad: ¿puede continuar manteniéndolos felices a medida que cambian las necesidades de los usuarios?

En otras palabras: siempre que pueda identificar indefinidamente las verdaderas necesidades de sus usuarios (que cambian constantemente, de ahí la razón de todo esto), ¿puede su software acomodar los cambios con una tasa aceptable? ¿Cuánto tiempo (y menos importante cuánto) se necesitaría para cambiar esta parte o agregar esa característica o integrar esta nueva red social de rápido crecimiento?

La respuesta a estas preguntas habla sobre su Calidad técnica, que en términos generales es el grado en que el software puede modificarse y modificarse (incluida la extensión en direcciones imprevistas). Podrías llamarlo Flexibilidad. Simplemente lo llamo calidad técnica. Un software de buena calidad (técnica) se cambia, modifica y amplía fácilmente. Un software de baja calidad se resiste al cambio. La parte “Cuánto tiempo” de la pregunta anterior se llama “Velocidad”. Muestra, en términos generales, qué tan rápido puede modificar el software. Entonces, el único objetivo de la calidad técnica es mantener la velocidad dentro de márgenes razonables. Esto es muy amplio y se divide en varias partes más manejables, cada una de las cuales contribuye al objetivo general de “Mantener la velocidad lo suficientemente rápido”. Desde una perspectiva ágil, una indicación muy importante de la calidad del sistema es su deuda técnica. Es decir, cuánto “trabajo” necesita el código para volver a estar en buena forma (buena forma = velocidades rápidas). El proceso de recuperar parte del código en buena forma se llama Refactorización. Las refactorizaciones se realizan poco a poco y en pequeños pasos, pero con mucha frecuencia. Recordar:

1- Un software de alta calidad satisface las necesidades de sus usuarios. No hay mejor medida para esto que la tracción del mercado producida por el software. Este tipo de calidad tiene muy poco que ver con la excelencia técnica y con las características y especificaciones del sistema (NO su implementación, su definición).
2 – Un software de alta calidad no es una historia de éxito única. No solo satisface a los usuarios en la versión inicial, sino que es capaz de mantenerse continuamente adoptando rápidamente las necesidades constantemente cambiantes de los usuarios. Este segundo objetivo (que está bastante separado del primero) tiene mucho que ver con los aspectos internos del sistema y sus aspectos técnicos. Un software de alta calidad puede demostrar una velocidad constantemente alta (las cosas se hacen rápido). Un software de baja calidad pierde velocidad (lleva mucho tiempo cambiarlo).

Espero que esto ayude.

  • Modular: Cambiar parte del software o agregar algo nuevo debería ser fácil y sencillo. Si cambiar una cosa lleva a que se rompan muchas otras cosas, no está bien escrito. El código debe estar escrito de tal manera que todas las partes manejen tareas específicas y puedan modificarse, agregarse o intercambiarse fácilmente.
  • Mantenible: el software debe documentarse bien y debe ser fácil de leer y comprender. Cosas como variables apropiadas y nombres de métodos / funciones y un estilo de código consistente.
  • Probable: esto va de la mano con ser modular, pero el software también debería ser fácil de probar. No poder probar el código es una señal de que no está bien escrito.
  • Escalable: Agregar nuevas cosas al software debería ser fácil y no aumentará la complejidad del código. No debería tener que reescribir completamente partes de la base del código para agregar / cambiar algo. El código no debería volverse demasiado complejo cuando continúe expandiéndolo y agregando nuevas características.

Obviamente, debe cumplir con todas las necesidades funcionales del cliente (cada punto del documento de especificación debe cumplirse)

También me necesita algunas necesidades no funcionales, por ejemplo:

  • ergonolmocs (eficiencia, fácil uso, amigable interfaz hombre-máquina)
  • velocidad de conexión a la base de datos y navegación si estamos hablando de una aplicación web
  • Volumen de datos que el software podría manejar

Pero para ser breves, un buen software es un software que es aceptado e incluso apreciado por el usuario.

Creo que depende de tu perspectiva.

Desde la perspectiva del usuario: funciona a la perfección, es perfectamente intuitivo, hace exactamente lo que el usuario quiere y nada más.

Desde una perspectiva de ventas: tiene un conjunto de características competitivas que hace una buena copia de marketing, es “adhesivo”, por lo que una vez que un usuario se ha registrado en él, es poco probable que se vaya, tiene características interesantes lanzadas regularmente que se pueden mostrar en los shows ( dependiendo del tipo de software).

Desde una perspectiva de ingeniería: utiliza tecnologías modernas, no está plagado de casos especiales y hacks, tiene una buena separación de preocupaciones (este módulo hace X, esto hace Y), es escalable (cuando el número de usuarios aumenta, no lo hará tiene que ser rediseñado para permitir un equilibrador de carga, etc. Un mínimo de código que solo Joe / Josephine puede entender.

Existe una tendencia creciente de medir la deuda técnica, que es una consolidación de varios de los atributos de calidad mencionados más cobertura.

No te das cuenta de que está ahí. Simplemente está derribando la tarea que tiene entre manos, como si la computadora y el software no existieran.

More Interesting

¿Qué significan algunas plataformas como Youtube para desarrolladores?

¿Por qué deberíamos usar la gestión de configuración de software?

Si disfruto la creación de software y la programación de sistemas más que la programación competitiva, ¿cómo puedo construir mi carrera sin un perfil de codificación, como estudiante de CSE?

¿Qué es la refactorización de código y para qué se utiliza?

¿Hay algún programador o desarrollador realmente técnico / bueno que tenga dislexia?

¿Qué costos adicionales además del costo del software deben considerarse al seleccionar el software ERP?

¿Cuál es la diferencia entre ingeniería informática y de software?

¿Cuál es el error más extraño que has tenido?

¿Cuál es la principal diferencia entre un investigador informático y un ingeniero de software?

Si encargué a una empresa de software que construyera un procesador de Word similar a Word 2003 de OpenOffice o LibreOffice, pero con funciones de diseño mucho mejores, ¿cuál es el presupuesto que necesitaría?

Quiero comenzar un proyecto de programación por diversión. ¿Cuáles son los pasos que debo seguir antes de escribir líneas de código?

¿Por qué es tan difícil aprender el desarrollo web? Me encanta Java / C ++ / Obj-C, pero JavaScript y los múltiples frameworks / bibliotecas como Backbone, jQuery, etc., me están volviendo loco.

¿Cuáles son las cosas que realmente le gustan y las mejores prácticas en herramientas específicas de gestión de información y software de productividad?

¿Están "contaminados" los programadores que tienen una exposición significativa al código fuente patentado o al código fuente GPL?

Herramienta de gestión de recursos - UK Call Center - ¿Necesita un sistema para organizar al personal, alguna idea?