Lista de Verificacion Software

August 12, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Lista de Verificacion Software...

Description

 

  LISTA DE SOFTWARE:

VERIFICACION

1.- Introducción: Verifcación es el conjunto acvidades aseguran el soware implemente correctamente una unciónde específca y la que Validación es que un conjunto dierente de acvidades que aseguran que el soware construido corresponde y sasace los requisitos del cliente. La verifcación y la validación abarcan una amplia lista de acvidades de aseguramiento de la calidad del soware, estas incluyen: Revisiones técnicas ormales, auditorias de calidad, simulación, acbilidad, revisión de documentación, y pruebas de diversos pos. Verifcación y Validación: 





  Verifcación: El papel de la verifcación comprende comprobar que el soware está de

acuerdo con su especifcación. Se comprueba que el sistema cumple los requerimientos uncionales y no uncionales que se le han especifcado.   Validación: La validación es un proceso más general. Se debe asegurar que el Soware cumple las expectavas del cliente. Va más allá de comprobar si el sistema está acorde con su especifcación, para probar que el soware hace lo que el usuario espera a dierencia de lo que se ha especifcado.   Importante: Nunca se va a poder demostrar que el soware está completamente libre de deectos.

El objevo de este tema es introducir la verifcación y validación del soware con énasis en las técnicas de verifcación estáca y en la prueba dinámica de código. Objevo de este tema son: -

Compre Comprende nderr la diere dierenci nciaa entre entre verifc verifcaci ación ón y validac validación ión del del soware soware.. Valorar Valorar la inspección inspección del soware soware y el análisis análisis estáco estáco como como métodos métodos de descub descubrir rir allos y mejorar la calidad del soware. Conoce Conocerr las técn técnica icass de prue pruebas bas para para desc descubr ubrir ir allo alloss en el código código.. Analizar Analizar las las técnica técnicass eespecí specífcas fcas para las pruebas pruebas de componente componentess y pruebas pruebas de de sistemas orientados a objetos. Importanci Importanciaa de las herramient herramientas as CASE CASE para para la la verifcaci verifcación ón de de sowar sowaree y apoyar apoyar el desarrollo de las pruebas.

2.- Técnicas de Verificación y Validación: 



-

Inspecciones del Soware: Se analiza analizan n las dierente dierentess represe representacio ntaciones nes del del sistem sistemaa (diagram (diagramas as de requerimi requerimientos entos,, diagramas de diseño y código uente) en búsqueda de deectos. Son técnicas técnicas de de validaci validación ón estác estácas as => => No No requier requieren en que que el el código código se ejecu ejecute te De Debe be realiz realizars arsee duran durante te todo todo el el ciclo ciclo de desarr desarroll ollo. o. Pruebas del Soware:

Se contras contrasta ta dinámica dinámicament mentee la respue respuesta sta de de protopo protoposs ejecuta ejecutables bles del sistem sistemaa con el comportamiento operacional esperado.

 

-

Técnic Técnicas as de de valida validación ción dinámi dinámicas cas => El El si siste stema ma se se ejecu ejecuta. ta. Requiere Requiere disponer disponer de proto protopo po ejecut ejecutable ables, s, por por lo que sólo pueden pueden ulizarse ulizarse en ciertas ases del proceso.

3.- Verificación y validación estática y dinámica: Las inspecciones de soware se pueden ulizar en todas las etapas del proceso, mientras que las técnicas de prueba sólo se pueden cuando está disponible un protopo o código ejecutable. Las técnicas de inspección incluyen inspección de programas, análisis automazado de código uente y verifcación ormal. Sin embargo, las técnicas estácas sólo pueden comprobar la correspondencia entre un programa y su especifcación (verifcación) y no puede probar que el soware es de ulidad operacional, y mucho menos que las caracteríscas no uncionales del soware son las correctas. Por lo tanto, para validar un sistema de soware, siempre se requieren llevar a cabo ciertas pruebas. Aunque en la actualidad las inspecciones se ulizan ampliamente, las pruebas de los programas es aún la técnica de verifcación y validación predominante.

4.- Proceso de depuración: 



-

Proceso que localiza y corrige los errores descubiertos durante la verifcación y validación. Es un un proceso proceso complicado complicado pues no siempr siempree los errores errores se se detectan detectan cerca del punto punto en que se generaron. Se uliz ulizan an herra herramie mienta ntass de depu depurac ración ión,, que acili acilitan tan el el proces proceso. o. Después de reparar el error, hay que volver a probar el sistema (pruebas de regresión). La solu solución ción del prim primer er all allo o puede puede dar luga lugarr a nuevo nuevoss allo allos. s.

5.- Inspecciones del software: 

-

Consisten en revisiones sistemácas tanto de los documentos generados como de los códigos uentes con el único objevo de detectar allos. Las inspeccion inspecciones es se se puede pueden n aplicar aplicar a la detección detección de allos allos en cualquiera cualquiera de los documentos generados. Permiten Permiten detectar detectar entre entre un 60 y un 90% de de los allos allos a unos unos costes costes mucho más bajos que las pruebas dinámicas. Permiten Permiten detectar detectar múlples múlples deect deectos os en en una una simple simple inspección, inspección, mientras mientras que las pruebas solo suelen detectar un allo por prueba. Permiten Permiten ulizar ulizar el conocimient conocimiento o del dominio dominio y del lenguaje, lenguaje, que determina determinan n los principales pos de allos que se suelen cometer. Las inspe inspeccione ccioness son úles para detectar detectar los los allos allos de módulos, módulos, pero no detecta detectan n allos allos a nivel de sistema, que ha de hacerse con pruebas. Las inspe inspeccione ccioness no son úles úles para la detección detección de nivele niveless de fabilidad fabilidad y evaluación evaluación de de allos no uncionales.

6.- Lista de fallos: El proceso de inspección siempre se realiza ulizando una lista de los errores comunes de los programadores. Esta se somete a discusión por el personal con experiencia y se actualiza recuentemente según se vaya teniendo experiencia. La lista de errores debe ser unción del lenguaje de programación que se ulice. Por ejemplo, un compilador Ada comprueba que las unciones enen el número correcto de argumentos, mientras que C no. Muchos de los allos en C enen relación con los punteros, estos no se pueden producir en Java. La candad de código que se puede inspeccionar debe estar limitado, ya que a parr de un empo de

 

inspección se baja la atención y se hace inefcaz. Existen estudios que establecen que no deberían examinarse más de 125 líneas de código por sesión, y no más de 2 horas.

7.- Inspección del código fuente: Análisis estático automatizado: 





-

-



Los analizadores estácos de programas son herramientas de soware que rastrean el texto uente de un programa, en busca de errores no detectados por el compilador. En algunos lenguajes de programación no son muy úles pues el compilador orece una gran inormación acerca de posibles errores (incluso en ejecución). Aspectos habitualmente analizados son: Análisis Análisis de de ujo ujo de control: control: Idenfca Idenfca y señala señala los bucles bucles con múlples múlples puntos puntos de salida salida y las secciones de código no alcanzable. Análisis Análisis de uliza ulización ción de datos: Señala Señala como como se ulizan ulizan las variables variables del programa: programa: Variables sin ulización previa, que se declaran dos veces, declaradas y nunca ulizadas. Condiciones lógicas con valor invariante, etc. Análisis Análisis de de interac interaces: es: Verifca Verifca la declarac declaración ión de las operac operaciones iones y su invocación. invocación. Esto es inúl en lenguajes con pado uerte (Java, Ada) pero si en los restantes (C no comprueba los parámetros de una operación). Análisis Análisis de la la trayecto trayectoria: ria: Idenf Idenfca ca todas todas las posibles posibles trayectoria trayectoriass del del program programaa y presenta las sentencias ejecutadas en cada trayectoria. Debe ulizarse siempre junto a inspecciones directas del código, pues existen errores que no pueden detectar, por ejemplo, la inicialización de una variable a un valor incorrecto.

Los analizadores estácos de programas son herramientas de soware que rastrean el texto uente de un programa y detecta los allos y anomalías. No requieren que el programa se ejecute, más bien, analizan sintáccamente el código uente e idenfca las dierentes sentencias que conene. Después puede detectar si las sentencias están bien ormadas, hacer inerencias sobre los ujos de control, y de los valores que se asignan a las variables.

8.- Pruebas del software: Las pruebas se realizan en cuatro etapas: 









Prueba de unidades (prueba de métodos y clases) c lases) se prueba prueba cada cada métod método o y clas clasee de de orma orma indepe independi ndient ente. e. Prueba de integración o de subsistemas. se pru prueb eban an agru agrupa pacio cione ness de clas clases es rela relaci cion onad adas as Prueba de sistema. se pr prue ueba ba el sist sistem emaa ccom omo o un un ttod odo. o. Prueba de validación (o de aceptación) prueba prueba del del sistema sistema en el entorno entorno real real de trabajo trabajo con con interven intervención ción del del usuari usuario o fnal. fnal. El descubrimiento de un deecto en una etapa requerirá la repeción de las etapas de prueba anteriores.

A excepción de programas pequeños, los sistemas no se prueban como una unidad monolíca. Los sistemas se construyen a parr de subsistemas, que a su vez están se construyen a parr de módulos que están compuestos de operaciones y unciones. Por tanto, el proceso de prueba se lleva a cabo en etapas en las que las pruebas se aplican de orma incremental, en conjunto con la implementación del sistema.

 

9.- Tipos de pruebas del software: Existen dos pos dierentes de pruebas: 



Las pruebas de deectos: - Bu Busca scan n las inco inconsi nsiste stenci ncias as entr entree un prog program ramaa y su espe especifc cifcación ación.. - Las prueba pruebass se diseñan diseñan para para busca buscarr lo loss error errores es en en el códi código. go. - De Demue muestr stran an la la prese presenci ncia, a, y no la la ause ausenci ncia, a, de de deec deectos tos.. Las pruebas estadíscas: - Bu Busca scan n demost demostrar rar que que sas sasace ace la espec especifc ifcación ación op opera eracion cional al y su fabili fabilidad dad.. - Se diseña diseñan n para para reeja reejarr la carga carga de tr traba abajo jo habi habitua tual. l. - Sus resultados resultados se proces procesan an estadís estadíscame camente nte para esmar esmar ssu u fabilida fabilidad d (contand (contando o el número de caídas del sistema) y sus empos de respuesta. Las pruebas de deectos: Pretenden encontrar las inconsistencias entre un programa y su especifcación. Estas inconsistencias se deben habitualmente a los allos o deectos en el código del programa. Las pruebas se diseñan para revelar la presencia de deectos en el sistema, más que para evaluar su capacidad operacional. Las pruebas estadíscas: se ulizan para probar el desempeño y la fabilidad del programa y comprobar cómo trabaja bajo condiciones operacionales. Las pruebas se diseñan para reejar las entradas de los usuarios y su recuencia. Después de llevar a cabo las pruebas, se puede hacer una esmación de la fabilidad operacional del sistema contando el número de caídas observadas en el sistema. La capacidad del programa se valora midiendo el empo de ejecución y el empo de respuesta del sistema cuando procesa los datos estadíscos de la prueba. No existe una separación clara entre estos dos pos de pruebas. Durante las pruebas de deectos los desarrolladores obenen una visión intuiva de la fabilidad, y durante las pruebas estadíscas, se descubren obviamente muchos allos.







10.- Pruebas funcionales (“Caja negra”) 



Las pruebas uncionales o de caja negras es una políca de selección de casos de pruebas basado en la especifcación del componente o programa. Las pruebas se seleccionan en unción de la especifcación y no de la estructura interna del soware.

Las pruebas uncionales o de caja negra son una estrategia para seleccionar las pruebas de allos basándose en las especifcaciones de los componentes y programas, y no del conocimiento de su implementación. El sistema se considera como una caja negra cuyo comportamiento sólo se puede determinar estudiando las entradas y de contrastarlas con las respuestas que proporciona el sistema. Este enoque se puede aplicar de igual orma a los sistemas que están organizados como librerías de unciones, o como objetos. El probador introduce las entradas en los componentes del sistema y examina las salidas correspondientes. Si las salidas no son las previstas, entonces la prueba ha detectado exitosamente un allo en el soware.

11.- Particiones de equivalencia: 



En general es imposible probar un método con todas las combinaciones posibles de entradas Clasifcar los datos de entrada en grupos que enen un comportamiento similar respecto de la lógica de programa.

 

Una parción de equivalencia es cada grupo de datos de entrada que generan igual respuesta cualitava. Los casos de pruebas se eligen en unción de las parciones: - Se eli elige ge un caso caso cent central ral por parció parción: n: Caso Caso ttípi ípico. co. - Se elige elige casos correspond correspondient ientes es a las ront ronteras eras con otras otras parciones parciones:: casos casos atípicos. atípicos. Las parciones se idenfcan ulizando la especifcación del programa o la documentación del usuario.







Los datos de entrada a un programa se pueden clasifcar en dierentes clases, de acuerdo con la uncionalidad del programa. Los datos de un mismo grupo enen un tratamiento similar por parte del programa. Un enoque sistemáco para las pruebas de deectos se basa en idenfcar todas las parciones de equivalencia y basar en ellas las pruebas de allos. Una vez idenfcado un conjunto de parciones, se eligen los casos de prueba de cada una de estas parciones. Un buen criterio de selección de los casos de prueba es elegir dichos casos de los límites de las parciones junto con casos cercanos al punto medio de la parción. Con ello, se consideran los casos picos para los programadores que son los que enen un tratamiento lejano a las decisiones de control crícas, c rícas, y valores apicos que son los que enen un tratamiento próximo a los casos en que se cambian de tratamiento.

12.- Pruebas estructurales (“Caja blanca”) 

 



En las pruebas estructurales las pruebas se seleccionan en unción del conocimiento que se ene de la implementación del módulo. Se suelen aplicar a módulos pequeños. El probador analiza el código y deduce cuántos y qué conjuntos de valores de entrada han de probarse para que al menos se ejecute una vez cada sentencia del código. Se pueden refnar los casos de prueba que se idenfcan con pruebas de caja negra.

13.- Pruebas de integración: 



 

Se prueban la respuesta de grupos de módulos interconectados a fn de detectar allos resultantes de la interacción entre los componentes. Las pruebas de integración se realizan con reerencia a las especifcaciones del programa. La principal difcultad de las pruebas de integración es la localización de los allos. Para acilitar la detección de los errores se ulizan técnicas incrementales.

 

CONCLUSIONES • Las acciones correspondientes a la calidad de soware que se estaban llevando a cabo eran acciones aisladas no contempladas en un plan ormal. Esto se daba, principalmente, por el tamaño del departamento de Desarrollo de Sistemas, pues no se trata de una compañía c ompañía desarrolladora de soware. • El aseguramiento de calidad de soware se podía trabajar, dentro de cada una de las acvidades de desarrollo, de la siguiente manera: — Realizando una revisión por pares para cada c ada proyecto. — Haciendo seguimiento ormal a los proyectos, no sólo en empos y costos, sino en cumplimiento con estándares y metodología de desarrollo de soware. — Consolidando la metodología de desarrollo de soware en busca de alcanzar niveles superiores de madurez. — Involucrando puntos de chequeo y pruebas de soware. — Desarrollando estándares muy concretos para programación e interase de usuario. • Los objevos básicos de las inspecciones son: — Encontrar errores lo más temprano posible en el ciclo de desarrollo. — Asegurar que todos los parcipantes están de acuerdo en la parte técnica del trabajo. — Verifcar que el trabajo cumple con los criterios preestablecidos. — Completar ormalmente una tarea técnica.

 

— Suministrar inormación sobre el producto y el proceso de inspección. • Como benefcios secundarios de las inspecciones se destacan: — Asegurar que las personas asociadas estén amiliarizadas técnicamente con el producto. — Ayudar a crear un equipo técnico eecvo. — Ayudar a ulizar los mejores talentos de la organización. — Ayudar a los parcipantes a desarrollar sus habilidades como revisores. • Vale la pena hacer una disnción entre los dierentes pos de revisiones que se pueden llevar a cabo durante el proceso de desarrollo, teniendo en cuenta que las inspecciones son tan sólo un po: — Revisiones gerenciales: Buscan asegurar el progreso, recomendar acciones correcvas y asegurar el suministro adecuado de recursos. — Revisiones técnicas: Evalúan el cumplimiento de especifcaciones y planes y aseguran la integridad de los cambios. — Inspecciones de soware: Buscan detectar e idenfcar deectos y verifcar resoluciones. — “Walkthrough”: Buscan detectar deectos, examinar alternavas y ser un oro para el aprendizaje • Para toda prueba debe haber un plan que incluye: — Objevos para cada ase de prueba. — Cronograma y responsabilidades para cada acvidad de prueba. — Disponibilidad de herramientas, documentación y librerías de prueba. — Procedimientos y estándares a ser ulizados para planear y llevar a cabo las pruebas y reportar los resultados. — Criterios para determinar si la prueba está completa, como también el éxito de cada prueba. • Después de tener el plan de pruebas, se deben generar los casos de prueba, siguiendo cualquier técnica de prueba. • Cada caso de prueba se debe ejecutar y al fnal debe quedar un reporte de las pruebas con la siguiente inormación: — Proyecto y programas que se están probando, objevo de la prueba y el plan de pruebas. — Responsables y parcipantes de las pruebas. — Casos de prueba. — Herramientas especiales ulizadas. — Confguraciones de hardware y soware ulizadas.

 

— Resultados de las pruebas. — Idenfcación de los elementos que quedan en la librería de pruebas. — Firma de los responsables de las pruebas y cerfcación de Etapa Inspecciones Revisiones técnicas Requerimientos detallados iniciales Planeación Planes de desarrollo Desarrollo Diseño detallado Diseño del sistema Codifcación Diseño de alto nivel Publicaciones Publicaciones en borrador Publicaciones fnales Pruebas Implementación de pruebas 128 SISTEMAS & TELEMÁTICA que se siguió el procedimiento apropiado. • Como parte del reporte del proceso de pruebas, es deseable clasifcar los errores encontrados, con el fn de tomar correcvos en el proceso de prueba o retroalimentación para los desarrolladores. • Las pruebas deben ser analizadas teniendo en cuenta: — Los errores graves encontrados deben ser analizados en grupo, para hallar soluciones y maneras de que no vuelvan a ocurrir. — Analizar el po de error más recuente y revisar qué ocurren y cómo se pueden mejorar las inspecciones. — Revisar la eecvidad de las pruebas y reorzar aquellas que más errores detectan. — Los métodos y herramientas de prueba a emplear pueden ser cualquiera, siempre y cuando se ulicen dentro de un plan de pruebas. • Uno de los benefcios de las autoevaluaciones es que los analistas/programadores pueden sugerir mejoras dentro de todo el proceso de desarrollo de soware, para así incrementar su calidad y producvidad en el trabajo

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF