Está en la página 1de 40

IEEE Std for Software Unit Testing

1008-1987
David Omar Romn Armburo

IEEE Std for Software Unit Testing


1008-1987

Objetivos del estndar

Especificar un mtodo estndar para las pruebas unitarias


de software que puedan ser usadas como base para las
prcticas de ingeniera de software

Describir conceptos de ingeniera de software as como


supuestos para las pruebas en las que esta basado el
enfoque de este estndar

Proporcionar informacin de orientacin y recursos que


nos ayuden en la implementacin y uso del estndar

Audiencia

IEEE Std for Software Unit Testing


1008-1987

Unit testers
Unit test supervisors

El estndar fue desarrollado para ayudar a quienes


participan en las pruebas unitarias
- Proveen entradas (inputs)
- Llevan a cabo (perform)
- Supervisan (supervise)
- Controlan (monitor)
- Evalan (evaluate)

IEEE Std for Software Unit Testing


1008-1987

Relacin con otros estndares

829 IEEE Std for Software Test Documentation

Test Design Specification


Test Summary Report

729 IEEE Std Glossary of Software Engineering


Terminology

Activities

Unit Testing Process

IEEE Std for Software Unit Testing


1008-1987

Phase 1

Phase 2

Phase 3

Perform test
Planning

Acquire the Test


Set

Measure the Test


Unit

Plan the general


approach, resources
and schedule

Design the set of tests

Execute the test


procedures

Determine features to
be tested

Implement the refined


plan and design

Check for termination

Refine the general plan

Evaluate the test effort


and unit

Alcance

IEEE Std for Software Unit Testing


1008-1987

Unit testing es un proceso que involucra planear, desarrollar y comparar


una prueba contra sus requerimientos
Describe un proceso de pruebas compuesto por una jerarqua de
fases, actividades y tareas
El estndar aplica sin importar que el unit tester sea o no un
desarrollador

Requiere la elaboracin de documentos

Test Design Specification


Test Summary Report

El estndar aplica a las pruebas unidades recin desarrolladas o


modificadas

Fuera del Alcance

IEEE Std for Software Unit Testing


1008-1987

El resultado de algunas tareas de la planificacin general de pruebas


aplican a todos los niveles de prueba. Sin embargo dichas tareas no
son consideradas en el proceso de pruebas unitarias aunque las
afecten directamente

Identifica una necesidad por el anlisis de fallas y correccin en las


faltas de software. Sin embargo no especifica un proceso de
debugging

No abarca otros componentes de un compresivo proceso de


verificacin y validacin

No requiere el uso de una herramienta en especfico, ni el


seguimiento de alguna metodologa para el control de la
documentacin, aseguramiento de la calidad o el manejo del
proceso de pruebas

Definiciones

IEEE Std for Software Unit Testing


1008-1987

software test incident Any event occurring during the


execution of a software test that requires investigation.
state data Data that defines an internal state of the test unit
and is used to establish that state or compare with existing
states.
test objective An identified set of software features to be
measured under specified conditions by comparing actual
behavior with the required behavior described in the
software documentation.

Definiciones

IEEE Std for Software Unit Testing


1008-1987

Module (1) A program unit that is discrete and identifiable


with respect to compiling, combining with other units, and
loading; for example, the input to, or output from, an
assembler, compiler, linkage editor, or executive routine.
(2) A logically separable part of a program.
Note: The terms module, component, and unit are often used
interchangeably or defined to be sub-elements of one another in different
ways depending upon the context.The relationship of these terms is not yet
standardized.

Definiciones

IEEE Std for Software Unit Testing


1008-1987

test unit A set of one or more computer program modules


together with associated control data, (for example, tables),
usage procedures, and operating procedures that satisfy the
following conditions:
1) All modules are from a single computer program
2) At least one of the new or changed modules in the set
has not completed the unit test
3) The set of modules together with its associated data and
procedures are the sole object of a testing process

Definiciones

IEEE Std for Software Unit Testing


1008-1987

unit requirements documentation Documentation that sets


forth the functional, interface, performance, and design
constraint requirements for the test unit.

IEEE Std for Software Unit Testing


1008-1987

Unit Testing Activities


Plan
Perform test Planning

Determine
Refine
Design

Acquire the Test Set


Implement
Execute
Measure the Test Unit

Check

Evaluate
Test design specification Determine, Refine, and Design
Test summary report all of the activities

IEEE Std for Software Unit Testing


1008-1987

1. Planear
Plan
Determine

Refine
Design

Actividad 1
Planificar el enfoque general,
los recursos y la programacin

Implement
Execute
Check

Evaluate

1. Planear
Entradas
E1. Los planes del
proyecto

IEEE Std for Software Unit Testing


1008-1987

Tareas

Salidas

1.1. Especificar enfoque


general a las pruebas unitarias

S1. Informacin general


de la planificacin de las
pruebas unitarias

1-2. Especificar integridad de


los requerimientos

E2. Documentacin de
los requerimientos del
software

1.3. Especificar terminacin


de los requerimientos
1.4. Determinar los recursos
de los requerimientos
1.5. Especificar un cronograma
requerimientos

S2. Solicitudes de
recursos de las pruebas
unitarias (si se generan
de 1.4)

IEEE Std for Software Unit Testing


1008-1987

2. Determinar
Plan
Determine

Refine
Design

Actividad 2
Determinar las caractersticas
a ser probadas

Implement
Execute
Check

Evaluate

2. Determinar
Entradas
E3. Documentacin de
los requerimientos
unitarios
E4. Documentacin del
diseo de la
arquitectura del
software (si es
necesaria)

IEEE Std for Software Unit Testing


1008-1987

Tareas
2.1. Estudiar los
requerimientos funcionales

2.2. Identificar requerimientos


adicionales y procesos
asociados
2.3. Identificar los estados de
la unidad
2.4. Identificar las
caractersticas de
entrada/salida de datos

2.5. Seleccionar los elementos


a ser incluidos en la prueba

Salidas
S3. Lista de los
elementos a ser
incluidos en la prueba
(de 2.5)

S4. Solicitudes de
aclaracin de los
requerimientos
unitarios (si se generan
de 2.1 a 2.4)

Cuando sea necesario solicita la aclaracin de los requerimientos unitarios

2. Determinar
Test Design Specification
Features to be tested (S3)

IEEE Std for Software Unit Testing


1008-1987

Test Summary Report

IEEE Std for Software Unit Testing


1008-1987

3. Refinar
Plan
Determine

Refine
Design

Actividad 3
Refinarel Plan General

Implement
Execute
Check

Evaluate

3. Refinar
Entradas
Lista de los elementos
a ser incluidos en la
prueba (de S3)
Informacin general de
la planificacin de las
pruebas unitarias (de
S1)

IEEE Std for Software Unit Testing


1008-1987

Tareas
3.1 Perfeccionar el
enfoque
3.2 Especificar recursos
especiales de los
requerimientos
3.3 Especificar un
cronograma detallado

Salidas
S5. Informacin
especfica del plan de
pruebas unitarias (de
3.1 a 3.3)
S6. Solicitudes de
recursos especiales de
requerimientos
unitarios (si se generan
de 3.2)

3. Refinar
Test Design Specification
Features to be tested (S3)
Approach Refinements (3.1 y
3.2 y 3.3)

IEEE Std for Software Unit Testing


1008-1987

Test Summary Report

IEEE Std for Software Unit Testing


1008-1987

4. Disear
Plan
Determine

Refine
Design

Actividad 4
Disear el conjunto de
pruebas

Implement
Execute
Check

Evaluate

4. Disear

IEEE Std for Software Unit Testing


1008-1987

Entradas

Tareas

Documentacin de
requerimientos unitarios (E3)

4.1 Disear la arquitectura del


conjunto de pruebas

Listado de elementos a ser


incluidos en la prueba (S3)

4.2 Obtener procedimientos


de la prueba

Informacin del plan de


pruebas unitarias (1.1, 1.2 y
2.1)

4.3 Obtener especificaciones


del caso de prueba

E5. Documentacin de diseo


de unidades
E6. Especificaciones de
pruebas anteriores (si hay
disponibles)

4.4 Aumentar las


especificaciones del conjunto
de caso de prueba basada en
la informacin del diseo
4.5 Completar las
especificaciones del diseo de
pruebas

Salidas
S7. Especificaciones de diseo
de prueba unitaria (de 4.5)
S8. Especificaciones de
procedimiento de prueba
separadas (si se generan de
4.2)
S9. Especificaciones de caso
prueba separadas (si se
generan de 4.3 o 4.4)
S10. Solicitud de
mejoramiento del diseo de
unidades (si se generan de 4.4)

4. Disear
Test Design Specification
Features to be tested (S3)
Approach Refinements (3.1 y
3.2 y 3.3)
Test Identification (4.1)
Correlation between test
cases and procedures (4.2)
Test case specifications (4.3,
4.4 y 4.5)

IEEE Std for Software Unit Testing


1008-1987

Test Summary Report

5. Implementar

IEEE Std for Software Unit Testing


1008-1987

Plan
Determine
Refine
Design

Actividad 5
Implementar el Plan
Perfeccionado y el Diseo

Implement
Execute
Check

Evaluate

5. Implementar
Entradas
Informacin del plan de pruebas
unitarias (1.1, 1.2 y 2.1)

Especificaciones de caso de prueba en


las especificaciones de diseo de
prueba unitaria o documentos
separados (de 4.3 y 4.4)
E7. Descripciones de estructuras de
datos de software

IEEE Std for Software Unit Testing


1008-1987

Tareas
5.1 Obtener y verificar
la informacin de la
prueba
5.2 Obtener los
recursos especiales (de
S6)

E8. Recursos de apoyo a las pruebas


E9 Elementos de la prueba
E10. Informacin de prueba de previas
actividades de prueba (si hay )
E11. Herramientas de prueba de
previas actividades de prueba (si hay)

5.3 Obtener los


elementos de la prueba

Salidas
S11. Datos de la prueba
verificados (de 5.1)
S12. Recursos de apoyo
de la prueba (de 5.2)
S13. Configuracin de
los elementos de la
prueba (de 5.3)

S14. La informacin
inicial del Test Summary
Report (de 5.3)

5. Implementar
Test Design Specification
Features to be tested (S3)
Approach Refinements (3.1 y
3.2 y 3.3)
Test Identification (4.1)
Correlation between test
cases and procedures (4.2)
Test case specifications (4.3,
4.4 y 4.5)
Correlation between test
cases and data sets (5.1)

IEEE Std for Software Unit Testing


1008-1987

Test Summary Report


Record the identifier of
each item in the Summary
section (5.3)

IEEE Std for Software Unit Testing


1008-1987

6. Ejecutar
Plan
Determine

Refine
Design

Actividad 6
Ejecutar los procedimientos de
la prueba

Implement
Execute
Check

Evaluate

6. Ejecutar
Entradas

IEEE Std for Software Unit Testing


1008-1987

Tareas

Datos de la prueba verificados (de


S11)

6.1 Correr las pruebas

Recursos de apoyo de la prueba (de


S12)

6.2 Determinar
resultados

.Configuracin de los elementos de


la prueba (S13)

Especificaciones de caso de prueba


(4.3 y 4.4)
Especificaciones de procedimiento
de prueba (si se generan de 4.2)

Resultados del anlisis de fallas (si


se generan del debugging process)

Salidas
S15. Informacin de la
ejecucin de las
pruebas (6.1 y 6.2)
S16. Especificaciones de
la prueba revisadas (si
se producen de 6.2)
S17. Informacin de la
prueba revisada (si se
producen de 6.2)

6. Ejecutar
Test Design Specification
Features to be tested (S3)
Approach Refinements (3.1 y
3.2 y 3.3)
Test Identification (4.1)
Correlation between test
cases and procedures (4.2)
Test case specifications (4.3,
4.4 y 4.5)
Correlation between test
cases and data sets (5.1)

IEEE Std for Software Unit Testing


1008-1987

Test Summary Report


Record the identifier of each
item in the Summary section
(5.3)
Record all test incidents in the
Summary of Results section (6.1)
Record pass or fail results in
the Summary of Results section
(6.2)
Record resource consumption
data in the Summary of Activities
section (6.2)
For each failure, have the failure
analyzed and record the fault
information in the Summary of
Results (6.2)

6. Ejecutar

IEEE Std for Software Unit Testing


1008-1987

Caso 1 Falta en las especificaciones de la prueba o datos de la prueba

Corregir la falta

Documentarla en el Resumen de Actividades

Volver a correr las pruebas que fallaron

Caso 2 Falta en la ejecucin del procedimiento de la prueba

Volver a correr los procedimientos que se ejecutaron de manera incorrecta

Caso 3 Falta en el ambiente de pruebas


Opcin 1

Tener el ambiente correcto

Documentar en el Resumen de Actividades

Volver a correr las pruebas que fallaron

Opcin 2 (Terminacin anormal)

Documentar la razn para no corregir


el ambiente en el Resumen de
Actividades

Revisar la terminacin de la prueba

6. Ejecutar

IEEE Std for Software Unit Testing


1008-1987

Caso 4 Falta en la implementacin de la unidad


Opcin 1

Tener la unidad corregida

Documentar en el Resumen de Actividades

Volver a correr todas las pruebas

Opcin 2 (Terminacin anormal)

Documentar la razn para no corregir


la unidad en el Resumen de
Actividades

Revisar la terminacin de la prueba

Caso 5 Falta en el diseo de la unidad


Opcin 1

Tener el diseo y la unidad corregidas

Modificar la especificacin de la prueba y

Opcin 2 (Terminacin anormal)

Documentar la razn para no corregir


el diseo en el Resumen de
Actividades

Revisar la terminacin de la prueba

y datos apropiados

Documentar en el Resumen de Actividades

Volver a correr todas las pruebas

IEEE Std for Software Unit Testing


1008-1987

7. Revisar
Plan
Determine

Refine
Design

Actividad 7
Revisar la terminacin de la
prueba

Implement
Execute
Check

Evaluate

7. Revisar

IEEE Std for Software Unit Testing


1008-1987

Tareas

Salidas

Requerimientos de
completitud y
terminacin (1.2 y 1.3)

7.1 Revisar para


terminacin Normal de
la prueba

Informacin de la
ejecucin ( 6.1 y 6.2)

7.2 Revisar para


terminacin Anormal
de la prueba

S18.Verificar que la
informacin de la
terminacin se agregue al
reporte as como
cualquier adicin de casos
( 7.1 al 7.3)

Entradas

Especificaciones de las
pruebas (4.1 al 4.3 )
Descripciones de las
estructuras de datos de
software (si se necesitan)

7.3 Complementar el
conjunto de pruebas

S19. Especificaciones de
prueba revisadas o nuevas
(si se producen de 7.3)
S20. Informacin de
prueba adicional (si se
producen de 7.3)

7. Revisar
Test Design Specification
Features to be tested (S3)
Approach Refinements (3.1 y
3.2 y 3.3)
Test Identification (4.1)
Correlation between test
cases and procedures (4.2)
Test case specifications (4.3,
4.4 y 4.5)
Correlation between test
cases and data sets (5.1)

IEEE Std for Software Unit Testing


1008-1987

Test Summary Report


Record the identifier of each item in the
Summary section (5.3)
Record all test incidents in the Summary of
Results section (6.1)
Record pass or fail results in the Summary
of Results section (6.2)
Record resource consumption data in the
Summary of Activities section (6.2)
For each failure, have the failure analyzed
and record the fault information in the
Summary of Results (6.2)
If additional tests are not needed, then
record normal termination in the Summary
of Activities (7.1)
Ensure that the specific situation causing
termination is documented in the Summary of
Activities (7.2)
Record the addition of test in the Summary of
Activities (7.3)

IEEE Std for Software Unit Testing


1008-1987

8. Evaluar
Plan
Determine

Refine
Design

Actividad 8
Evaluar la unidad y el esfuerzo
de la prueba

Implement
Execute
Check

Evaluate

8. Evaluar
Entradas
Especificaciones de
diseo de las pruebas
unitarias (4.5)
Informacin de la
ejecucin (6.1 y 6.2)
Informacin de la
Revisin (7.1 al 7.3)
Especificaciones por
separado de los casos de
prueba (si son producidas de
4.3 y 4.4)

IEEE Std for Software Unit Testing


1008-1987

Tareas

Salidas

8.1 Describir el estatus


de la prueba

Test Summary Report


completo (8.3)

8.2 Describir el estatus


de la unidad

Una completa
coleccin de productos
de prueba (8.4)

8.3 Completar el Test


Summary Report

8.4 Asegurarse de
preservar los
productos de prueba

Test design specification


Separate test-case specifications
Separate test procedure
specifications
Test data
Test data generation procedures
Test drivers and stubs
Test summary report

8. Evaluar

IEEE Std for Software Unit Testing


1008-1987

Test Summary Report


Record the identifier of each item in the
Summary section (5.3)
Record all test incidents in the Summary
of Results section (6.1)
Record pass or fail results in the
Summary of Results section (6.2)
Record resource consumption data in
the Summary of Activities section (6.2)
For each failure, have the failure analyzed
and record the fault information in the
Summary of Results (6.2)
If additional tests are not needed, then
record normal termination in the
Summary of Activities (7.1)
Ensure that the specific situation causing
termination is documented in the
Summary of Activities (7.2)
Record the addition of test in the
Summary of Activities (7.3)

Record variances from test plans and


test specifications in the Variances
section (8.1)

For abnormal termination, identify


areas insufficiently covered by the
testing and record reasons in the
Comprehensiveness Assessment
section (8.1)
Identify unresolved test incidents

and the reasons for a lack of


resolution in the Summary of Results
section (8.1)
Record differences revealed by
testing between the unit and its
requirements documentation in the
Variances section (8.2)
Record evaluation information in the
Evaluation section (8.2)

IEEE Std for Software Unit Testing


1008-1987

Apndice A: Implementacin y uso

Involucrar al usuario
Adoptar el estndar
Herramientas para unit testing
Determinacin de requerimientos

Apndice B: Conceptos y Supuestos

Desarrollo de documentos
Deteccin de fallas y correccin de faltas
Testing: Comportamiento Actual vs Requerimientos

Apndice C:

Recursos para Tcnicas y Herramientas

Conclusiones

IEEE Std for Software Unit Testing


1008-1987

IEEE Std for Software Unit Testing


1008-1987

Referencias Bibliogrficas

IEEE Standard for Software Unit Testing 1008-1987.

IEEE Std 729-1983, IEEE Standard Glossary of Software


Engineering Terminology.

IEEE Std 829-1983, IEEE Standard for Software Test


Documentation.

También podría gustarte