Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEMANA 7
Calidad enfocada en el
desarrollo de software
Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No est
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposicin del pblico ni 1
ESTE
utilizarDOCUMENTO
los contenidos paraCONTIENE LAdeSEMANA
fines comerciales 7
ninguna clase.
2
ESTE DOCUMENTO CONTIENE LA SEMANA 7
NDICE
CALIDAD ENFOCADA EN EL DESARROLLO DE SOFTWARE................................................................... 5
OBJETIVOS ESPECFICOS ........................................................................................................................... 5
INTRODUCCIN ...................................................................................................................................... 5
1. PRINCIPIOS FUNDAMENTALES DE LA CONSTRUCCIN DE SOFTWARE ..................................................... 6
1.1. MINIMIZAR COMPLEJIDAD ........................................................................................................... 8
1.2. ANTICIPAR CAMBIOS ................................................................................................................... 8
1.3. CONSTRUIR PARA VERIFICAR......................................................................................................... 9
1.4. UTILIZAR ESTNDARES ................................................................................................................. 9
2. MECANISMO DE CALIDAD EN EL DESARROLLO DE SOFTWARE.............................................................. 10
2.1. DISEO POR CONTRATO ............................................................................................................ 10
2.2. ANLISIS DE RENDIMIENTO......................................................................................................... 12
2.3. DEPURACIN............................................................................................................................ 12
3. INGENIERA DE TESTING ................................................................................................................. 14
3.1. FUNDAMENTOS DE PRUEBAS DE SOFTWARE ................................................................................ 15
3.1.1. TERMINOLOGA RELACIONADA CON LAS PRUEBAS......................................................................... 16
3.1.2. CASOS DE PRUEBA..................................................................................................................... 16
3.1.3. ELEMENTOS CLAVE.................................................................................................................... 18
3.1.4. TIPOS DE PRUEBA ...................................................................................................................... 19
3.1.5. ESTABLECER OBJETIVOS DE LA PRUEBA......................................................................................... 20
3.2. TCNICAS DE PRUEBA Y SU APLICACIN........................................................................................ 21
3.2.1. EXPERIENCIA DEL INGENIERO DE SOFTWARE ................................................................................. 21
3.2.2. ESPECIFICACIN ........................................................................................................................ 21
3.2.3. PROGRAMACIN DEL CDIGO.................................................................................................... 22
3.2.4. ERRORES.................................................................................................................................. 22
3.2.5. EN EL USO DE LA FUNCIONALIDAD ............................................................................................... 23
3.2.6. NATURALEZA DE LA APLICACIN.................................................................................................. 23
3.3. PLAN DE PRUEBAS ..................................................................................................................... 24
3.3.1. ESTRUCTURA DEL PLAN DE PRUEBAS............................................................................................ 24
COMENTARIO FINAL.......................................................................................................................... 27
REFERENCIAS........................................................................................................................................ 28
3
ESTE DOCUMENTO CONTIENE LA SEMANA 7
NDICE DE FIGURAS
Figura 1: Actividades del desarrollo de software ................................................................................ 7
Figura 2: Relacin de contratos entre componentes de software ..................................................... 11
Figura 3: Relacin de contrato entre dos componentes de software ................................................ 11
Figura 4: Ciclo de pruebas y depuracin. ........................................................................................... 13
Figura 5: El proceso de pruebas en el ciclo de vida del desarrollo..................................................... 15
Figura 6: Definicin de escenarios ..................................................................................................... 17
Figura 7: Ejemplo de un caso de prueba simple ................................................................................ 18
NDICE DE TABLAS
Tabla 1: Escenarios de prueba ........................................................................................................... 17
Tabla 2: Estructura del plan de pruebas ............................................................................................ 26
4
ESTE DOCUMENTO CONTIENE LA SEMANA 7
CALIDAD ENFOCADA EN EL DESARROLLO DE SOFTWARE
OBJETIVOS ESPECFICOS
Conocer los principios que gobiernan el desarrollo de software de calidad
Conocer los mecanismos que permiten los requisitos de calidad en el software
Comprender los conceptos bsicos de la ingeniera de testing
Aplicar los diferentes tipos de prueba existentes al desarrollo de software
INTRODUCCIN
El desarrollo de software de calidad demanda una serie de aspectos que incluyen una buena
definicin de requerimientos, y que posteriormente se traducen en un conjunto de
especificaciones funcionales y no funcionales de la solucin. Asimismo, quienes desarrollan el
software toman esta informacin como la entrada a su proceso de implementacin y pruebas.
Estas actividades deben estar bien definidas y en concordancia con las definiciones realizadas en el
proyecto. Para guiar el desarrollo de manera que el resultado sea un producto consistente,
robusto, confiable y fcil de usar, existen fundamentos para la programacin. As tambin, para
verificar que la solucin de software haga lo que tiene que hacer, pero adems para validar que el
software se desarrolle de acuerdo a normas o estndares acogidos por la organizacin. Estos
conceptos se desarrollarn en el contenido de esta semana, abordando los aspectos
fundamentales en el desarrollo de software y el proceso de pruebas.
5
ESTE DOCUMENTO CONTIENE LA SEMANA 7
1. PRINCIPIOS FUNDAMENTALES DE LA CONSTRUCCIN DE
SOFTWARE
La construccin de software (en adelante, desarrollo de software) es una de las principales
actividades que realiza la ingeniera de software. Esta ltima es la disciplina del rea informtica o
ciencias de la computacin, que define mtodos y tcnicas especializadas para implementar y
mantener software de calidad. De esta manera el desarrollo de software es una actividad cuyo
producto satisface una diversa demanda de servicios y necesidades en el quehacer de hoy
(Pressman, 2010).
6
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Figura 1: Actividades del desarrollo de software
Fuente: material elaborado para esta asignatura (J. Reyes, 2015)
Durante el proceso de desarrollo, adems se deben considerar funciones que pueden realizar
tambin los mismos miembros del equipo, o bien un grupo dedicado. Por ejemplo, el
aseguramiento de la calidad y administracin de la configuracin. En este ltimo caso,
corresponde al rea encargada de gestionar una cantidad considerable de productos de trabajo
del proyecto, tambin conocidos como entregables. En tal caso, la organizacin establece polticas
para la gestin de los entregables en cada proyecto, y un grupo a cargo de gestionarlos.
Componentes de software del proyecto. Todo desarrollo va generando una serie de piezas
de software, las cuales pueden corresponder al software de aplicacin, desarrollos de
bases de datos, archivos de configuracin, programas de procesamiento de datos,
configuraciones a nivel de sistemas y otros ms.
7
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Documentos de la gestin del proyecto. Planes de proyecto, cartas Gantt, minutas de
reuniones, informes de avance, control presupuestario, contratos de terceros,
presentaciones para el cliente, gestin de riesgos y otros ms.
Como se puede inferir, el desarrollo de software es una actividad elaborada, lejos de ser algo
simple. Requiere disciplina, mtodo, un modelo de gobierno que facilite la administracin y
gestin de todas las actividades que se deben desarrollar.
La necesidad de reducir complejidad se debe aplicar a toda actividad del desarrollo de software,
tomando mayor nfasis en el proceso de verificacin y pruebas. De esta forma, al escribir cdigo
se debe realizar en forma simple, ordenada, de acuerdo a una lgica previamente validada.
Siguiendo patrones de desarrollo que adopte la organizacin, respecto a estndares y modelos de
calidad.
8
ESTE DOCUMENTO CONTIENE LA SEMANA 7
definan (ao 2000). Pero adems de este tipo de cambios tambin existen los cambios que se
realizan producto de la renovacin de plataformas e infraestructura computacional. En este caso,
las adecuaciones o adaptaciones que se requieren no estn dadas por temas funcionales, sino ms
bien tcnicos. Hay otros casos, sin embargo, en los que la idea es la misma, el desarrollo debe
incorporar estos criterios en el diseo y posteriormente en la implementacin de las soluciones.
Un sistema que no tiene flexibilidad para introducir cambios se transformar en un gran problema
en el momento que deba realizarlos. La anticipacin a los cambios busca que desde el diseo se
considere introducir los mecanismos necesarios para asegurar que el sistema no tendr problemas
para adaptarse ante necesidades de cambio.
Mtodos de comunicacin, donde se define el formato de los documentos que se utilizan para
dejar documentada una solucin. Por ejemplo, para elaborar el anlisis, el diseo de una solucin,
la especificacin tcnica, cartas Gantt para los proyectos, informes de gestin de los proyectos,
minutas de trabajo, entre otros.
9
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Plataformas sobre las cuales corren los programas. As, un programador aplicar las definiciones
correctas para interactuar a travs del programa con el sistema operativo.
El diseo por contrato en el desarrollo de software obedece a la aplicacin de los contratos que
conocemos en el mbito de las personas, en los cuales se establecen relaciones de obligacin y
beneficios entre las partes. Al desarrollar software, se establece el tipo de relacin entre distintos
componentes, en forma especfica y sin ambigedades. Quien llama y quien responde a ese
llamado es un contrato y pasa a formar parte de un requisito a nivel de sistema para cumplir uno o
ms objetivos. De esta manera, si se ampla esta definicin a una solucin de software, se puede
sealar que existen componentes de software interrelacionados entre s a travs de contratos
donde cada componente puede ser un emisor o receptor de mensajes los cuales estn definidos
como contratos que establecen obligaciones y beneficios, de acuerdo al tipo de relacin que se
defina entre los componentes.
10
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Figura 2: Relacin de contratos entre componentes de software
Fuente: material elaborado para esta asignatura (J. Reyes, 2015)
11
ESTE DOCUMENTO CONTIENE LA SEMANA 7
El componente C4 hace una solicitud al componente C5, para lo cual, de acuerdo al contrato entre
ambos, debe enviar un set de datos de entrada para ser procesados en las precondiciones del
procesamiento que realiza el componente C5. Posteriormente, el componente C5 enva el
resultado al componente C4, cumpliendo as con el contrato de comunicacin que el sistema ha
definido entre ambos.
2.3. DEPURACIN
La depuracin es el proceso que se desprende luego de realizar pruebas en la funcionalidad de una
solucin de software. Busca determinar las causas que generan un error a nivel de aplicacin, con
el objeto de establecer las correcciones que correspondan. Se inicia con la ejecucin de un caso de
prueba, del cual se evala el resultado, donde aparece una diferencia respecto del resultado
esperado y el real que se obtiene. En primera instancia, cuando no existe tal correspondencia
(esperada vs. real), se puede inferir la existencia de un error, aun cuando no se tenga claro el
problema que lo origina. De esta forma, el proceso de depuracin ayuda a encontrar una causa
que puede dar origen a la diferencia. De lo anterior, se puede identificar el error y el tipo de
correccin que se debe realizar. Cabe destacar que el proceso de depuracin no es en s la prueba
del software, pero s debe estar considerado dentro del proceso de pruebas. En la figura 4 se
muestra un ciclo de pruebas, donde se realiza el proceso de depuracin.
12
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Figura 4: Ciclo de pruebas y depuracin.
Fuente: material elaborado para esta asignatura (J. Reyes, 2015)
13
ESTE DOCUMENTO CONTIENE LA SEMANA 7
3. INGENIERA DE TESTING
Todo proceso productivo debe asegurar la calidad de sus productos. En el mbito del desarrollo de
software, se ha mencionado en los contenidos de las semanas anteriores que existen procesos
orientados a asegurar la calidad del producto de software. Sin embargo, una de las actividades que
deben ser desarrolladas es precisamente evidenciar que el resultado obtenido a travs de la
aplicacin de mtodos, procedimientos y ejecucin de actividades dan como resultado un
producto de calidad. Por lo anterior, se han desarrollado modelos de referencia para ejecutar en
forma eficiente un conjunto actividades para probar el software. As tambin, la gestin de estas
actividades es apoyada por artefactos (documentos) y en algunos casos tambin por herramientas
que asisten el proceso de pruebas.
La prueba del software es, entonces, una de las actividades que ayudan a validar las caractersticas
del software y, en particular, la correcta implementacin de los requerimientos funcionales y no
funcionales, bajo los escenarios en los cuales se entiende deben operar.
A considerar:
El testing (o pruebas de software) permite medir la calidad del software en funcin de los errores
que se puedan encontrar, aplicndolo tanto en el mbito funcional, como tambin en aquellas
necesidades no funcionales de la solucin.
A travs de las pruebas de software se puede establecer tambin el nivel de seguridad que ofrece
el producto desarrollado. No es lo mismo una solucin con muchos errores, frente a una que luego
de ser probada (de acuerdo al mbito que corresponda) no presenta problemas.
Finalmente, se puede inferir que mientras menos errores sean detectados por el testing, mayor
ser el grado de calidad del producto. Esto implica que reduce la incertidumbre respecto a la
planificacin, mejora los indicadores de calidad y rentabilidad al producir software y, finalmente,
ayuda a controlar los costos por concepto de mantenimiento posterior.
14
ESTE DOCUMENTO CONTIENE LA SEMANA 7
3.1. FUNDAMENTOS DE PRUEBAS DE SOFTWARE
Como se ha sealado, las pruebas de software ayudan a verificar la calidad de un producto de
software, en forma previa a la entrega de la solucin al cliente final. La prueba de software se
integra en distintas etapas del ciclo de vida del proceso de desarrollo de software, donde se
aplican tcnicas especializadas orientadas a detectar errores en el software (Pressman, p. cit.). En
la figura 5, se muestra cmo las actividades de prueba deben ir siendo definidas, diseadas,
elaboradas y ejecutadas, durante el ciclo de desarrollo del software.
Es importante recalcar que para realizar pruebas del software es necesario planificarlas y tambin
saber cmo se va a medir la prueba, con el objeto de poder determinar objetivamente el
cumplimiento de los requerimientos tanto funcionales como no funcionales.
Las pruebas del software nunca se deben realizar en ambientes operativos o productivos. Siempre
se deben ejecutar en ambientes de prueba, los cuales deben cumplir con las mismas
caractersticas tcnicas y funcionales con que se ejecutar el nuevo sistema, o bien donde
actualmente se ejecuta el sistema que se est modificando.
15
ESTE DOCUMENTO CONTIENE LA SEMANA 7
3.1.1. TERMINOLOGA RELACIONADA CON LAS PRUEBAS
a. Distincin entre errores y fallas
Para describir un funcionamiento incorrecto de un sistema, se pueden utilizar varias
denominaciones, por ejemplo falta, error o simplemente fallo. Lo trascendental es diferenciar que
una falla en el sistema es el sntoma cuyo origen obedece a un error. Y es este ltimo el que se
debe corregir. Las pruebas debern cumplir ese objetivo, encontrar errores.
b. Validacin
Establecer objetivamente a travs de las pruebas y revisiones que el producto de software que se
est desarrollando satisface el uso para el cual fue concebido en el ambiente donde debe operar.
c. Verificacin
Por otra parte, este proceso asegura que el producto de software cumpla con los requerimientos
necesarios. Estos requerimientos, formalmente deben estar escritos, revisados y acordados por las
partes interesadas (cliente, desarrolladores). De esta forma, la verificacin debe velar por que el
producto de software se desarrolle de la forma correcta.
Los pasos a seguir en la creacin de caso de prueba corresponden a los siguientes (Pressman, p.
cit.):
16
ESTE DOCUMENTO CONTIENE LA SEMANA 7
a. Definicin de escenarios
Para una determinada funcionalidad del software, se establecen las distintas casusticas de
acuerdo a las definiciones dadas en las especificaciones funcionales. Por ejemplo, grficamente se
puede representar de la siguiente forma en la figura 6.
De acuerdo a la lgica que representa este flujo de estructura de control, los eventuales caminos
de ejecucin son:
Camino 1 1 -2 4 -6
Camino 2 1247
Camino 3 135
Donde cada escenario representa un camino con un conjunto de valores y condiciones distintas al
momento de ejecutar el software.
Las condiciones de entrada son parte del dominio de valores que permite procesar el sistema.
Estas condiciones de entrada pueden contener valores vlidos, invlidos, o bien aquellos que no
aplican a la condicin de prueba.
17
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Figura 7: Ejemplo de un caso de prueba simple
Fuente: material elaborado para esta asignatura (J. Reyes, 2015)
En la figura 7, se muestran los resultados esperados en una aplicacin bancaria donde el usuario
debe ingresar su clave para seleccionar la operacin que requiera realizar. En este caso, opera la
tarjeta de crdito y solamente el camino 2 representa una secuencia exitosa para la prueba de
operacin sobre la tarjeta. Los otros casos presentarn problemas de clave y vigencia.
18
ESTE DOCUMENTO CONTIENE LA SEMANA 7
e. Relacin de las pruebas con otras actividades
Es importante destacar que el proceso de pruebas, como se ha mencionado anteriormente, est
inserto dentro de una serie de actividades orientadas a producir software de calidad. Por tanto, la
prueba adems de atender los aspectos funcionales tambin debe abordar otros aspectos, tales
como seguridad, validez y verificacin, depuracin, programacin de componentes y la
certificacin final del software.
Como se mencion anteriormente, las pruebas son aplicadas en distintos contextos durante el
ciclo de vida del desarrollo. De esta manera, se pueden establecer tres niveles de prueba:
a. Pruebas unitarias
Permiten verificar el funcionamiento en forma aislada de una o ms piezas o componentes del
software. La prueba se realiza monitoreando el cdigo fuente, lo cual se apoya con el uso de
herramientas del entorno de desarrollo que permiten visualizar la ejecucin en cada lnea de
cdigo. Esta actividad es propia del equipo de desarrollo, no del usuario final.
b. Pruebas de integracin
Permite verificar la interaccin entre distintos componentes de software. Se basa principalmente
en la arquitectura del sistema, por lo cual el objeto de prueba es una cadena de funcionalidad
conocida que involucra una serie de desarrollos (piezas de software) que en conjunto satisfacen
una funcionalidad final del usuario. Por lo anterior, el ingeniero debe orientar la prueba en un
nivel de abstraccin ms cercano al negocio, en lugar de una revisin netamente tcnica. Lo que
se debe evitar es abordar las pruebas de integracin, abarcando de una vez la totalidad de la
funcionalidad, ya que resulta riesgoso y se pierde la oportunidad de hacerlo en forma incremental,
no permitiendo el avance progresivo del total de la solucin.
a. Pruebas de sistemas
19
ESTE DOCUMENTO CONTIENE LA SEMANA 7
3.1.5. ESTABLECER OBJETIVOS DE LA PRUEBA
a. Pruebas de aceptacin
En este tipo de prueba se compara el comportamiento del sistema versus los requerimientos del
cliente. Para realizarlo, el cliente o usuario final establece las tareas o actividades a realizar con el
sistema, de manera que pueda comprobar que se satisface la lista de requerimientos que se han
definido.
b. Pruebas de instalacin
Realizadas las pruebas de aceptacin, el software se debe verificar nuevamente en el ambiente o
entorno definitivo. Estas pruebas se enfocan en mayor grado en los requerimientos de sistema
respecto a la configuracin del hardware. Asimismo, el procedimiento de instalacin es parte de la
prueba que se debe realizar.
c. Pruebas de conformidad
Se orientan a verificar el comportamiento del software respecto a las especificaciones realizadas
en la etapa de diseo, tomando como base los requerimientos funcionales y no funcionales del
sistema.
d. Pruebas de regresin
Estas pruebas son necesarias ante modificaciones o cambio en las especificaciones (funcionales y
no funcionales). Tienen por objeto demostrar que ante cambios, aun cuando el software haya sido
previamente probado, se debe volver a probar y su comportamiento debe mantenerse, salvo en
las modificaciones especificadas. Estas pruebas son aplicables en las pruebas unitarias, integrales o
de sistema
e. Pruebas de rendimiento
Prueba enfocada en los requerimientos de capacidad y tiempos de respuesta especificados en la
operacin de las funciones del software. Por ejemplo, esta prueba se puede realizar con un
volumen alto en la carga de datos, para verificar el comportamiento del software.
f. Pruebas de configuracin
Los usuarios del software usualmente tienen o utilizan configuraciones especficas. Por ejemplo,
roles especiales y accesos determinados. Entonces, estas pruebas se enfocan en verificar que las
configuraciones asignadas sean las correctas.
20
ESTE DOCUMENTO CONTIENE LA SEMANA 7
g. Pruebas de facilidad de uso
El enfoque de estas pruebas est dado en la facilidad de uso de las funciones del software que
utiliza el usuario, la documentacin existente para guiarlo en la ejecucin de sus tareas y, tambin,
la facilidad del software para superar errores provocados por el usuario.
Las tcnicas de pruebas pueden ser clasificadas de dos formas: pruebas de caja blanca, en el caso
que se basen en el diseo del software, es decir, sabiendo cmo este fue desarrollado; o bien, caja
negra, donde solamente interesa saber el dato que entra y sale del sistema.
a. Pruebas ad hoc
Comnmente utilizada, surge de la experiencia e intuicin del ingeniero de software, lo cual se ha
aprendiendo de la experiencia en otros proyectos similares. En este caso, se genera un grado de
sensibilidad en la prueba, el cual es beneficioso al momento de seleccionar casos de prueba que se
pueden aplicar en un mbito determinado.
3.2.2. ESPECIFICACIN
21
ESTE DOCUMENTO CONTIENE LA SEMANA 7
lmite para validar la robustez ante datos que no corresponden al dominio de informacin del
sistema.
b. Tablas de decisin
Corresponden a relaciones lgicas entre datos y acciones dentro del sistema. Los casos de prueba
son generados a partir de las combinaciones que existen entre los datos y las acciones definidas
funcionalmente en el sistema.
a. Flujo de control
Esta tcnica de prueba busca explorar todos los flujos de control que la funcionalidad tiene
definidos como parte de la programacin. Se puede sealar que la forma ms representativa de
realizarlo es recorriendo todos los caminos que las condiciones y decisiones del cdigo pueden
tomar en funcin de los datos de entrada/salida en el sistema. De igual forma se presentan
algunas restricciones, como por ejemplo abordar los bucles de cdigo. Sin embargo, la prueba
cumple su objetivo cuando al ejecutarse abarca la totalidad de condiciones, al menos una vez.
b. Flujo de datos
Esta tcnica de prueba se centra en los datos y el flujo que deben seguir de acuerdo a la lgica que
se ha programado. Las variables pasan a ser el objeto de revisin, respecto al valor del dato
asignado y cmo este vara en la medida que se ejecutan los distintos flujos del programa. Dada la
gran cantidad de variables y caminos lgicos que se pueden ejecutar, una estrategia es seleccionar
los datos ms sensibles y los caminos (condiciones/decisiones) ms crticos para el funcionamiento
de la aplicacin.
3.2.4. ERRORES
1
Correspondera a un flujo de proceso que tiene estados definidos, es decir, que presenta un inicio y un
final.
22
ESTE DOCUMENTO CONTIENE LA SEMANA 7
que para poder asignar un determinado valor debe configurar la cuenta a travs del sistema.
Donde, adems, el sistema requiera de un rol que permita realizar la habilitacin. Esta tcnica
tambin es til en la depuracin de las validaciones que debe realizar la funcionalidad.
b. Mutaciones (pruebas de acoplamiento)
Tcnica basada en la generacin de versiones distintas del software, donde se introducen
pequeas modificaciones y a las cuales se les denomina mutantes. Los casos de prueba son
aplicados en la versin original y tambin en las versiones mutantes. Si el caso de prueba logra
establecer una diferencia entre ambas versiones, se entender que se ha identificado la versin
mutante. En estos casos, pequeas modificaciones de sintaxis pueden dar cabida al
descubrimiento de problemas ms complejos a nivel del software, por ejemplo acoplamiento de la
funcionalidad.
a. Perfil operativo
Una de las premisas en el mbito de las pruebas es hacer que estas sean ejecutadas bajo
condiciones iguales o muy similares al entorno donde el software ser puesto en operacin. Esto
implica que a nivel de infraestructura, las condiciones deben ser recreadas en similitud al
ambiente productivo. Asimismo, la demanda de servicios o carga de trabajo del software tambin
debe estar en el mismo contexto que el esperado en el ambiente productivo. Por lo anterior se
puede inferir el grado de confiabilidad que se espera de la solucin en el ambiente donde se
utilizar.
b. Confiabilidad
Estas pruebas buscan determinar el grado de confiabilidad de la solucin, para lo cual estn
basadas en los objetivos de confiabilidad que se han definido en los requerimientos (no
funcionales) del sistema y el uso esperado que este tendr. Dado el escenario anterior, se busca
evaluar el grado de criticidad que presentarn las distintas componentes funcionales de la
solucin.
Todas las tcnicas de pruebas mencionadas anteriormente, en general, son aplicables a cualquier
tipo de software. No obstante, hay algunos casos en los cuales se requiere conocimientos
especficos en funcin de la naturaleza de las aplicaciones (Pressman, p. cit.). Un ejemplo de lo
anterior, corresponde al siguiente tipo de aplicaciones:
23
ESTE DOCUMENTO CONTIENE LA SEMANA 7
Pruebas de protocolos de comunicacin
Pruebas para sistemas en tiempo real
Pruebas para sistemas de seguridad
En cada caso, adems de la naturaleza que se persigue con las pruebas de software, lo que se
pretende destacar es el hecho de existir una serie de caractersticas y condiciones particulares
dependiendo el tipo de aplicacin que se requiere probar. En este sentido, se hace necesaria una
mirada especializada en cada tipo de aplicacin. Lo ideal es que un ingeniero de software conozca
lo general y tambin lo particular. Entonces, al momento de planificar las pruebas tambin debe
considerarse este punto.
La estructura de un plan de pruebas debe ser acordada y aprobada por los integrantes del equipo
de trabajo, como tambin por las partes interesadas como por ejemplo, el usuario final de la
solucin. Lo anterior, dado que al momento de definir y ejecutar las pruebas se va a requerir la
participacin de distintos actores, por lo cual deben estar debidamente coordinadas y planificadas
en una carta Gantt.
El plan de pruebas consolida la planificacin requerida para el control y gestin del proceso de
pruebas, para ello se debe elaborar como parte de la documentacin del proyecto. De esta forma,
a modo de orientacin, se presenta a continuacin un esquema de ndice que debiera tener el
plan de pruebas.
24
ESTE DOCUMENTO CONTIENE LA SEMANA 7
corresponde probar, aspectos que se
requiera explicitar respecto a alguna
condicin especial de las pruebas.
Debe ser explicitado todo aquello que se
va a probar
o Aspectos funcionales
o Aspectos tcnicos
o Aspectos de seguridad
o Otros
De la misma forma, se debe declarar lo
que no formar parte de la pruebas.
3. Referencia de Se indica la definicin de requerimientos,
documentacin especificaciones funcionales y tcnicas de
la solucin.
Parte 2 4. Estrategia Se declaran los tipos de prueba que se
realizarn (unitarias, integrales, sistema,
etc.).
Se definen los casos de prueba que se
desarrollarn y la tcnica de prueba que
se utilizar.
En esta definicin, se establece el grado
de cobertura que habr sobre cada
aspecto a probar (funcional, tcnico u
otro). Es decir, se indicar que se
ejecutar una cantidad determinada de
casos de prueba para los aspectos
funcionales, otra para aspectos de
seguridad y, as, respondiendo a los
aspectos considerados en el alcance de la
prueba.
5. tems de prueba Si bien en el punto donde se define el
alcance se indican, por ejemplo, aspectos
funcionales a probar, en este punto se
debe especificar cul es la funcionalidad
que se probar. Se hace en forma
detallada.
6. Casos de prueba Se definen los escenarios de prueba.
Casos que abarcan la funcionalidad que
se probar.
Parte 3 7. Estado del plan De acuerdo a los convenios que
determinen el plan de pruebas con los
actores involucrados, se deben
25
ESTE DOCUMENTO CONTIENE LA SEMANA 7
establecer parmetros que determinen el
estado del plan de pruebas. Esto es, bajo
qu condiciones el plan puede
suspenderse, repetirse, anularse, o bien
darse por finalizado.
Es decir, se establecen criterios para dar
fluidez y continuidad a la ejecucin del
plan de pruebas.
Se podra acordar que el plan se define
como exitoso si en su ejecucin se logra
abarcar el 80% de los casos de prueba.
Otros factores que tambin inciden son el
costo y la duracin.
8. Entregables Corresponde a la definicin de todos los
documentos que formarn parte de los
entregables asociados al plan de pruebas.
Casos de prueba, registro de las pruebas,
informes de resultado.
9. Recursos necesarios Se deben sealar las necesidades de
ambiente para ejecutar las pruebas.
Disponibilidad de quienes realizarn las
pruebas.
Habilitacin del software, en una versin
especfica para la ejecucin de la prueba.
Espacios fsicos y otros aspectos
logsticos.
10. Calendarizacin de Se debe sealar el plan de actividades y la
actividades programacin de estas.
Usualmente en formato Gantt.
11. Puntos de atencin Identificacin de riesgos y la forma de
mitigarlos en el caso que se presenten.
12. Matriz de Se explicitan las tareas principales y los
responsabilidades responsables de gestionarlas y
ejecutarlas.
13. Referencias Antecedentes generales que ayuden a
buscar informacin referente a la
planificacin del plan de pruebas.
Tabla 2: Estructura del plan de pruebas
Fuente: material elaborado para esta asignatura (J. Reyes, 2015)
26
ESTE DOCUMENTO CONTIENE LA SEMANA 7
COMENTARIO FINAL
27
ESTE DOCUMENTO CONTIENE LA SEMANA 7
REFERENCIAS
Pantaleo, G. (2011). Calidad en el desarrollo de software. Mxico: Alfaomega Grupo Editor.
McGraw-Hill Interamericana S. A.
Zahran, S. (1998). Software Process Improvement: Practical Guidelines for Business Success.
Semana 7.
28
ESTE DOCUMENTO CONTIENE LA SEMANA 7
29
ESTE DOCUMENTO CONTIENE LA SEMANA 7