Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Modalidad
Prácticas en empresa
Presentado por
Tutor
Facultad de Ingeniería
Ingeniería en Telecomunicaciones
Prácticas profesionales
Bogotá D.C.
Octubre 2020
1
CONTENIDO
INTRODUCCION .......................................................................................................................... 4
1.4. JUSTIFICACIÓN............................................................................................................. 6
1.5. OBJETIVOS..................................................................................................................... 7
2. MARCO DE REFERENCIA................................................................................................... 8
BIBLIOGRAFIA .......................................................................................................................... 24
ANEXOS ...................................................................................................................................... 25
2
LISTADO DE FIGURAS
3
INTRODUCCION
El propósito de este trabajo es realizar pruebas de software para la empresa OPENTIC, en el cual
se explica todo el proceso de cómo se ejecutan las pruebas unitarias de acuerdo con los planes de
prueba establecidos, además se explica el modo de documentación del resultado de las pruebas y
como se reporta mediante casos las incidencias resultados de las mismas.
Con estas pruebas se busca garantizar el buen funcionamiento del software desarrollado, por
esta razón solicité a la compañía OPENTIC una oportunidad para brindarle mis servicios y así
buscar una solución que sirva para optimizar los procesos que con llevan las pruebas de software
realizadas para los diferentes clientes que tiene la compañía.
4
1. PLANTEAMIENTO DEL PROBLEMA
De acuerdo con los anteriores requerimientos la compañía decide contratar los servicios
de la compañía ITM Consulting de Colombia para que ellos a su vez realicen la construcción
e implementación del sistema de información requerido. Así mismo ITM Consulting de
Colombia con el fin de garantizar la correcta construcción del software toma la decisión de
contratar los servicios profesionales de la compañía OPENTIC por su alta experiencia en
calidad de software.
5
Realizar pruebas es la forma de asegurar que lo que quiere que haga el programa lo haga
y lo haga sin errores. Para apoyar la solución de la problemática actual, se decidió realizar
pruebas manuales, es decir que requieren de interacción humana, la persona que realiza las
pruebas se pone en el rol del usuario final y ejecuta el plan de pruebas, esto con el fin de
verificar el estado de la construcción del software y en caso de presentar inconsistencias en
las pruebas realizadas, se debe reportar la incidencia a los ingenieros desarrolladores para que
realicen las correcciones correspondientes.
1.4. JUSTIFICACIÓN
6
decidí aprovechar la oportunidad de la práctica profesional y poderme involucrar en este
proyecto, el cual consiste en diseñar y ejecutar el plan de pruebas técnicas y funcionales al
sistema de información, esta es una fase fundamental e importante a la hora de implementar
un sistema de información, ya que con estas pruebas se busca verificar y garantizar que los
requerimientos del cliente se cumplen a satisfacción con la solución de software
implementada.
1.5.OBJETIVOS
Objetivo general
Objetivos específicos
7
2. MARCO DE REFERENCIA
2.1.MARCO CONTEXTUAL
Las pruebas de software son técnicas cuyo objetivo es proporcionar información objetiva
sobre la calidad del producto, es una actividad más en el proceso de calidad. Las pruebas son
básicamente un conjunto de actividades dentro del desarrollo de software. Dependiendo del
tipo de pruebas, estas actividades podrán ser implementadas en cualquier momento de dicho
proceso de desarrollo.
• Antes del año 1956. Periodo orientado a debugging: En 1949 el autor A.Turing
redacta el artículo “Checking a Large Routine” donde habla sobre el uso de pruebas
de corrección. En esa época todas las pruebas estaban enfocadas en corregir el código
fuente. Estas pruebas las realizaban los programadores y no había diferencia entre
checkout, debugging y testing. (SQASA, 2020)
• Entre los años 1957 y 1978. Periodo orientado a demostración: Periodo en que las
pruebas se centraban en asegurar que el programa funcione “Debugging” y que el
programa resuelva el problema “testing”. Para este tipo de pruebas es necesario
realizar una prueba de forma masiva al final del desarrollo del software para garantizar
que se cumplan las especificaciones. (SQASA, 2020)
• Entre los años 1979 y 1982. Periodo orientado a destrucción: En 1979 el autor
G.J.Myers publica un artículo donde expone que las pruebas de software son el
proceso de ejecutar un programa con la intención de encontrar errores. Myers cambia
el paradigma de las pruebas, realizando pruebas intencionales hasta hacerlo fallar.
(SQASA, 2020).
8
• Entre los años 1983 y 1984. Periodo orientado a evaluación: En el año 1983 NBS
FIPS (National bureau of standards) propone y describe una metodología que integra
análisis, revisión y testing en el ciclo de vida del desarrollo del software. Esto con el
fin de confirmar la calidad de los sistemas software ejercitando sistemáticamente el
software en unas circunstancias cuidadosamente controladas. (SQASA, 2020)
• Entre los años 1985 en adelante. Periodo orientado a prevención: En este año se
implementan STEP (Systematic Test and Evaluation Process) sobre los estándares
formales IEEE 829-1983 y 828-1998. Con esta práctica se obtiene que las pruebas del
software cobren una mayor importancia en el ciclo de desarrollo de software con lo
que se abre la posibilidad de integrar pruebas en las diferentes fases. (SQASA, 2020)
Durante esta época las pruebas se diversifican para cubrir todas las fases del desarrollo,
poder comprobar todos los tipos de artefactos, prototipos, modelos, módulos, subsistemas
y sistemas que componen los productos software del momento. Las buenas prácticas de
pruebas de calidad de software actualmente se realizan el todo el mundo, con el objetivo
de garantizar la calidad del software, mitigar errores en desarrollo y las diferencias entre
los que requieren los usuarios y el producto finales que se les entrega. Estas buenas
prácticas deben ir de la mano de una metodología y en especial ágil, con el fin de
identificar errores a tiempos tempranos y se pueda corregir lo más pronto posible las
falencias encontradas.
9
pruebas de software se valida que lo que el usuario final requiere en realidad sea lo que se
desarrolló, es decir que lo que se definió en los requerimientos coincida con el desarrollo de
software realizado.
En resumen, podemos decir que los objetivos principales de realizar pruebas son:
Otro tema importante de recordar son los atributos que debería tener una buena prueba
Hay dos clases de pruebas que son: Las pruebas manuales y las pruebas automatizadas, en
nuestro caso para el proyecto se realizaron pruebas manuales.
Para está aplicación se realizaron pruebas unitarias con el fin de comprobar el correcto
funcionamiento de cada módulo según el plan de pruebas y los requerimientos definidos.
Esto nos permite asegurar que todos los módulos del sistema desarrollado funcionen
correctamente por separado.
Otro tipo de nivel de pruebas son las de integración la cual consiste en unir las pruebas que
se realizaron unitariamente y construir una estructura de programa que determine el diseño.
Logrando validar e identificar si al integrar los diferentes códigos fuentes se presenten
errores.
Una vez terminadas las pruebas de integración se debe realizar una validación al software,
estas pruebas se concentran en las acciones visibles para el usuario.
10
Cuando el software se encuentra integrado al sistema se deben realizar pruebas de estrés o
resistencia, la cual nos demuestra como responderá el sistema a situaciones anormales de
recursos y pruebas de recuperación y de rendimiento.
Para finalizar se realiza la entrega al cliente con una prueba de aceptación, el usuario
prueba el software en su propio entorno y confirma la aceptación o rechazo de la entrega.
(YUNBIT, 2016)
Existen unos estándares de calidad del software con el fin de ofrecer una mayor
confiabilidad, mantenibilidad en concordancia con los requisitos exigidos como son
utilización de metodologías para el diseño, programación, prueba y análisis del software
desarrollado, sin embargo, ninguno es camisa de fuerza a la hora de implementar un
proyecto, lo ideal es que el líder del proyecto elija el estándar que mejor se adapta a las
necesidades del proyecto y de la organización.
• NORMA ISO/IEC
La norma ISO/IEC 9126 de 1991, norma para evaluar los productos de software, indica las
características de la calidad y los lineamientos para su uso, fue desarrollada para dar soporte
a aquellas necesidades; las características de calidad y sus métricas asociadas, es útil tanto
como para evaluar el producto como para definir los requerimientos de la calidad y otros
usos.
La calidad externa es la totalidad de las características del producto software desde una
perspectiva externa. También podemos decir que es la calidad del software cuando es
ejecutado, la cual es medida y evaluada mientras se prueba en un ambiente simulado, con
datos simulados y usando métricas externas. Durante las pruebas, muchas fallas serán
11
descubiertas y eliminadas. Sin embargo, algunas fallas todavía pueden permanecer después
de las pruebas. Como es difícil corregir la arquitectura de software u otros aspectos
fundamentales del diseño del software, el diseño fundamental permanece sin cambios a
través de las pruebas.
Define la calidad en uso como la perspectiva del usuario de la calidad del producto software
cuando éste es usado en un ambiente específico y un contexto de uso específico. Se encarga
de medir la extensión para la cual los usuarios pueden conseguir sus metas en un ambiente
particular, en vez de medir las propiedades del software en sí mismo.
12
Figura 2. Modelo de Calidad Noma ISO/IEC 9126
• SQuaRE
✓ ISO/IEC 2500n. División de gestión de calidad. Los estándares que forman esta
división definen todos los modelos comunes, términos y referencias a los que se indica en
las demás divisiones de SQuaRE.
✓ ISO/IEC 2501n. División del modelo de calidad. El estándar que conforma esta
división presenta un modelo de calidad detallado, incluyendo características para la
calidad interna, externa y en uso.
✓ ISO/IEC 2503n. División de requisitos de calidad. Los estándares que forman parte de
esta división ayudan a especificar los requisitos de calidad. Estos requisitos pueden ser
usados en el proceso de especificación de requisitos de calidad para un producto software
13
que va a ser desarrollado ó como entrada para un proceso de evaluación. El proceso de
definición de requisitos se guía por el establecido en la norma ISO/IEC 15288 (ISO,
2003).
• SPICE
Una Norma Internacional sobre Evaluación de Procesos de Software ofrecerá los siguientes
beneficios a la industria y los usuarios del software: Beneficios para la Industria del Software
Los proveedores de software se someterá a un solo esquema de proceso de evaluación. Las
organizaciones de desarrollo de software tendrán una herramienta para iniciar y sostener un
proceso continuo de mejora. Los directores de programas tendrán un medio para garantizar
14
que su desarrollo de software está en consonancia y apoya, las necesidades comerciales de la
organización. (Simón Sánchez & Díaz Sarmiento, 2009).
• CMMI
“Es un modelo de mejora de los procesos de construcción de software que provee los
elementos necesarios para determinar su efectividad. Este modelo puede ser utilizado como
guía para mejorar las actividades de un proyecto, área u organización, ya que proporciona un
marco de referencia para evaluar la efectividad de los procesos actuales, facilitando con ello
la definición de actividades, prioridades y metas para garantizar la mejora continua. Es el
estándar más conocido para la mejora de procesos en mejora de procesos para el desarrollo
de proyectos, gestión de proveedores y gestión de servicio. (Simón Sánchez & Díaz
Sarmiento, 2009) y (Karron, 2013).
El CMMI establece cinco niveles de madurez los cuales son: Nivel 0: Incompleto El proceso
no se realiza, o no se consiguen los objetivos:
✓ Nivel 1: Inicial o ejecutando: Este es el nivel en donde todas las empresas que no tienen
procesos, es donde el proceso se ejecuta y se logra su objetivo, así sea fuera de
presupuesto y de cronograma. (Simón Sánchez & Díaz Sarmiento, 2009)
15
✓ Nivel 5 Optimizado: Los procesos de los proyectos y de la organización están orientados
a la mejora de las actividades, que mediante métricas son identificadas, evaluadas y
puestas en práctica.” (Simón Sánchez & Díaz Sarmiento, 2009)
3. DISEÑO METODOLÓGICO
Se deben precisar de manera clara y secuencial las etapas en las que se planea llevar a cabo la
práctica, especificando la forma como se alcanzarán los objetivos propuestos, los
procedimientos y actividades a desarrollar.
FASES
16
• Estudiar y analizar los requerimientos de usuario
• Analizar la matriz de trazabilidad
• Realizar especificaciones y diseño funcional y casos de uso.
• Verificación de historias de usuario
• Realizar entrevistas con el equipo encargado de la ingeniería de requisitos para aclarar
dudas y ampliar la información que sea necesaria.
17
• Los Analistas de negocio o Arquitectos de software, familiarizados con el sistema
informático implementado en entorno de producción, deberán suministrar la información
necesaria adicional para el plan de pruebas.
18
• Se deben estudiar los requisitos que aseguran un mínimo de confiabilidad de estas
pruebas respecto al entorno de producción.
• Se definen los requisitos de sistemas operativos, software y herramientas de las
estaciones de trabajo de los Testers.
• Se definen los requisitos de harware y software para los siguientes componentes:
✓ Herramienta de gestión de calidad de software.
✓ Herramientas para automatización de pruebas.
✓ Herramientas de BDD, TDD y Testing de Web Services)."
Determinar necesidades de personal y entrenamiento
19
4. PROPUESTA DEL PROYECTO O PRÁCTICA
4.1.PLAN DE TRABAJO
ETAPAS
En esta etapa se debe definir la matriz de responsabilidades, la cual deben estar alineadas
con las habilidades y conocimientos de cada persona; se realiza el cronograma a partir de
la estimación de las actividades de Software Testing realizada por el equipo.
Para que el cronograma sea realizable deben cumplirse algunas premisas. Estas se
determinan a partir de la documentación de entornos y de los requisitos de personal.
Se identifican los riesgos en cada una de las dependencias por medio de mesas de trabajo
y tormentas de ideas, además de definir planes de respuesta específicos para cada
situación particular y riesgo.
20
• Identificar las funcionalidades nuevas a probar
En esta fase se seleccionan los tipos de pruebas de software que se deben realizar y se
determina el conjunto de pruebas que se van a realizar.
21
• Identificar los entornos (ambientes) requeridos
Se estima del esfuerzo de pruebas a partir del diseño de casos de prueba; si no se cuenta
con la estimación, se procede a definir los tipos de perfiles de habilidades y
conocimientos en Software Testing que se necesitan.
22
pruebas de software comenzaran con la estimación del diseño, esfuerzo y ejecución de las
pruebas. A su vez se documentan los procedimientos para diseño y ejecución.
4.2.CRONOGRAMA DE TRABAJO
Se anexa cronograma de trabajo, donde se detallan las actividades que se han realizado y las que se
encuentran pendientes por realizar, las actividades que se encuentran marcadas en color verde
corresponden a las actividades donde yo interactuó directamente dentro del proyecto.
23
BIBLIOGRAFIA
24
ANEXOS
• Se anexa cronograma del proyecto
25