INTRODUCCION .4
1.CALIDAD DE SOFTWARE.....5
1.1. Definicin de calidad ...5
1.2. Politica de calidad .6
1.3. Definicion de calidad de software..7
1.3.1. Control de calidad9
1.3.2. Aseguramiento de calidad11
2.MODELOS DE CALIDAD DE SOFTWARE13
2.1. Modelos de calidad de software a nivel de proceso.14
2.1.1. CMM (capability Maturity Model)14
2.1.2. Modelo Tickt.14
2.1.3. Modelo de bootstrap..15
2.1.4. Personal software Process (PSP)..16
2.2. Modelos de calidad de software a nivel de product..18
2.2.1. Modelos de Gilb..18
2.2.2. Modelo CQM (Goal-Question-Metric).....19
2.2.3. Modelo McCall.19
2.2.4. Modelo Furps...20
2.2.5. Modelos de Boehm.20
2.2.6. Modelo SATC (Software Assurance Technology Center)21
2.2.7. Modelo de Dromey..22
3. Definicin de verificacin y validacin23
3.1. Definicin de verificacin y validacin23
3.2. Validacin y verificacin en el ciclo de vida..24
4. OBJETIVOS Y RESTRICCIONES25
4.1. OBJETIVOS.25
4.2. RESTRICCIONES...25
5. PLANIFICACION DE PRUEBA DE SOFTWARE...26
5.1. Planificacion26
5.2. Alcance.26
5.3. Plan de pruebas..26
5.3.1 Analizar los requerimientos de desarrollo de software.26
5.3.1.1. Matriz de trazabilidad...27
5.3.1.2. Caso de uso.27
5.3.1.3. Historias de usuario..27
5.3.2. Identificar las funcionalidades nuevas a probar..27
5.3.3. Definir la estrategia de prueba..27
5.3.3.1. Pruebas Unitarias..29
5.3.3.2. Pruebas de integracin.29
5.3.3.3. Pruebas de alto nivel.30
5.3.3.4. Depuracin..30
5.3.3.5. Mtodos de prueba30
5.3.3.5.1. De caja blanca (o estructurales)..30
5.3.3.5.2. De caja negra (o funcionales)30
5.4. Identificar los entornos (ambientes) requeridos.30
5.5. Establecer la metodologa y procedimientos de prueba33
5.6. RECURSOS .33
5.7. Documentacion...33
5.8. Matriz de responsabilidades33
5.9. Manejo de riesgos e identificacin de reiesgos.34
6. Medicin y mtricas del software35
6.1. Medicin del software.35
1. CALIDAD DE SOFTWARE
Los conceptos relacionados con la calidad de software tienen relacin
directa con la aplicacin de la calidad a un producto desarrollado a travs
de procesos de ingeniera de software. En tal sentido empezaremos dando
algunas definiciones de calidad y luego ampliaremos el concepto hacia
calidad de software.
Adecuada a la empresa.
Coherente con las necesidades y expectativas de sus clientes.
Muy simple y fcilmente comprensible para que sea comunicable
y entendida sin dificultad.
Tambin los modelos permiten que las Empresas de Software realicen sus tareas y
funciones teniendo en cuenta la Calidad. Cualquier organizacin que se dedica a la
investigacin, produccin y comercializacin de software debe considerar la calidad, hoy
con ms razn, donde existe un mercado en el cual el cliente es cada vez ms exigente,
no slo en lo que se refiere al precio, sino, sobre todo, en cuanto a los servicios y a la
confiabilidad que brindan los productos de software. La calidad desempea un rol
determinante para la competitividad de la empresa.
El CMM tiene como objetivo evaluar los procesos en sus distintos niveles de madurez,
identificar los niveles a travs de los cuales una organizacin debe formarse para
establecer una cultura de excelencia en la ingeniera de software. El modelo de madurez
de procesos fue generado a travs de la experiencia colectiva de los proyectos ms
exitosos de software, generando as un conjunto de prcticas importantes que deben
ser implantadas por cualquier entidad que desarrolla o mantiene software.
Niveles de capacidad:
El objetivo del programa TickIt era ayudar a las organizaciones de software a crear
sistemas de calidad que agregaran valor a sus empresas y que cumplieran con la norma
ISO 9001:2000, ya que es, adems de mejorar y regular el comportamiento de los
auditores que trabajan en el sector de la tecnologa.
Tickit se basa en la norma ISO 9001:200 y exige una revisin completa cada 3 aos
Adems, una de las principales metas estimular a los desarrolladores de software a
implementar sistemas de calidad, dando la direccin y guas necesarias para tal efecto
TickIT tiene como meta principal estimular a los desarrolladores a pensar:
El inters principal del modelo bootstrap es evaluar y mejorar la capacidad del software,
Mediante esta metodologa se tratar la mejora de procesos de software. Se podra decir
que la mejora de procesos es en parte mejor que la reingeniera. Esta metodologa
mediante prcticas, herramientas y estndares de calidad internacional; mide evala y
propone mejoras al proceso de desarrollo de software
Bootstrap surge como parte del programa estratgico europeo para investigacin en
tecnologa de informacin. Este proyecto al igual que otros, tiene como principio el
reducir costos y mejorar la calidad previendo problemas. Su objetivo es desarrollar un
mtodo para la evaluacin de procesos de desarrollo de software. Inicialmente se bas
en el modelo de madurez de CMM aadiendo conceptos de calidad de ISO 9000, y
luego incluyo conceptos para poder evaluar desarrollos de software, desde pequeas
industrias, hasta grandes corporaciones. Para lograr esto puso nfasis en los conceptos
de ISO 9000generando guas para mejoras en procesos de desarrollo de software,
analizando evaluaciones y mejoras de los procesos de desarrollo.
El Personal Software Process (PSP) est diseado para ser usado por medio de un
Ingeniero de Software individual y tiene como objetivo guiar el planeamiento y desarrollo
de los mdulos de software y es adaptable a otras tareas del personal. Es una tecnologa
de SEI (Software Engineering Institute) que trae disciplina las prcticas de los ingenieros
de software.
El PSP est basado en los principios de mejoramiento de proceso, el enfoque del PSP
es el ingeniero individual. Para fomentar el mejoramiento a nivel personal, ofrece la
administracin y control del proceso al Ingeniero, haciendo que estos usen una
propuesta estructurada y disciplinada
El principio de PSP es que para producir sistemas de software de calidad. El PSP est
diseado para ayudar a profesionales a utilizar las mejores prcticas. Para hacer un
trabajo de ingeniera de software los ingenieros deben planear antes de confirmar o
empezar sus trabajos y deben medir el tiempo de cada paso en el trabajo, los defectos
a eliminar y el tamao de sus productos que producirn.
Finalmente. los ing. deben analizar los resultados de cada trabajo, para luego mejorar
sus procesos personales
El PSP provee una estructura acerca del proceso de software y un punto de partida con
el cual desarrollar sus propios procesos personales.
PSP ha sido adaptado a varias tareas de la ingeniera de software, tales como desarrollo
de requerimientos de software, especificaciones de software y casos de prueba.
PSP1 y PSP1.1
Estn enfocados respecto a las tcnicas de administracin, y hace una estimacin del
tamao y esfuerzo del planeamiento programado y de los mtodos del seguimiento
programado.
El modelo CQM proporciona la estructura para obtener los objetivos cruciales del
proyecto. Consta de 3 etapas:
Listar los objetivos principales del desarrollo y mantenimiento del proyecto
Para cada objetivo, se deben obtener las preguntas que deben contestarse para saber
si se estn cumpliendo los objetivos.
Decidir que medir para poder contestar las preguntas de manera adecuada, es decir,
desarrollar un conjunto de mtricas que ayuden a responder la pregunta
Otro aspecto del modelo GQM es la interpretacin de datos recolectados en funcin de
las preguntas.
El modelo GQM es un enfoque til para decidir que medir, es un enfoque orientado a
metas, por lo tanto, permite a los que toman decisiones, elegir aquellas mtricas que se
relacionen a las metas ms importantes de los problemas ms urgentes.
El modelo de McCall fue el primero en ser presentado en 1977 y se origin motivado por
Air Forc y Dod. Se focaliza en el producto final identificando atributos claves desde el
punto de vista del usuario. Estos atributos se denominan factores de calidad y son
normalmente atributos externos. pero tambin se incluyen algunos atributos
posiblemente internos. los factores de calidad son demasiados abstractos para ser
medidos directamente, por lo que por cada uno de ellos se introduce atributos de bajo
nivel denominados criterios de calidad. algunos criterios de calidad son atributos
internos segn McCall que el atributo interno tiene un efecto directo en el atributo
externo correspondiente.
Los modelos de Boehm agrega algunas caractersticas a las existentes en los modelos
de MCCALL y representa una estructura jerrquica de caractersticas, cada una de las
cuales contribuye a la calidad total. Consiste en un modelo de descomposicin de
caractersticas de calidad en tres niveles:
Usos principales
Componente intermedios
componentes primitivos
Este modelo plantea factores de calidad formados por criterios de calidad y mtricas
respectivas.
El modelo de Boehm tiene como finalidad que a travs de la calidad de software:
Realiza lo que desea el usuario.
Utiliza recursos informticos de manera correcta y eficiente.
Sea fcil de utilizar y aprender.
Sea bien diseado, codificado, probado y mantenido.
El modelo de Dromey tiene el propsito de trabajar con una estructura que permite
construir y utilizar un modelo de calidad para evaluar las etapas de determinacin de los
requerimientos, diseo e implementacin.
Esta informacin es usada para elaborar, comparar y evaluar la calidad de los productos
de software. Dromey propone 3 modelos para cada etapa del proceso de desarrollo.
Dromey propone una matriz que relaciona las caractersticas de calidad respecto de la
Norma ISO 9126 Dicha matriz presenta un mapeo entre las caractersticas del producto
y los atributos de alto nivel, el cual es utilizado en las evaluaciones del producto.
Figura 2.2
Este es el punto clave, en el que tiene lugar la evaluacin del producto, donde se decide
si est o no preparado para pasar a la siguiente fase. De esta forma, si hay errores y
son detectados, ser ms eficiente corregirlos que si se descubriesen en etapas ms
avanzadas. Este tipo de comprobaciones a lo largo del ciclo de vida incluyen dos
actividades: la verificacin y la validacin.
La validacin, sin embargo, tiene como objetivo asegurar que el sistema satisface las
expectativas del cliente. Va ms all de la comprobacin de que el sistema satisface su
especificacin para demostrar que el software hace lo que el cliente espera que haga,
ya que las especificaciones del sistema no siempre reflejan los deseos o necesidades
reales de los usuarios y los propietarios del sistema.
Las expectativas del usuario. Una reflexin lamentable sobre la industria del software
es que a muchos usuarios no les sorprende cuando su software falla durante su uso.
Estn dispuestos a aceptar estos fallos del sistema cuando los beneficios de su uso son
mayores que sus desventajas. Sin embargo, la tolerancia de los usuarios a los fallos de
los sistemas est decreciendo en los ltimos aos. Actualmente es menos aceptable
entregar sistemas no fiables, por lo que las compaas deben invertir ms esfuerzo en
llevar a cabo las actividades de verificacin y validacin.
4. OBJETIVOS Y RESTRICCIONES
4.1. OBJETIVOS.
Este objetivo conduce a las pruebas de validacin, en las que se espera que el sistema
funcione correctamente usando un conjunto determinado de casos de prueba que
reflejan el uso esperado de aquel. Para las pruebas de validacin, una prueba con xito
es aquella en la que el sistema funciona correctamente.
Este objetivo conduce a la prueba de defectos, en los que los casos de prueba se
disean para exponer los defectos. Los casos de prueba pueden ser deliberadamente
oscuros y no necesitan reflejar cmo se utiliza normalmente el sistema. Para las pruebas
de defectos, una prueba con xito es aquella que muestra un defecto que hace que el
sistema funciona incorrectamente.
4.2. RESTRICCIONES.
Idealmente algunas compaas deberan tener polticas para elegir este subconjunto de
pruebas en lugar de dejar esto al equipo de desarrollo. Estas polticas podran basarse
en polticas generales de pruebas, tal como una poltica en la que todas las sentencias
de los programas deberan ejecutarse al menos una vez. De forma alternativa, las
polticas de pruebas pueden basarse en la experiencia de uso del sistema y puede
centrarse en probar las caractersticas del sistema operacional. Por ejemplo:
1. Deberan probarse todas las funciones del sistema a las que se accede a travs de
mens.
2. Deben probarse todas las combinaciones de funciones (por ejemplo, formateado de
textos) a las que se accede a travs del mismo men.
3. En los puntos del programa en los que el usuario introduce datos, todas las funciones
deben probarse con datos correctos e incorrectos
5.1. PLANIFICACIN
5.2. ALCANCE
Para elaborar un plan de pruebas de software lo primero que debes hacer es entender
los requerimientos de usuario que componen la iteracin o proyecto, que son el sujeto
de la verificacin de calidad que se va a realizar.
Revisa las necesidades del negocio junto con los requerimientos no funcionales
y los relaciona con la solucin que se necesita implementar para cubrirlas.
Se asegura de la calidad de la solucin y de su mantenimiento en el tiempo.
Toma decisiones de diseo de alto nivel.
Dicta estndares tcnicos, de codificacin, herramientas y plataformas.
Qu es el ISTQB?
Adems, en esta seccin del plan de pruebas, tambin se definen los requisitos de
sistemas operativos, software y herramientas de las estaciones de trabajo de los
Testers.
Tambin deben definirse los requisitos de hardware y software para los siguientes
componentes:
Figura 5.3
Para organizar las pruebas de software, Testlink define tres unidades de informacin
bsicas que son el Proyecto de pruebas (Test Project), Plan de pruebas (Test Plan) y el
usuario (User), el resto de la informacin son relaciones entre estas bases.
5.6. RECURSOS
5.7. DOCUMENTACION
Explicita los documentos a entregarse al culminar el proceso previsto por el plan p. ej.
Subplanes, especificacin de pruebas, casos de prueba, resumen gerencial del proceso
y bitcora de pruebas.
Estndares internacionales
IEEE 829.-estandar para documentar pruebas de software. Especifica 8 etapas
del proceso de documentacin.
Planeacin de las pruebas
Especificacin del diseo de prueba
Especificacin de los casos de prueba
Especificacin del procedimiento
Reporte de avance de los ciclos probados
Registro de prueba
Reporte de incidencias
Sumario de la prueba
5.8. Matriz de responsabilidades
Puede usarse una Matriz RACI o Matriz RAM como plantilla. Esta se define con perfiles
genricos o inclusive con el equipo de trabajo si ya se conoce cul es el que ser
asignado.
Las tareas del plan de pruebas deben estar alineadas con las habilidades y
conocimientos de cada persona.
Cronograma
Son las condiciones que deben cumplirse para que el cronograma sea realizable, estas
se determinan a partir de la documentacin de entornos y de los requisitos de personal.
Por ejemplo, disponibilidad de ciertos entornos, disponibilidad de personal con algn
conocimiento tcnico especifico, la metodologa que se va a utilizar, premias que deben
cumplirse para poder aplicarla, entre otros.
Al igual que un jefe de proyecto debe identificar riesgos y buscar soluciones durante la
etapa de desarrollo del software para conseguir los objetivos marcados, el test manager
debe identificar los riesgos relacionados con el proceso de pruebas, as como evaluar
la criticidad y probabilidad de los mismos. Gracias a este anlisis se podr generar un
plan de contingencia.
Explicita los riesgos del plan, las acciones mitigantes y de contingencia.
Falta de recursos y baja competencia en pruebas
Falta de los recursos necesarios para ejecutar las pruebas segn el plan
Tiempo reducido asigna
do a la fase de pruebas
Cambios frecuentes en la definicin de los objetivos y alcance del plan de pruebas
Falta de coordinacin entre los equipos de desarrollo y testing
Falta de experiencia con nuevas tecnologas, herramientas, lenguajes de
programacin,
Una caracterstica muy deseable de un equipo de pruebas es la pro-actividad, Incluso
antes de que el software comience a desarrollarse, el equipo puede involucrarse en las
distintas etapas de definicin para conocer ms en profundidad el proyecto, as como
comenzar a definir estrategias de pruebas.
4. Requerimientos de pruebas
Desde el equipo de pruebas, se fomentar el uso de estndares, tecnologas
abiertas, as como buenas prcticas de desarrollo (por ejemplo, TDD, integracin
continua, etc)
5. Gestin de defectos
Una tarea de gran importancia es el seguimiento y priorizacin de los defectos
encontrados. Estos deben ser incluidos en los planings de siguientes iteraciones
para que sean resueltos. Adems, deben ser trazados para conocer cundo y
en qu versin han sido resueltos.
La medicin del software se refiere a derivar un valor numrico desde algn atributo del
software o del proceso de software. Comparando estos valores entre s y con los
estndares aplicados en la organizacin, es posible sacar conclusiones de la calidad del
software o de los procesos para desarrollo. Por ejemplo, supongamos que una
organizacin hace planes para introducir una nueva herramienta de prueba de software.
Las mediciones del software pueden utilizarse para:
Figura 6.1
Las mtricas de control suelen estar asociadas con los procesos, mientras que
las mtricas de prediccin lo estn a los productos. Ejemplos de las mtricas de
control o de procesos son el esfuerzo y el tiempo promedio requerido para
reparar los defectos encontrados. Entre los ejemplos de mtricas de prediccin
tenemos la complejidad ciclomtica de un mdulo, la longitud media de los
identificadores de un programa, y el nmero de atributos y operaciones
asociadas con los objetos de un diseo.
CLASIFICACIN DE MTRICAS
a) MTRICAS DE COMPLEJIDAD: Son todas las mtricas de software que
definen de una u otra forma la medicin de la complejidad; Tales como
volumen, tamao,
anidaciones, costo (estimacin), agregacin, configuracin, y flujo.
b) MTRICAS DE CALIDAD: Son todas las mtricas de software que definen
de una u otra forma la calidad del software, Tales como exactitud,
estructuracin o modularidad, pruebas, mantenimiento, reusabilidad,
cohesin del mdulo, acoplamiento de mdulo, etc. Estas son los puntos
crticos en el diseo, codificacin, pruebas y mantenimiento.
c) MTRICAS DE COMPETENCIA: Son todas las mtricas que intentan valorar
o medir las actividades de productividad de los programadores o practicantes
con respecto a su certeza, rapidez, eficiencia y competencia.
d) MTRICAS DE DESEMPEO: Corresponden a las mtricas que miden la
conducta de mdulos y sistemas de un software, bajo la supervisin del
sistema operativo o
hardware. Generalmente tienen que ver con la eficiencia de ejecucin, tiempo,
almacenamiento, complejidad de algoritmos computacionales, etc.
PROCESO V & V
Es el proceso de todo un ciclo vital: La V & V debe aplicarse en cada etapa del software.
METAS DE LA V&V
La verificacin y la validacin deberan establecer la confianza de que el software es
adecuado al propsito. Esto NO significa que est completamente libre de defectos.
Sino que debe ser lo suficientemente bueno para su uso previsto y el tipo de uso
determinar el grado de confianza que se necesita.
PLANIFICACIN DE V &V
Se requiere una cuidadosa planificacin para sacar el mximo de los procesos de
inspeccin y pruebas. La planificacin debera comenzar pronto en el proceso de
desarrollo.
Existen un gran nmero de modelos de procesos de ciclo de vida del sistema, los cuales
podemos dividir en tres categoras:
1) Procesos pre especficos y secuenciales.
2) Procesos evolutivos y concurrentes (por ejemplo, el RUP, las variedades del modelo
V y modelos espirales)
3) Procesos interpersonales y no limitados (por ejemplo, desarrollo gil, Scrum, la
programacin extrema (XP) y los procesos basados en la innovacin).
Definicin de Modelo V
Es un modelo generalmente usado en algunas reas como ingeniera de software,
ingeniera de sistemas, ingeniera aeroespacial, ingeniera militar, aeronutica, TICs,
etc; sirve para ilustrar la naturaleza de las pruebas como una actividad el ciclo de vida
del sistema, y muestra cmo las pruebas pueden planificarse paso a paso.
Figura 6.2
Tipos de Modelo V
Das V-Modell.
Tambin llamado Modelo V Aleman es un modelo desarrollado por la Repblica Federal
Alemana en 1986, tuvo un origen militar en el desarrollo de software para sistemas de
informacin y armas.
La versin actual es V-Modell XT sus desarrolladores nos brindan lo siguiente:
1.1. Documentacin: Cubre todos los aspectos del V-Modell XT y est disponible en
formatos HTML y PDF.
1.2. Plantillas de producto: Las cuales nos ayudan a realizar mejor la planificacin e
implementacin de productos.
1.3. Herramientas: Viene con herramientas open source las cuales permiten adaptarnos
a las condiciones concretas del proyecto.
1.4. Ejemplos de proyectos: Incluye una muestra de proyectos en el mbito pblico,
militar e industrial.
Este modelo tiene su anlogo en USA el US government standard.
Figura 6.3
General Testing
En el desarrollo de software, el modelo V representa un proceso de desarrollo que
puede considerarse una extensin del modelo de cascada. En lugar de moverse hacia
abajo de manera lineal, las etapas de este proceso se doblan hacia arriba despus de
la fase de codificacin, para formar la V tpica. El modelo V muestra las relaciones entre
cada fase y su fase asociada de pruebas.
Figura 6.4
CONCLUSIONES
a) Una aplicacin probada reduce el riesgo de errores crticos en produccin.
b) El testeo de software es fundamental durante todo el ciclo de produccin de las
aplicaciones de software.
c) Las pruebas de Software ejecutan el software con el objetivo de establecer si se
ajusta a las especificaciones y si se adapta correctamente al ambiente de operacin.
Por lo tanto, el software testing no solo busca errores.
d) Si el cdigo es difcil de probar, entonces debera considerarse la re-escritura del
cdigo.
e) Los testers tienen que considerar el software y las funciones que realiza, sus
entradas y como se pueden combinar, y el ambiente en el que el software operar.
f) El desarrollo del testing se ha visto favorecido en ambientes acadmicos. Se
requiere traspasar este trabajo acadmico a ideas ms prcticas para su aplicacin
en el desarrollo de software.
Recomendaciones
1- Sobre calidad y software:
Recomendamos conocer la normativa que rige la calidad de los productos de
software para que nuestro software sobre sea del agrado de nuestros clientes.
2- Sobre modelos de calidad de software:
Recomendamos elegir un modelo adecuado para nuestro desarrollo segn el
proceso, el producto y el tiempo.
3- Sobre medicin y mtricas del software:
Debemos conocer la medicin y mtricas para poder saber cul es el valor real
de nuestro producto de software y poder predecir su impacto en el mercado.
5- Sobre el Modelo V:
Como ingenieros es necesario conocer este modelo en sus diferentes versiones
para poder aplicando en nuestros proyectos dependiendo del contexto y
nuestras necesidades.