Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
IMPACTO DE LAS PRUEBAS NO FUNCIONALES EN LA MEDICIÓN DE LA
CALIDAD DEL PRODUCTO SOFTWARE DESARROLLADO
Asesor
Ph.D. JULIO CESAR CHAVARRO
Docente
2
Nota de aceptación
________________________________
________________________________
________________________________
________________________________
________________________________
________________________________
Presidente del Jurado
________________________________
Jurado
________________________________
Jurado
3
CONTENIDO
pág.
INTRODUCCION. .................................................................................................. 10
1. EL PROBLEMA OBJETO DE ESTUDIO. GENERALIDADES ........................... 11
1.1 DEFINICIÓN DEL PROBLEMA ....................................................................... 11
1.2 JUSTIFICACIÓN .............................................................................................. 13
1.3 OBJETIVOS ..................................................................................................... 14
1.3.1 Objetivo general ........................................................................................... 14
1.3.2 Objetivos específicos .................................................................................... 15
1.4 MARCO CONCEPTUAL .................................................................................. 15
1.4.1 Calidad del software ..................................................................................... 15
1.4.2 Ciclo de vida del software ............................................................................. 15
1.4.3 Procesos ....................................................................................................... 15
1.4.4 Pruebas no funcionales ................................................................................ 16
1.4.5 Verificación de software ................................................................................ 16
1.4.6 Validación de Software ................................................................................. 16
1.4.7 CMMI (Capability Maturity Model Integration). .............................................. 16
1.4.8 Scampi .......................................................................................................... 16
1.4.9 IT-Mark.......................................................................................................... 17
1.4.10 ISO 9001 ..................................................................................................... 17
1.4.11 ITIL .............................................................................................................. 17
1.4.12 MoProSoft ................................................................................................... 17
1.4.13 Probar software ........................................................................................... 18
1.4.14 Depurar software ........................................................................................ 18
1.4.15 No conformidad y/o hallazgo ....................................................................... 18
1.4.16 Pruebas funcionales. .................................................................................. 18
4
1.4.17 Pruebas no funcionales............................................................................... 19
1.5 MARCO TEÓRICO .......................................................................................... 19
1.6 MARCO HISTÓRICO ....................................................................................... 21
1.6.1 Empresas colombianas de Testing ............................................................... 21
2. LAS PRUEBAS NO FUNCIONALES. ................................................................ 24
2.1 CARÁCTER DE LAS PRUEBAS NO FUNCIONALES .................................... 24
2.1.1 Estándares relacionados con las pruebas de software ................................. 24
2.1.2 Ingeniería de requerimientos ........................................................................ 25
2.1.3 Estrategias de pruebas de software en general ............................................ 33
2.1.4 Descripción del proceso de pruebas no funcionales. .................................. 34
2.1.5 Desarrollo de caso de prueba ....................................................................... 39
3. MÉTODOS DE PRUEBAS. ................................................................................ 41
3.1 MÉTODOS ESTÁTICOS.................................................................................. 42
3.1.1 Inspecciones ................................................................................................. 42
3.1.2 Walkthroughs ................................................................................................ 44
3.2 MÉTODOS DINÁMICOS.................................................................................. 44
3.2.1 Pruebas de unidad. ....................................................................................... 45
3.2.2 Pruebas de integración ................................................................................. 45
3.2.3 Pruebas de sistema. ..................................................................................... 46
3.3 ATRIBUTOS DE CALIDAD DEL SOFTWARE QUE SON EVALUABLES AL
APLICAR PRUEBAS NO FUNCIONALES ............................................................. 47
3.3.1 Características evaluables del requerimiento de Fiabilidad ......................... 50
3.3.2 Características evaluables del requerimiento de Portabilidad...................... 51
3.3.3 Características evaluables del requerimiento de Eficiencia ......................... 52
3.3.4 Características evaluables del requerimiento de Mantenibilidad ................. 53
3.3.5 Características evaluables del requerimiento de Usabilidad ........................ 54
3.4 ANÁLISIS DEL PAPEL ASIGNADO A LAS PRUEBAS NO FUNCIONALES EN
LAS METODOLOGÍAS ÁGILES Y EN LAS METODOLOGÍAS TRADICIONALES.
............................................................................................................................... 62
5
3.4.1 Pruebas no funcionales según Metodologías ágiles. .................................... 62
3.4.2 Pruebas no funcionales según metodologías tradicionales .......................... 65
3.4.3 Metodología de pruebas en V ....................................................................... 68
4. METRICAS PROPUESTAS PARA LA MEDICIÓN DE LOS REQUERIMIENTOS
NO FUNCIONALES. .............................................................................................. 70
4.1 RECOPILACIÓN DE MÉTRICAS PARA ATRIBUTOS DE CALIDAD VISTOS
COMO REQUERIMIENTOS NO FUNCIONALES ................................................. 70
4.2 MÉTRICAS PARA VALIDAR LOS REQUISITOS NO FUNCIONALES ........... 73
4.2.1Usabilidad. ..................................................................................................... 73
4.2.2 Fiabilidad....................................................................................................... 74
4.2.3 Portabilidad ................................................................................................... 75
4.2.4 Mantenibilidad ............................................................................................... 75
4.3 PROPUESTA DEL MÉTODO DE EVALUACIÓN DE LOS REQUERIMIENTOS
NO FUNCIONALES. .............................................................................................. 76
4.3.1 Fase 1. Levantamiento de requerimientos. ................................................... 76
4.3.2 Fase 2. Análisis ............................................................................................. 77
4.3.3 Fase 3. Diseño .............................................................................................. 78
4.3.4 Fase 4. Implementación ................................................................................ 79
4.4 DEFINICIÓN DEL MÉTODO DE EVALUACIÓN. ............................................. 80
4.4.1 Roles y responsabilidades ............................................................................ 80
4.4.2 Planificación de las pruebas ......................................................................... 81
4.4.3 Diseño de las pruebas .................................................................................. 82
4.4.4 Ejecución de las pruebas. ............................................................................. 83
4.4.5 Análisis de los resultados.............................................................................. 83
4.4.6 Validar criterios de aceptación ...................................................................... 83
4.4.7 Certificación ................................................................................................. 83
4.5 AUTOMATIZACIÓN DE PRUEBAS A ATRIBUTOS NO FUNCIONALES,
USANDO HERRAMIENTAS PARA LA EVALUACIÓN DE LOS ATRIBUTOS ..... 84
5. CONCLUSIONES Y RECOMENDACIONES. ................................................... 87
6
BIBLIOGRAFÍA ...................................................................................................... 89
7
LISTA DE TABLAS
pág.
8
LISTA DE FIGURAS
Pág.
9
INTRODUCCION.
10
1. EL PROBLEMA OBJETO DE ESTUDIO. GENERALIDADES.
Dichas formas de mejoramiento, son entre tanto no solo los modelos de mejora
de proceso disponibles, sino además que se encuentren al alcance financiero de
la empresa, o se halla también a través de adopciones de buenas prácticas de
desarrollo, sin la supervisión de alguna entidad autorizada para certificarles los
avances de mejora realizados, o a través de los apoyos que proporciona el
gobierno por medio del Ministerio de Tecnologías de la Información y las
comunicaciones.
1
Departamento Administrativo Nacional de Estadística
2
HESHUSIUS RODRÍGUEZ, Karen, Desafíos de una industria en formación. Mayol Ediciones.2009.293p.
ISBN 978-958-8307-56.
3
CUESTA MEZA, Albeiro. Caracterización de la industria del software en el triangulo del café-Colombia.Madrid.2008.9P.
11
de desarrollo del producto software, por ende, olvidan también las pruebas no
funcionales.
Las fábricas de software del país, no sólo se enfrentan contra su propios
parámetros establecidos para sus proyectos de desarrollo, como lo es tiempo, el
precio final, entre otros, sino que además, deben enfrentar al mercado respectivo,
el cual exige ser competitivo debido a la globalización.
Es por lo anterior que las actuales empresas del gremio, deben contar con un alto
grado de especialización en sus funciones, lo cual han logrado en el país ―130
empresas mediante la certificación ISO 9000, una empresa con certificación
CMMI categoría V y otras cinco están en proceso de obtener esta certificación‖4,
datos correspondientes al 2006.
Se puede entonces inferir, que un porcentaje menor a la cuarta parte del total de
las casas desarrolladores de software existentes en el país, realizan un proceso
completo para desarrollar su producto con calidad. Se exceptúan aquellas que
sólo cuentan con certificación ISO 9000, ya que esto no garantiza que se lleve a
cabo el proceso formal de aplicación de pruebas, tanto funcionales como no
funcionales. Finalmente, la ISO 9000 no garantiza que se aporte a la calidad del
producto desarrollado, por el contrario si garantiza, que se realiza una gestión en
el proceso de desarrollo con calidad.
4
HESHUSIUS RODRÍGUEZ, Karen, Desafíos de una industria en formación. Mayol Ediciones.2009.293p.
ISBN 978-958-8307-56.
12
¿Es posible determinar el conjunto de características de los requerimientos no
funcionales que permitan mejorar la calidad del software, al aplicar pruebas no
funcionales?
1.2 JUSTIFICACIÓN
Colombia alcanzó una tasa de crecimiento del 48%, en el mercado del software
latinoamericano, entre el 2000 y el 2004. Y de acuerdo con las estadísticas
ofrecidas por el DANE entre 1995 y el 2004 se duplicó el número de empresas
dedicadas al desarrollo de Software. Esto afirma el incremento desmesurado de
casas desarrolladoras de software tanto a nivel regional, como nacional.
En el país la industria del software tiene una tendencia exponencial donde a mayor
tiempo, mayor cantidad de proveedores software, y de igual forma se incrementa
la cantidad de consumidores, los cuales cada vez requieren productos con
características más complejas, las cuales se traducen en condiciones críticas del
software, al ser productos innovadores.
13
Se busca entonces establecer un instrumento teórico que permita a las
organizaciones del segmento de mercado afectado, la orientación hacia la mejora
de la calidad, mediante la aplicación de pruebas no funcionales, si se tiene en
cuenta que ―la única estrategia posible para el proveedor es conseguir la calidad
solicitada al menor coste posible‖5, para lograr ser competitivos en el mercado, ya
que la calidad en el software, aunque es tomada como trascendental y evidente
que exista en los productos desarrollados, y su grado de importancia es tan alto,
que efectivamente se logre afectar cada acción de la vida moderna.
1.3 OBJETIVOS
5
PIATTINI VELTHUIS, MARIO G. Calidad de Sistemas Informáticos. ISBN 978-84-7897-734-5
14
1.3.2 Objetivos específicos
1.4.2 Ciclo de vida del software. Un modelo de ciclo de vida software es cualquier
caracterización descriptiva de la evolución del software. Es sencillo articular un
modelo de ciclo de vida que indique cómo deben ser desarrollados los sistemas
software. Esto es posible ya que la mayor parte de los modelos son intuitivos, por
lo que muchos detalles de desarrollo pueden ser ignorados o generalizados. Sin
embargo, puede preocupar la relativa validez y robustez de tales ciclos de vida
cuando se desarrollan diferentes clases de aplicaciones en diferentes entornos de
desarrollo."Hay que observar o recoger datos durante todo el proceso de
desarrollo de un sistema; periodo de tiempo que suele medirse en años‖.
15
1.4.4 Pruebas no funcionales. Éstas se realizan para verificar que el software
desarrollado cumple con los requerimientos no funcionales establecidos por el
cliente. Existen varios tipos de pruebas no funcionales, entre las más comunes
están las pruebas de seguridad, pruebas de rendimiento, pruebas de usabilidad,
pruebas de portabilidad, entre otras.
Las categorías de las áreas de proceso de CMMI son gestión de procesos, gestión
de proyectos, ingeniería y soporte.
16
Los métodos de evaluación SCAMPI son generalmente métodos aceptados que
se usan para realizar evaluaciones utilizando modelos CMMI. El Documento de
definición del método —Method Definition Document (MDD) de SCAMPI— define
las reglas para asegurar la consistencia de las calificaciones de la evaluación.
1.4.10 ISO 9001. es una norma internacional que se aplica a los sistemas de
gestión de calidad (SGC) y que se centra en todos los elementos de
administración de calidad con los que una empresa debe contar para tener un
sistema efectivo que le permita administrar y mejorar la calidad de sus productos o
servicios.7
6
Resumen modelo IT-Mark web-http://www.fedesoft.org/downloads/Sinertic/RESUMEN_MODELO_IT_MARK.pdf
7
Normas ISO 9000. Web-http://www.normas9000.com/index.html
17
mantienen software para ofrecer servicios con calidad y alcanzar niveles
internacionales de competitividad. 8
1.4.14 Depurar software: Detectar el lugar donde existe el error, por consiguiente
su eliminación de su origen.
8
Moprosoft web-http://moprosoft.info/Quees.aspx
9
Manual de procedimientos Aseguramiento de calidad del software. Web-http://procesos.univalle.edu.co. Mayo 2009
18
1.4.17 Pruebas no funcionales. Aquellas evaluaciones que se realizan sobre los
elementos que están ―presentes en los resultados de la ejecución de
10
funcionalidades del sistema‖ .
Lo anterior es sólo una muestra de aquellas causas que provocan que la eficiencia
y eficacia de las organizaciones desarrolladoras de software, no se alcancen,
además de no permitir una conclusión con éxito de sus proyectos propuestos, y
que finalmente terminen siendo una pérdida, tanto en presupuesto, como en
tiempo tanto por parte del cliente como de la empresa.
10
Manual de procedimientos Aseguramiento de calidad del software. Web-http://procesos.univalle.edu.co. Mayo 2009
19
Con base al artículo del The Economic Times, ―Testing becoming the fastes –
growing niche within the IT space‖11, en el que se confirma que las actividades del
desarrollo de pruebas están en continuo crecimiento y que además permite
avanzar hacia la calidad en los productos software.
El director de Sistemas Maveric, Ranga Reddy, comenta que el giro que ha dado
el proceso de pruebas sobre el desarrollo software, ha sido drástico, ya que se
afecta de forma positiva el tema presupuestal específicamente. Es decir que las
compañías de tecnología, se están orientando hacia mejorar la calidad de sus
productos software, incluyendo el proceso de pruebas dentro de su estructura
organizacional.
12
HESHUSIUS RODRÍGUEZ, Karen, Desafíos de una industria en formación. Mayol Ediciones.2009.293p.
ISBN 978-958-8307-56.
20
en riesgo a la empresa o personas, un ejemplo de ello es el software realizado
para los aviones, el cual sino es confiable expone la vida de la clientes que viajan,
es por esto que las pruebas no funcionales son parte importante en el calidad del
software, donde se busca explotar al máximo los beneficios de la aplicación y no
se incremente su costo.
- Choucair Testing S.A. ―Su servicio se realiza de forma paralela a las diferentes
etapas de desarrollo de software y comprende pruebas funcionales, de
rendimiento, de seguridad en aplicativos y de migración de datos‖13.
13
Ventana informática. Pruebas de software y gestión documental. Julio 2009. 200p. ISSN 0123 – 9678.
21
- Green SQA. ―Ofrece servicios de Pruebas de Software, Aseguramiento de
Calidad y Consultoría a la industria del software, contribuyendo al aumento de la
productividad y competitividad de las empresas mediante la optimización de sus
procesos de desarrollo.
- Galia Technologies Ltda. ―GaliaTech fue creada con el fin de ofrecer al mercado
regional el conocimiento y experiencia que sus socios han obtenido a lo largo de
sus años como consultores del área de TI. Cuya visión es la de convertirse en una
de las empresas de tecnología con mayor cobertura y conocimiento en procesos
de calidad; apoyando a las compañías de la región en mejorar sus servicios de TI,
logrando así, el fortalecimiento de estas y la satisfacción de sus usuarios‖.17
14
Green SQA .Web- http://www.greensqa.com/. Septiembre 2010.
15
Software Quality Assurance, SQA S.A.Web - http://www.sqasa.com/
16
Litsa Consulting Ltda. Web - http://www.litsacnsulting.com/
17
Galia Technologies Ltda .Web- http://www.galiatech.com/empresa.htm
22
logro de sus objetivos y alcanzar el éxito en informática, la manera de hacerlo
siempre ha sido apoyándonos en los estándares mas reconocidos y con mayores
resultados a nivel mundial, por este motivo nos hemos convertido en un referente
en la utilización de las buenas.
Para finalizar, ―la calidad es la piedra angular sobre la cual todas las otras
estrategias necesitan descansar, tales como la innovación, administración
financiera y planificación‖19.
18
Indudata . Web- http://www.indudata.com/
19
HAMMOND,Joshua. Presidente American Quality Foundation
23
2.LAS PRUEBAS NO FUNCIONALES.
-Pruebas de unidad del software. Es la conducta que toman las pruebas locales
frente a un modulo del sistema, es decir, sirven para demostrar o determinar si el
funcionamiento de un modulo es el correcto. Estas pruebas también son
conocidas como pruebas unitarias.
24
-ISO/IEC 29119. Estándar de pruebas software: sirve de base a las pruebas en el
mundo de desarrollo del software eliminando inconsistencia entre algunas normas
actuales, las cuales no cuentan con pruebas establecidas.
ISO/IEC 9126 Factores de calidad del software. El estándar ISO/IEC 9126 fue
reemplazado por SQuaRE, ISO 25000:2005 el cual contiene los identicos
parámetros. Este estándar se divide en cuatro partes las cuales son modelo de
calidad, métricas externas, métricas internas y calidad en las métricas de uso.
Esta norma fue creada con el fin de evaluar los productos de software, señalando
las propiedades de la calidad, también puede ser de utilidad para definir los
requerimientos de calidad.
25
- Entrevistas.
- Intercambio de opiniones entre el equipo de trabajo.
- Lluvia de ideas entre el grupo de trabajo (Brainstorming).
- Cuestionario (Check-List)
- El sistema debe …
- Se requiere que el sistema …
- El sistema hará …
26
Figura 1. Tipos de requerimientos.
-Requerimientos del usuario: Sentencias de la visión que el cliente tiene del qué
debe hacer el sistema, declarado en su lenguaje natural, conteniendo también las
restricciones que éste establece, las cuales no afectan la parte operativa del
sistema.
27
Tabla 1.Requerimientos funcionales y no funcionales
Tabla 2. Restricciones.
+ (Restricciones)
Requisitos de implementación Estándares de codificación, Lenguajes de
Implementación, Políticas de integridad de BD
Requisitos de diseño Restricciones de diseño -
Sistemas operativos
-Ambientes
-Compatibilidad
-Estándares
Requisitos de interfaces Elementos externos con los que no interactuar,
Restricciones de formato y otros factores usados por
una interacción
22
SOMMERVILLE, Ian, Ingeniería de software . Séptima edición.Madrid, España: Pearson Educación S.A, 2005. 667p.
28
-Requerimientos no funcionales (URPS): ―Describen atributos del sistema o
atributos del ambiente del sistema‖23. Éste tipo de requisitos se divide en
―requerimientos del producto, requerimientos organizacionales, requerimientos
externos‖24.
Fiabilidad (Reliability)
Usabilidad (Usability)
Portabilidad
Eficiencia
Capacidad de soporte (Supportability)
23
SCALONE, Fernanda. Estudio comparativo de los modelos y estándares de calidad del software.Buenos Aires,
Argentina. junio 2006. 138p.
24
SOMMERVILLE, Ian, Ingeniería de software . Séptima edición.Madrid, España: Pearson Educación S.A, 2005. 667p.
29
De los tres anteriores se derivan a su vez de la manera como se observa en la
figura 1.
30
mientras que el segundo, se define para encontrar el lugar de origen del error y
erradicarlo. Donde primero se prueba para luego depurar.
Se toma entonces como concepto de pruebas de software al ―proceso
empleado para identificar que una aplicación sea correcta, completa, segura y de
buena calidad en el desarrollo‖25. Es considerado un proceso complejo de aplicar
dentro del ciclo de vida del desarrollo es, significando un alto costo, pero de igual
considerado ―elemento crítico para determinar la calidad del producto‖26.
Teniendo claro lo anterior, se pasa entonces a definir que para mejorar la calidad
del producto, se inicia por el proceso de pruebas, y para fines del presente
proyecto monográfico, sólo se hace énfasis en pruebas no funcionales. Las cuales
se deben realizar a lo largo del ciclo de vida del desarrollo de software, es decir,
debe ser transparente al ciclo de vida:
25
Definición de testeo de software. Santa fé.Web-http://www.alegsa.com.ar/Dic/testeo%20del%20software.php. 2008.
26
VENTANA INFORMÁTICA. Pruebas de software y gestión documental. Julio 2009.197p. ISSN 0123 – 9678.
31
proceso va siempre al final de cada fase del ciclo de vida del desarrollo (Figura 1).
Pudiéndose inferir que la baja calidad de un producto, se observa con la cantidad
de reporte de errores, por ende, mayor soporte al cliente.
27
SOMMERVILLE, Ian, Ingeniería de software . Séptima edición.Madrid, España: Pearson Educación S.A, 2005. 667p.
28
AGUIAR FERNÁNDEZ , María del Mar. Ingeniería del software y pruebas.. Revista española de electrónica. Septiembre
2000. 90p. Número 550.
32
Es válido aclarar que la verificación tiene como principal objetivo, determinar si el
producto cumple con los requerimientos funcionales y no funcionales
especificados por el cliente, mientras la validación determina si el software
funciona correctamente y satisface las expectativas que el cliente tiene sobre este.
Es por ello que hay que realizar bien las actividades desde la primera vez, o
también conocido como RFT.
33
Figura 6. Estrategias de pruebas.
34
La planeación de pruebas logra enfocar al grupo que realiza estas cual es la
situación aplicativo y así prepararlos a los diferentes tipos de pruebas que se van
a emplear.
35
Tabla 3. Estándar de la IEEE 829-1983.
Las pruebas pueden ser planteadas por componentes o módulos, de tal forma que
se inicie desde lo más pequeño hacia lo más grande e integrado
29
Proyecto de grado, plan de negocios para la creación de servicio y asesoría de pruebas de software. Web-
http://recursosbiblioteca.utp.edu.co/tesisdigitales/texto/65811M828.html
36
La realización del diseño de los casos de pruebas tiene un objetivo más, en el
cual se busca determinar si estas cumplen con la verificación y validación de los
requerimientos no funcionales.
Los productos de software se pueden probar utilizando dos criterios los cuales
son:
37
Es fácil desviarse del objetivo principal de las pruebas no funcionales, como ya se
había mencionado antes, ya que se puede visualizar como que su prioridad es la
de demostrar que no hay errores de este tipo, es decir, que toman como el
proceso exitoso al no hallar errores, fallas o defectos, estando en una total
equivocación. El ejemplo más claro lo presentan los desarrolladores, puesto que
éstos al ejecutar sus pruebas unitarias, se conocen el camino común y sin errores,
saltando sobre los mismos, una y otra vez, es decir, que no están buscando los
errores, sino que están demostrando que el software funciona correctamente y por
tanto que corresponde a una confiabilidad total del mismo.
Por otra parte, quien debe realizar las pruebas, no debe ser el mismo personal
involucrado en el desarrollo del producto, ya que éstos no guardan una madurez lo
suficientemente firme, como para criticar de forma constructiva su propia creación,
además no visualiza más allá de lo que ya conoce del producto, lo cual genera
que siempre ejecute el mismo curso, obviando caminos distintos, por donde
posiblemente se encuentren fallas, errores, defectos.
En cuanto a las entradas del proceso de pruebas, se debe establecer una bitácora
de datos, los cuales no deben ser datos reales, acatando la circular externa 052
38
del 2007, ―No utilizar datos de producción en los ambientes de pruebas‖30. Esta
bitácora de datos permite visualizar distintas situaciones.
Cada entrada es conocida como caso de prueba, el cual debe tener definidas los
objetivos, tanto las respuestas esperados, como las equivocadas, por cada caso
de prueba.
Los ingenieros probadores o tester son quienes toman los requerimientos como
base para desarrollar las pruebas de verificación y validación para el sistema. Por
lo tanto son los encargados de definir los casos de pruebas, los cuales deben
tenerlos bien documentados, teniendo un conocimiento previo del producto e
informándose con el equipo desarrollador.
- Id caso de prueba
- Módulo a probar
- Descripción del caso
- Pre-Requisitos
- Data necesaria (valores a ingresar)
- Pasos o secuencia lógica
- Resultado esperado (Correcto o Incorrecto)
- Resultado Obtenido
- Observaciones o comentarios
- Analista de Pruebas (Responsable de las pruebas)
- Fecha de ejecución
- Estado (concluido, pendiente, en proceso)
30
. Superintendencia financiera de Colombia. Web-http://www.netsecuritysuite.com/pdf/Norma-052.pdf .Circular externa
052 del 2007
39
Tabla 4. Plantilla recomendada para caso de prueba.
40
3.MÉTODOS DE PRUEBAS.
Aunque existen dos tipos de métodos de pruebas, los estáticos y los dinámicos, se
orientarán hacia su aplicación a atributos no funcionales para esta monografía.
Algunos de los niveles de pruebas que existen son las pruebas unitarias,
integración, sistema y aceptación.
41
Tabla 5. Niveles de pruebas.
Niveles de Pruebas
Pruebas Objetivos Integrantes Ambiente Método
Encontrar errores
Unitarias de logica y Programadores Desarrollo Caja Blanca
algoritmos
Encontrar errores
de interfaz y las
relaciones Caja Blanca,
Integración existente entre los Programadores Desarrollo Ascendente,
componentes Descendente
Encontrar errores
en la
Funcional implementación Tester,Analistas Desarrollo Funcional
de requerimientos
Encontrar fallas en
Sistema los requerimientos Tester,Analistas Desarrollo Funcional
Encontrar falla en
la implementacion Tester,Analistas,
Aceptación Productivo Funcional
del sistemas Cliente
31
Inspecciones. Web-http://www.sidar.org/recur/desdi/traduc/es/visitable/inspeccion/FUInsp.htm
42
Los datos recolectados serán informados o intercambiados en reuniones formales,
así, cuando se ha encontrado los defectos por el equipo inspector, serán
pasados al equipo diseño.
En las reuniones formales que se realizan, cada inspector deberá asumir uno de
los siguientes roles:
Inspector: las personas faltan pueden tomas varios roles, los cuales son
inspeccionar el diseño presentando documentación de las deficiencias
43
Estas técnicas de inspección se pueden realizar usando diferentes medios de
evaluación, entre ellos los siguientes:
3.1.2 Walkthroughs (Paseos cognitivos). Son revisiones que se llevan a cabo sin
la ejecución de código.
33
Inspecciones. Web-http://webusable.com/useTechniques_B.htm
44
3.2.1 Pruebas de unidad. ―Se puede decir que una prueba unitaria es una
actividad mediante la cual se ejecuta un proceso a partir de unos datos de
entrada, que son los casos de prueba, y que llega a una salida determinada,
buscando detectar los posibles defectos de su interior‖34. Se ejecutan hasta
alcanzar un nivel definido como óptimo.
Estas pruebas empiezan desde el modulo inferior hasta llegar al modulo superior
de la jerarquía. A medida que las pruebas avanzan desde el nivel inferior hasta el
superior se reducen el número de pruebas que se realizan por separado.
Algunas de las ventajas que se encuentran en las pruebas ascendentes son las
desventajas de las pruebas descendentes y viceversa. La selección de la prueba
ya sea descendente o ascendente depende primordialmente del producto a
desarrollar y en otras ocasiones del plan que se tenga del proyecto.
34
AGUIAR FERNÁNDEZ , María del Mar. Ingeniería del software y pruebas.. Revista española de electrónica. Septiembre
2000. 94p. Número 550.
45
Esta se realizan empezando desde el modulo principal hasta llegar a los módulos
inferiores en jerarquía. Las pruebas se encuentran manejado por el modulo de
control principal y estas a su vez estas se van desplazando a módulos inferiores,
se debe tener en cuenta que las pruebas se realizan cada vez que un nuevo
modulo ingrese o se cree.
3.2.3 Pruebas de sistema. Tienen como objetivo principal hallar los errores en
integración. Son aplicables a los cinco atributos de calidad de software.
46
-Pruebas de desempeño
Con este tipo de pruebas se busca llevar al límite la capacidad de tolerancia del
sistema, a través de diversas formas, puede ser, iniciando sesión con una
cantidad de usuarios al sistema, y ―si el sistema debe gestionar x mega – bits por
segundo de una línea de comunicaciones, probar a aumentar ese ancho de
banda‖35 de tal forma que se llegue a un dato que indique dicho límite del sistema.
35
RAMÓN ÁLVAREZ, José - ARIAS CALLEJA, Manuel. Análisis, diseño y mantenimiento del software.Departamento de
Inteligencia-Artificial–ETSI-Informática-UNED. Web- http://www.ia.uned.es/ia/asignaturas/adms/GuiaDidADMS/node49.html.
Consulta [20/09/2011]
47
Figura 7. Jerarquía de requisitos no funcionales.
48
establece como cinco categorías, siendo los mismos requerimientos. De lo anterior
se determinan las categorías y atributos que interesan para la actual monografía.
- Funcionalidad
- Usabilidad
- Eficiencia
- Fiabilidad
- Portabilidad
- Mantenibilidad
Entendiéndose como atributo, aquella entidad que tiene un producto software, que
posee la característica de poder ser verificada o medida. Donde la medición
implica asignar un valor a dicha entidad.
49
Adicionalmente, se hace necesario reconocer la alta dificultad para independizar
los requerimientos funcionales de los no funcionales, ya que esto también
depende del nivel de detalle al que se quiera llegar en su recopilación.
Características evaluables
Madurez: Capacidad del producto software para evitar fallar como resultado de
fallos o defectos en el software.
50
Tolerancia a fallos: Capacidad del software para mantener un nivel especificado
de desempeño en caso de fallos del software o de infringir sus interfaces
especificados.
Características evaluables
Coexistencia: Capacidad del producto software para coexistir con otro software
independiente, en un entorno común, compartiendo recursos comunes.
Capacidad para reemplazar: Capacidad del producto software para ser usado en
lugar de otro producto software, para el mismo propósito, en el mismo entorno.
51
Cumplimiento de la portabilidad: Capacidad del producto software para adherirse a
normas o convenciones relacionadas con la portabilidad.
Características evaluables
52
De este atributo se derivan las características de rendimiento, escalabilidad.
Características que enmarcan entre otros, los tiempos de respuestas solicitados
por el cliente, capacidades de ofrecer un servicio de acuerdo lo solicitado.
Se ejecutan sobre los procesos críticos del aplicativo. Donde los procesos críticos
deben ser definidos por el director del proyecto y el equipo de trabajo.
36
SERNA, Sergio. Especificación formal de requisitos temporales no funcionales. Web-
http://www.bdigital.unal.edu.co/3928/1/98553427_2011_1.pdf. Consulta [21/09/2011]
53
Tabla 9. RFN Mantenibilidad.
Características evaluables
Capacidad para ser analizado: Es la capacidad del producto software para serle
diagnosticadas deficiencias o causas de los fallos en el software, o para identificar
las partes que han de ser modificadas, es decir, es el grado de complejidad para
diagnosticar deficiencia y causas de falla
Capacidad para ser modificado: Capacidad del producto software que permite que
una determinada modificación sea implementada.
Capacidad para ser probado: Capacidad del producto software que permite que el
software modificado sea validado, es decir, facilidad de ser probado
54
Tabla 10. RFN Usabilidad.
Características evaluables
Capacidad para ser entendido: Capacidad del producto software que permite al
usuario entender si el software es adecuado y cómo puede ser usado para unas
tareas o condiciones de uso particulares.
Capacidad para ser aprendido: Capacidad del producto software que permite al
usuario aprender sobre su aplicación.
Capacidad para ser operado: Capacidad del producto software que permite al
usuario operarlo y controlarlo.
55
afirmar que “las pruebas y evaluaciones durante el desarrollo del producto han
ganado amplia aceptación como estrategia para mejorar la calidad del
37
producto‖ . Es decir, que ya se considera como uno de los atributos
fundamentales para alcanzar el éxito de un proyecto. Lo cual ha generado ―un
interés creciente en el mundo del desarrollo de software como factor de calidad‖38.
37
Revista EIA. Escuela de Ingeniería de Antioquia, Medellín (Colombia). Julio 2010. 123p .Numero 13. ISSN 1794-1237.
38
FERRÉ, 2003; CHEIKHI, Abran y SURYN, 2006.
39
SHNEIDERMAN y PLAISANT. 2006
56
Grupos de usuarios de pruebas:
- Métodos de análisis: En ésta se busca observar la facilidad con que los usuarios
realizan determinadas operaciones en el aplicativo.
40
Revista EIA.Escuela de Ingeniería de Antioquia, Medellín (Colombia). Julio 2010.127p. Numero 13.ISSN 1794-1237
57
- Métodos de inspección: Principalmente se busca evaluar la interfaz
41
Revista EIA. Escuela de Ingeniería de Antioquia, Medellín (Colombia). Julio 2010.125p. Numero 13.ISSN 1794-1237
58
varios artefactos entregables, quienes a su vez cada uno tiene asignado un
identificador. Finalmente esta plantilla permite realizar una evaluación consistente
y objetiva hacia el atributo de usabilidad.
Para la propuesta, cada etapa genera unos resultados, los cuales se toman como
entradas para la etapa siguiente. Donde dicho ciclo de desarrollo se toma de
forma cíclica e iterativa, beneficiándose por las retroalimentaciones que se
generan por cada ciclo de ejecución.
59
Tabla 11. Esquema general de las listas de chequeo modificadas.
60
Tabla 12. Tareas y artefactos de usabilidad propuestos.
61
3.4 ANÁLISIS DEL PAPEL ASIGNADO A LAS PRUEBAS NO FUNCIONALES EN
LAS METODOLOGÍAS ÁGILES Y EN LAS METODOLOGÍAS TRADICIONALES.
Las metodologías tradicionales se caracterizan por ser muy rígidas y por su alta
documentación en cada una de las actividades desarrolladas.
XP es una las metodologías ágiles que han tenido gran a aceptación en el mundo
de desarrollo de software, donde se cuenta con cuatro variables que son costo,
tiempo, calidad y alcance.
No hay una metodología, ya sea ágil o tradicional que proporcione una total
garantía en el desarrollo de un proyecto de software cualquiera, debido a que se
tiene que observar el ambiente donde se va a desarrollar este.
62
Tabla 13. Diferencias entre metodologías ágiles y metodologías tradicionales.
63
Para XP las pruebas son inseparables del desarrollo42, y es por ello que XP
sugiere que a lo largo del ciclo de desarrollo se realicen test continuos, de tal
forma que sea posible la adaptación del producto a los cambios solicitados por el
cliente, y por tanto define que:
.
También realiza el seguimiento del progreso de cada iteración y evalúa si los
objetivos son alcanzables con las restricciones de tiempo y recursos presentes.
Determina cuándo es necesario realizar algún cambio para lograr los objetivos de
cada iteración.‖ 44
42
SOMMERVILLE, Ian. Ingeniería de software. Séptima Edición. Madrid, España: Pearson Educación S.A, 2005. 677 p
43
Metodologías ágiles para el desarrollo de software: eXtreme Programming (XP).Web -
http://www.willydev.net/descargas/masyxp.pdf
44
Metodologías ágiles para el desarrollo de software: eXtreme Programming (XP).Web -
http://www.willydev.net/descargas/masyxp.pdf
64
Ya sean pruebas funcionales o no funcionales en las metodologías ágiles como
XP se cuenta con un diseño de pruebas bien estructurado antes de comenzar a
desarrollar el producto, luego de esta fase el programador empezará a desarrollar
la aplicación donde tendrá que hacer un esfuerzo para que su software pase el
nivel requerido al aplicarse las pruebas diseñadas, es por esto que facilita al
desarrollador a moldearse a los requerimientos que el cliente exige.
Estas pruebas a las que se enfrenta el aplicativo desarrollado, son las pruebas
unitarias, las cuales son diseñadas por otro integrante del equipo, donde cada
módulo tiene que realizarlas para lograr su posterior liberación.
- Pruebas de aceptación
Estas se consideran como pruebas de caja negra, donde se ingresan unos datos
y se esperan unas determinadas salidas. En esta prueba se espera que el cliente
sea que verifique si los resultas son los esperados. Si se hallan fallas en los
resultados se deberá indicar cual tiene mayor prioridad, sin obviar a las otras. El
fallo de estos resultados se debe informar al equipo para que tengan en cuenta lo
sucedido.
65
donde se satisfaga las necesidades de los clientes, con un calendario establecido
y unos costos predecibles.
RUP cuenta con grandes ventajas frente a XP donde se hace realce en los
requerimientos y su diseño. Su principal ventaja es que cuenta con buenas
prácticas las cuales se prueban en el área desarrollada, contrario a XP ya que sus
prácticas son inestables.
45
Metodología Rational Unified Process (RUP). Web -
http://www.usmp.edu.pe/publicaciones/boletin/fia/info49/articulos/RUP%20vs.%20XP.pdf
66
Figura 9. Iteraciones de RUP
67
Características de RUP
Los Test en esta evalúan la calidad que tiene el producto desarrollado, ―El papel
del testeo no es asegurar la calidad, pero sí evaluarla, y proporcionar una
realimentación a tiempo, de forma que las cuestiones de calidad puedan
resolverse de manera efectiva en tiempo y coste.‖46
46
Metodología Rational Unified Process (RUP).Web-http://www.dsi.uclm.es/asignaturas/42551/trabajosAnteriores/Trabajo-
Guia%20RUP.pdf
68
Este modelo tiene una gran ventaja por su intuición, ya describe los procesos del
ciclo de desarrollo contando en cada una de sus fases, con diferentes clases de
pruebas, es decir, se realiza el análisis y el desarrollo en paralelo con las pruebas.
Una de las desventajas que tiene este modelo es que es muy detallado, en donde
la documentación que debe tener es demasiada y puede generar inconsistencias,
debido a los cambios que pueden generar los proyectos, siendo tedioso y
complicados corregirlos.
69
4. METRICAS PROPUESTAS PARA LA MEDICIÓN DE LOS REQUERIMIENTOS
NO FUNCIONALES.
47
LORD, kelvin
70
Se trae como referencia algunas métricas para la medición, y adicionalmente se
decide fragmentar cada atributo en características más pequeñas, tomando como
referencia la ISO/IEC 9126.
Se aclara que no es fácil definir las características para cada atributo, cuando
cada uno tiene una concepción diferente, dependiente del contexto en el que se
interprete, sin embargo, de forma global se presentan los más generales en la
tabla 14.
71
Tabla 14. Atributos de calidad fragmentados en características.
72
4.2 MÉTRICAS PARA VALIDAR LOS REQUISITOS NO FUNCIONALES
73
Tabla 15. Esquema general de las listas de chequeo modificadas.
Los usuarios que utilizan el aplicativo desarrollado buscan tener un software que
su funcionamiento sea el adecuado, mientras los desarrolladores además de que
su funcionamiento sea el correcto, también esperan que el números de fallos
presentados puedan ser solucionados sin causar problemas al sistema mientras
se realizan las pruebas, haciendo que crezca la confiabilidad en el software.
a = constante
74
b = constante
Con ello se puede determinar el número de horas que se deben probar para
satisfacer los objetivos propuestos por la confiabilidad, es por ello, que se
establecen 3 entradas:
4.2.3 Portabilidad. Es la facilidad del software para ser utilizado de una plataforma
a otra, la cual cuenta con unos determinados atributos, entre ellos están la
facilidad de instalación, ajuste, adaptación a los cambios
X=A/B
75
-MT = Número de módulos en la versión actual.
-Fc = Número de módulos en la versión actual que se han cambiado.
-Fa = Número de módulos en la versión actual que se han añadido.
-Fe = Número de módulos en la versión actual que se han eliminado.
A lo largo del ciclo de vida del desarrollo se definen unas actividades específicas
por cada etapa del ciclo de vida del desarrollo, respetando la metodología o
modelo de desarrollo:
48
PRESSMAN, Roger S. Ingeniería del software. Un enfoque práctico. Sexta Edición. Estados Unidos: McGraw Hill, 2005.
900 p.
76
requerimientos funcionales parten los no funcionales, es por ello, que se deben
diferenciar mas no aislarlo uno del otro si no es necesario.
77
Puesto que cuando un requerimiento no funcional no está especificado en valores
medibles, es difícil saber si será realizable y verificable.
- Usabilidad
- Fiabilidad
- Eficiencia
- Mantenibilidad
- Portabilidad
49
DIGIÓN DE GRIMALDI, Leda Beatriz. Departamento de Informática. Fac. de Ciencias Exactas y Tecnologías,
Universidad Nacional de Santiago. del Estero. Belgrano 1900. Santiago del Estero (CP. 4200).
78
Tabla 16. Modelo de caos de uso para requerimientos no funcionales.
Fuente: Un estudio inicial de requerimientos no funcionales a través del caso de uso, en [11]
2. Priorizar los casos de usos para así definir los elementos críticos a probar.
79
cuenta que en su diseño se categorizó dependiendo del atributo de calidad a
evaluar, para verificar el nivel de cumplimiento de los requerimientos no
funcionales.
En cada etapa del desarrollo se debe ejecutar los siguientes pasos del método, y
desempeñado por los roles que se describen a continuación:
Líder de calidad
80
Figura 12. Método propuesto para la evaluación de los atributos no funcionales.
81
- Definir el Propósito, es necesario leer la documentación recolectada del sistema
solicitado
- Definir el alcance
Establecer artefactos o elementos a probar y priorizarlos, es decir, determinar
según el impacto sobre el aplicativo si ocurriese un error de determinado atributo
Estimar el cronograma, dentro del cual se definan tiempo por validación de cada
componente o producto elegido
Se realiza la planeación para validar los elementos, de tal forma que se asegure
que el producto o componente sea apropiado para ser liberado a producción.
82
Se debe establecer el plan de pruebas, de tal forma que se limite el tiempo y se
evite incrementar costos por falta de planeación del tiempo.
4.4.4 Ejecución de las pruebas. Se aplican las pruebas con los datos que se
tienen.
4.4.5 Análisis de los resultados. En esta etapa se deben analizar los resultados de
las evaluaciones propuestas, según la categoría y se compara con los resultados
esperados, para determinar un nivel de cumplimiento
4.4.6 Validar criterios de aceptación. Se analizan los resultados uno por uno,
determinando que va y que no va. Después se analizan todos los resultados para
determinar si se puede aceptar o no, los requerimientos no funcionales en el
software, éstos deben ser aceptados por el cliente final, quien evalúa los
entregables por cada iteración de pruebas.
4.4.7 Certificación
83
Los ciclos de pruebas deben estar coordinados con los ciclos de desarrollo,
porque esto puede causar un retraso en el producto del software y por ende va en
detrimento de la percepción del cliente.
Las siguientes fases propuestas, se deben realizar a lo largo del ciclo de vida del
producto o componente, independiente de la metodología de desarrollo.
Debido a que las pruebas manuales son exhaustivas y por tanto toman tiempo en
su aplicación, requiriendo además recursos en personal, reprocesos en máquina,
entre otros. Se recomienda la utilización de herramientas libres disponibles para
reducir tiempos en ejecución de pruebas a atributos no funcionales:
SONAR,Maven,Hudson,PMD,C
Pruebas
demanda
Reporting OHM QA Portal,Excel,ppt.
84
-Yasca Reports: es una herramienta que busca cuales son las vulnerabilidades en
la seguridad, la calidad del código, su rendimiento, sus informes los genera en
html,xml , entre otros formatos
85
utiliza en interfaces graficas de los usuarios teniendo en cuenta la automatización
de los casos de prueba.
-JIRA: hace un completo seguimiento a proyectos y problemas de software con el
fin de mejorar la calidad y su desempeño del software. JIRA es utilizado en
algunas compañías como eje central en un grupo de desarrolladores.
-PPT (Microsoft PowerPoint): fue desarrollada por Microsoft, se utiliza para hacer
presentaciones con imágenes, audio y texto. Las funciones de esta herramienta
son varias, pero el en caso de pruebas no funcionales se tiene como fin el de
mostrar informes a los desarrolladores, tester, clientes y personas que tengan que
ver con el producto de software a desarrollar.
86
5. CONCLUSIONES Y RECOMENDACIONES.
87
No todas las pruebas se pueden aplicar a los proyectos de software, lo que se
busca es tener un software de alta calidad y que las empresas desarrolladoras
aumenten su prestigio.
88
BIBLIOGRAFÍA
[8]. REVISTA EIA, ISSN 1794-1237. (Número 13: Julio 2010: Pág.131). Escuela
de Ingeniería de Antioquia, Medellín -Colombia.
89
[10]. Metodología Rational Unified Process (RUP).Internet (www.usmp.edu.pe
<http://www.usmp.edu.pe/publicaciones/boletin/fia/info49/articulosRUP%20vs.%20
XP.pdf>)
90
[19]. JOYANES AGUILAR, Luis. Investigación doctoral ―Modelo para la
industrialización del software en el triangulo del café- Colombia [Marzo 2009].,.
91