Espacio exclusivo para desarrolladores

Te invitamos a visualizar el contenido y esperamos que te ayude.

¿De que se trata?

Son aquellas que abarcan las bases teóricas de la información y la computación, así como su aplicación en sistemas computacionales.

LTAP

El futuro ingeniero no puede estar ajeno a estos cambios, ya que impactan en el espectro de decisiones que deben tomarse durante el proceso de construcción de software.

¿Qué es PHP?

PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML.

El gran mundo tecnológico

Conoce y actualizate sobre los ultimos avances.

miércoles, 15 de abril de 2015

Cualidades de diseño y elementos de buen diseño

Al diseñar un sistema informático se tienen en cuenta los cinco elementos fundamentales que componen el hardware: la unidad aritmético-lógica, la unidad de control, la memoria, la entrada y la salida. La unidad aritmético-lógica realiza operaciones aritméticas y compara valores numéricos. La unidad de control dirige el funcionamiento de la computadora recibiendo instrucciones del usuario y transformándolas en señales eléctricas que puedan ser comprendidas por los circuitos del ordenador. La combinación de la unidad aritmético-lógica y la unidad de control se denomina unidad central de procesamiento, o CPU (siglas en inglés). La memoria almacena instrucciones y datos. Las secciones de entrada y salida permiten respectivamente que la computadora reciba y envíe datos. Sin embargo se necesitan arquitecturas diferentes de hardware debido a las necesidades especializadas de los distintos sistemas y usuarios.  
Además del diseño del hardware, se debe considerar los sistemas operativos que harán funcionar el sistema. El software, como los lenguajes de programación y los sistemas operativos, hace que los detalles de la arquitectura del hardware resulten invisibles para el usuario. Sin embargo la Arquitectura de Software define los aspectos estructurales como una composición de componentes, las estructuras globales de control, los protocolos de comunicación, la sincronización y acceso a los datos, la asignación de la funcionalidad a los elementos del diseño, la composición de estos elementos, su distribución física, su escalabilidad y su desempeño 
A continuación se va a tratar el temas de cualidades de diseño y elementos de buen diseño de software, abarcando, diseño de datos, diseño arquitectónico, diseño de interfaz y diseño de procesamiento. 

Para lograr un buen diseño de software se deben tomar en cuentan los ciertos lineamientos:
o   Debe tener una arquitectura (empleo de estilos o patrones arquitectónicos)
o   Debe ser modular (dividido de manera lógica en elementos o subsistemas) 
o   Debe contener distintas representaciones de datos, arquitectura, interfaces
o   Debe conducir a estructuras de datos apropiadas para las clases a implementar
o   Debe contener independientes componentes que tengan características funcionales
o   Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los componentes y el ambiente externo.
o   Debe obtenerse con el uso de un método motivado por la información obtenida durante el análisis de los requerimientos del software
o   Debe representarse con una notación que comunique con eficacia su significado


  •       Diseño
Diseño como verbo "diseñar" se refiere al proceso de creación y desarrollo para producir un nuevo objeto o medio de comunicación (objeto, proceso, servicio, conocimiento o entorno) para uso humano. Diseñar requiere principalmente consideraciones funcionales y estéticas. Esto necesita de numerosas fases de investigación, análisis, modelado, ajustes y adaptaciones previas a la producción definitiva del objeto. Además comprende multitud de disciplinas y oficios dependiendo del objeto a diseñar y de la participación en el proceso de una o varias personas.     


  • Diseño de Software
·              Es una descripción de la estructura del software que se va a implementar, los datos que son parte del sistema, las interfaces entre los componentes del sistema, y algunas veces, los algoritmos utilizados.
·              Los diseñadores no obtienen inmediatamente un diseño detallado, sino que lo desarrollan de manera iterativa a través de diversas versiones.
·              El proceso de diseño incluye agregar formalidad y detalles durante el desarrollo del diseño, y regresar a los diseños anteriores y corregirlos.



  •          En el diseño de Software están:

1.      Diseño de datos transforma el modelo de dominio de la información, creado durante el análisis, en las estructuras de datos necesarias para implementar el software.

Primeramente la Influencia de la estructura de datos en la estructura del programa y en la complejidad de los procedimientos, también la ocultación de la información y Abstracción Datos bien diseñados conducen a mejor estructura del programa en cuanto a la Modularidad efectiva y Reducción de la complejidad procedimental.

·         Principios de Wasserman (1996) para el diseño de datos:

-Los principios sistemáticos del análisis aplicado a la función y al comportamiento también deben aplicarse a los datos.- Deben identificarse todas las estructuras de datos y las operaciones que se han de realizar sobre cada una de ellas.-Debe establecerse y usarse un diccionario de datos para definir el diseño de los datos y del programa-Deben posponerse las decisiones de datos de bajo nivel hasta el diseño detallado - La representación de una estructura de datos sólo debe ser conocida por los módulos que hagan uso directo de los datos contenidos en la estructura- Se debe desarrollar una biblioteca de estructuras de datos útiles y de las operaciones que se les pueden aplicar -El diseño del software y el lenguaje de programación deben soportar la especificación y la realización de tipos abstractos de datos.

     2.  Diseño arquitectónico: define la relación entre los principales elementos estructurales del programa.
Los sistemas grandes siempre se descomponen en subsistemas que suministran algún conjunto relacionado de servicios.  El proceso de diseño inicial para identificar estos subsistemas y establecer un marco de trabajo para el control y comunicación de los subsistemas se llama diseño arquitectónico y lo que produce este proceso de diseño es una descripción de la Arquitectura de Software. La descomposición arquitectónica es necesaria para estructurar y organizar la especificación.

Arquitectura del sistema de software

            Se obtiene mediante un proceso de partición que relaciona los elementos de una solución de software con partes de un problema del mundo real definido implícitamente durante el análisis de los requisitos. La solución aparece cuando cada parte del problema está resuelta mediante uno o más elementos de software. El diseño y la especificación completa de la estructura de los sistemas de software, según Shaw y Garlan (Shaw y Garlan, 1996), se está transformando en un aspecto de más importancia que la escogencia de los algoritmos y las estructuras de datos, en virtud del tamaño y la complejidad de estos es la actualidad. Diseñar la arquitectura del software, según estos mismos autores, es definir los aspectos estructurales como una composición de componentes, las estructuras globales de control, los protocolos de comunicación, la sincronización y acceso a los datos, la asignación de la funcionalidad a los elementos del diseño, la composición de estos elementos, su distribución física, su escalabilidad y su desempeño.
La arquitectura define al sistema en términos de elementos computacionales y de las interacciones entre ellos. La arquitectura muestra la correspondencia entre los requerimientos de sistemas y los elementos del sistema construido, proveyendo así una exposición racional para las decisiones de diseño.
ELEMENTOS COMPUTACIONALES: Son entidades tales como clientes, servidores, bases de datos, filtros y capas de un sistema jerárquico. Son además, una parte encapsulada del sistema de software, donde cada uno tiene una interfaz.
INTERACCIONES: Ocurren entre los elementos a nivel de diseño, pudiendo ser tan simples como las llamadas a procedimientos o variables de acceso, o tan complejas y semánticamente ricas como los protocolos del modelo cliente/servidor, los protocolos de acceso a las bases de datos (Shaw y Garlan, 1996).
• Una relación, además denota una conexión entre los componentes. Una relación puede ser estática o dinámica.
– Relaciones estáticas. Se muestran en el código fuente, ellas reflejan la colocación de los componentes dentro de la arquitectura.
– Relaciones dinámicas. Tratan con las conexiones temporales y las interacciones dinámicas entre los componentes. Ellas no son fácilmente visibles a partir del código fuente.
• PROPIEDAD FUNCIONAL. Tiene que ver con un aspecto de la funcionalidad del sistema, como su nombre lo indica. Está usualmente relacionada con un requerimiento.
• PROPIEDAD NO FUNCIONAL. Trata de una característica del sistema que no está cubierta en la descripción funcional del mismo. Típicamente se refiere a aspectos tales como confiabilidad, compatibilidad, costo, facilidad de uso, etc.

Cualidades de los diseños de las arquitecturas

 •  Conformidad funcional: Según Pressman (Pressman, 1998) una arquitectura de calidad debe implementar todos los requisitos explícitos contenidos en el modelo de análisis debe acomodar todos los requisitos implícitos que desea el cliente. Además, debe proporcionar una idea completa de que es el software, enfocando los dominios de los datos, las funciones y los comportamientos. Según Lawrence (Lawrence, 1998) la arquitectura del software le dice a los usuarios exactamente lo que el sistema de software hará.

•  Adaptabilidad. Esta característica la propone (Sommerville, 1998) al señalar que ella mide cuan fácil es hacer cambios en una arquitectura; de seguro, esto implica componentes poco acoplados. En su opinión, un sistema de software adaptable tiene una alta trazabilidad; esto quiere decir, que hay una relación clara entre los diferentes niveles de abstracción.

·Modularidad: Sin considerar el enfoque de diseño utilizado (estilo arquitectural) (Lawrence, 1998), el proceso de descomposición separa el diseño en partes que lo componen, llamadas módulos o componentes. Se dice que un sistema es modular cuando cada actividad del sistema de software es ejecutada exactamente por un componente y cuando las entradas y las salidas de los componentes están bien definidas. Los módulos se organizan jerárquicamente como resultado de la descomposición.

•  Abstracción: La noción psicológica de abstracción permite concentrarse en un problema a un nivel de generalización independiente de los detalles de nivel inferior, la abstracción también permite trabajar con conceptos y términos que son familiares en el entorno del problema sin tener que transformarlos en una estructura poco familiar. Cada fase del proceso de ingeniería del software es un refinamiento en el nivel de abstracción de la solución software. Finalmente se alcanza el nivel inferior de abstracción cuando se construye el código. Propone tres (3) niveles de abstracción: – Abstracción procedimental. Es una secuencia dada de instrucciones que tiene una función específica y limitada. – Abstracción de datos. Es una colección determinada de datos que describen un objeto de datos. – Abstracción de control. Implica un mecanismo de control del programa sin especificar detalles internos.

·         Entendible: Sommerville (Sommerville, 1998) señala que un sistema antes de hacerle un cambio debe ser entendido. En su opinión este entendimiento estará afectado por: La cohesión, el acoplamiento, la nominación, la documentación y la complejidad; inclusive, señala que la complejidad tiene una relación directa con su fácil entendimiento.

Cohesión: Es una consecuencia del ocultamiento de la información. Un módulo con cohesión (Pressman, 1998) realiza solamente una tarea, requiriendo poca interacción con el resto de los procedimientos que se realizan en el resto del sistema de software. Según Sommerville (Sommerville, 1998) la cohesión es deseable debido a que una unidad (componente) representa una parte simple de solución. Si es necesario cambiar el sistema, la parte correspondiente está en un solo lugar y lo que se desee hacer con él estará encapsulado en él. Según Lawrence (Lawrence, 1998) la meta es hacer que los componentes sean lo más cohesivos posible

·           Acoplamiento: Está relacionado con la cohesión. Es un indicador de la fuerza de interconexión entre los componentes o elementos de la arquitectura (Sommerville, 1998). Sistemas altamente acoplados tienen una fuerte interconexión, lo que se refleja en una gran dependencia entre los componentes. Los sistemas poco acoplados, por otro lado, tienen poca relación entre sus componentes o elementos. La meta (Lawrence, 1998) es mantener el acoplamiento en el nivel más bajo posible; la conectividad sencilla entre módulos da como resultado un software que es más fácil de comprender y menos propenso al “efecto onda” (Stevens et al., 1975) producido cuando los errores aparecen en una posición y se propagan a lo largo del sistema.

·           Rediseño: Se examina el código existente en busca de redundancias, elementos no utilizados, algoritmos ineficientes o innecesarios , estructuras de datos mal construidas, ect

·           Patrones: Un patrón de diseño describe una estructura de diseño que resuelve un problema particular dentro de un contexto específico. Se debe tomar en cuenta si el patrón es aplicable al trabajo que se realiza, si puede volverse a usar y si sirve de guía para desarrollar un patrón distinto en estructura.

3. Diseño de interfaz: describe cómo se comunica el software consigo mismo, con los sistemas que operan con él y con los operadores que lo emplean.
El diseño de interfaz de usuario o ingeniería de la interfaz es el diseño de computadoras, aplicaciones, máquinas, dispositivos de comunicación móvil, aplicaciones de software, y sitios web enfocado en la experiencia de usuario y la interacción.
Su objetivo es que las aplicaciones o los objetos sean más atractivos y además, hacer que la interacción con el usuario sea lo más intuitiva posible, conocido como el diseño centrado en el usuario. En este sentido las disciplinas del diseño industrial y gráfico se encargan de que la actividad a desarrollar se comunique y aprenda lo más rápidamente, a través de recursos como la gráfica, los pictogramas, los estereotipos y la simbología, todo sin afectar el funcionamiento técnico eficiente. Internet es un medio de comunicación donde la ninterfaz tiene un papel fundamental en el entorno gráfico. Una vez definida la interfaz de usuario como espacio que media la relación de un sujeto, un ordenador o sistema interactivo, se produce una interrelación entre el usuario, sistema o el dispositivo, permitiendo a este (usuario) manejar o interactuar en función de lo que busca

Cualidades para el Diseño de Interfaces de Usuario:

  • Anticipación: Las aplicaciones deberían intentar anticiparse a las necesidades del usuario y no esperar a que el usuario tenga que buscar la información, recopilarla o invocar las herramientas que va a utilizar.

  • Autonomía: La computadora, la IU y el entorno de trabajo deben estar a disposición del usuario. Se debe dar al usuario el ambiente flexible para que pueda aprender rápidamente a usar la aplicación. Sin embargo, está comprobado que el entorno de trabajo debe tener ciertas cotas, es decir, ser explorable pero no azaroso.

·         Percepción del Color: Aunque se utilicen convenciones de color en la IU, se deberían usar otros mecanismos secundarios para proveer la información a aquellos usuarios con problemas en la visualización de colores

  • Valores por Defecto: No se debe utilizar la palabra "Defecto" en una aplicación o servicio. Puede ser reemplazada por "Estándar" o "Definida por el Usuario", "Restaurar Valores Iniciales" o algún otro término especifico que describa lo que está sucediendo. Los valores por defecto deberían ser opciones inteligentes y sensatas. Además, los mismos tienen que ser fáciles de modificar.

Elementos de diseño de una interfaz

Elementos
Caracteristicas
Contexto
Distribución y diseño del sitio
Contenido
Contenido Texto, imágenes, sonido y video que contiene el sitio
Comercio
Capacidades del sitio para permitir las transacciones comerciales
Comunidad
Formas en que el sitio permite la comunicación de usuario a usuario  a usuario
Comunicación
. Comunicación Formas en que el sitio permite la comunicación de sitio a usuario, de usuario a sitio o en ambas direcciones
Conversión
Capacidad del sitio para adaptarse a distintos usuarios o permitir que los usuarios lo personalicen
Conexión
Grado en el que el sitio está vinculado a otros

4.         Diseño procedimental: transforma elementos estructurales de la arquitectura del programa en una descripción procedimental de los componentes de software.

Un componente de software individual es un paquete de software, un servicio web, o un módulo que encapsula un conjunto de funciones relacionadas (o de datos).La reusabilidad es una importante característica de un componente de software de alta calidad. Los programadores deben diseñar e implementar componentes de software de una manera tal que diversos programas puedan reutilizarlos. Además, cuando los componentes de software interactúan directamente con los usuarios, debe ser considerada la prueba de usabilidad basada en componentes. Toma un significativo esfuerzo y conciencia para escribir un componente de software que sea efectivamente reutilizable. El componente necesita estar: completamente documentado, probado a fondo y tiene que ser robusto - con una comprensiva comprobación para la validez de la entrada, capaz de devolver mensajes de error apropiados o códigos de retorno, diseñado con conciencia de que será puesto en usos imprevistos


CONCLUSIÓN 

Para lograr un buen diseño de software se deben tomar en cuentan los ciertos lineamientos: 

  • Debe tener una arquitectura (empleo de estilos o patrones arquitectónicos) 
  • Debe ser modular (dividido de manera lógica en elementos o subsistemas)   
  • Debe contener distintas representaciones de datos, arquitectura, interfaces  
  • Debe conducir a estructuras de datos apropiadas para las clases a implementar  
  • Debe contener independientes componentes que tengan características funcionales  
  • Debe conducir a interfaces que reduzcan la complejidad de las conexiones entre los componentes y el ambiente externo.  
  • Debe obtenerse con el uso de un método motivado por la información obtenida durante el análisis de los requerimientos del software  
  • Debe representarse con una notación que comunique con eficacia su significado  
BIBLIOGRAFIA 

Pérez Maria A.  Mendoza M. Luis. SISTEMAS DE INFORMACIÓN II TEORÍA. Documento en línea. Disponible en: http://prof.usb.ve/lmendoza/Documentos/PS-6116/Teor%EDa%20PS6116%20Arq.%20de%20Software.pdf 

Documento disponible en línea en: http://www.arqhys.com/construccion/diseno-elementos.html 
Documento disponible en línea en:http://www.ciens.ucv.ve:8080/genasig/sites/disist/archivos/clase2.pdf 

Documento disponible en línea: http://es.slideshare.net/landeta_p/1-3-ingenieria-software-y-patrones-de-diseo 


martes, 7 de abril de 2015

Casos de prueba


La fase de pruebas es una de las más costosas del ciclo de vida software, deben realizarse pruebas de todos los artefactos generados durante la construcción de un producto software, lo que incluye las especificaciones de requisitos, casos de uso, diagramas de diversos tipos y, por supuesto, el código fuente y el resto de elementos que forman parte de la aplicación, Se aplican diferentes técnicas de prueba a cada tipo de producto software. 

Pruebas De Sistema 

Las pruebas de software (testing) son los procesos que permiten verificar y revelar la calidad de un producto software.  Son utilizadas para identificar posibles fallos de: implementación, calidad, y usabilidad. 

Caso de Prueba  

Es una serie de pruebas de entrada, condiciones de ejecución y resultados esperados desarrollados para un objetivo en particular, tal como ejecutar una ruta particular de un programa o verificar el cumplimiento con un requerimiento en específico 

Importancia de los casos de prueba 

Nada tiene mayor efecto en la satisfacción del usuario final con respecto al software que una vista clara de lo que espera, éstas expectativas deben ser verificadas y validadas. Los casos de pruebas reflejan los requerimientos que serán verificados. Esta verificación deberá ser realizada de diferentes maneras y por diferentes probadores. 
Si no se tiene la capacidad para verificar todos los requerimientos, es importante para el éxito del proyecto seleccionar los requerimientos más apropiados o críticos para la prueba. Los requerimientos que se elijan para verificar deberán estar balanceados entre el costo, riesgo y la necesidad de tener los requerimientos verificados. 

Razones para realizar casos de prueba 
  
- Los casos de pruebas forman el fundamento en el cual se diseña y desarrolla el guion de pruebas.  
-La profundidad de probar es proporcional al número de casos de prueba. Existe mayor confianza en la calidad del producto y proceso de pruebas cuando el número de casos de pruebas se incrementa, ya que cada prueba de caso refleja un escenario diferente, una condición o flujo a través del producto. 
- Una medida principal de lo completo de las prueba es la cobertura basa en los requerimientos, el número de casos de pruebas identificados, implementados y/o ejecutados. 
 - La escala del esfuerzo de la prueba es proporcional al número de casos de pruebas. Con una amplia descomposición de los casos de pruebas, la regulación de los tiempos de etapas satisfactorias del ciclo de pruebas puede ser estimada con mayor precisión.  
-Los tipos de pruebas de diseño y desarrollo, y los recursos necesarios son ampliamente gobernados por los casos de pruebas. 

Manejo de casos de prueba
  
-Los casos de pruebas para pruebas funcionales son derivados de los casos de uso, podrían ser desarrollados para cada escenario del caso de uso y los escenarios de los casos de uso son identificados describiendo el camino por el que atraviesa el caso de uso desde el flujo básico y alternativo hasta el final del caso de uso. 
 
Diseño de casos de pruebas 
 
El diseño de casos de prueba se puede realizar basándose en los enfoques y en sus técnicas y las estrategias de prueba. 
Objetivo: Conseguir confianza aceptable en que se encontraran todos defectos existentes, sin consumir una cantidad excesiva de recursos. 
 
Técnicas de diseño de casos de prueba 


Las técnicas de diseño de casos de prueba tienen un propósito y es producir el número de casos de prueba manteniendo la efectividad de la prueba e igualmente abarca enfoques principales como lo son la caja blanca (como lo hace) y caja negra (que es lo que hace). 
 

  • Pruebas de caja blanca 
Asegura que la operación interna del programa se ajusta a las especificaciones y que todos los componentes internos, se han probado adecuadamente. 
Usa la estructura de control para obtener los casos de prueba  
Intentan garantizar que todos los caminos de ejecución del programa quedan probados 
Pruebas de estructuras de control: 
Del camino básico: Diseñar un caso de prueba por cada camino independiente 
De condición: Diseñar casos de prueba para que todas las condiciones del programa se evalúen a cierto/falso  
De bucles: Diseñar casos de prueba para que se intente ejecutar un bucle 0,1,…,n-1 veces 
 (siendo n el número máximo) 


public class ESPRIMO { 
      public static boolean esPrimo (String arg[])  
    throws ErrorFaltaParametro, 
           ErrorSoloParametro, 
           ErrorNoNumeroPositivo{ 
        if (args.length==0) throw new ErrorFaltaParametro(); 
        else if (args.length > 1) throw new ErrorSoloParametro();  
        else  
            try { 
                float numF= float.ParseFloat (args [0] ); 
                int num = (int) numF; 
                if (num<=0) throw new ErrorNoNumeroPositivo(); 
                else  { 
                    for (int i=2;i<num;i++) 
                        if(num%i==0) {return false;} 
                    return true; 
                } 
           } 
            catch (NumberFormatException e) { throw new ErrorNoNumeroPositivo(); } 
         
    } 
    }     
} 

El método Esprimo.esPrimo puede ser llamado con un array de Strings. 

Ejemplo: Esprimo 


           Entrada 
El objetivo a probar todos los caminos, las condiciones y los bucles 
Ejemplo: Componente de prueba para EsPrimo 
public class ComponentePruebaEsPrimo { 
    public static void main (String [] args) { 
         
     String [] s1= new String [0]; 
     try {boolean b1 = EsPrimo.esPrimo(s1); 
          System.out.println ("CP1 incorrecto");} 
     catch (ErrorFaltaParametro e) 
         {System.out.println ("CP1 correcto"); } 
     catch (Exception e) {System.out.println ("CP1 incorrecto");} 
     String [] s2  new String [2] ; s2 [0] = "xx"; s2 [1]= "yy"; 
     try {boolean  b1 = EsPrimo.esPrimo (s2); 
     System.out.println ("CP2 incorrecto");} 
     catch (ErrorSoloParametro e) 
       { {System.out.println ("CP2 correcto"); }}  
   catch (Exception e) {System.out.println ("CP2 incorrecto");} 
...} 



  • Pruebas de caja negra 

La prueba verifica que el ítem que se está probando, cuando se dan las entradas apropiadas produce los resultados esperados. 
Los datos de prueba se escogerán atendiendo a las especificaciones al problema, sin importar los detalles internos del programa, al fin de verificar que el programa corra bien.  
Ejemplo de casos de prueba: 
-Al cerrar (minimizar,…) la ventana se cierra (minimizar,…), Al pulsar el botón, aparece en el campo de texto el resultado y Buscar ayuda de cómo utilizar la interfaz 

Estructura de los casos de pruebas 
 
Visión general contiene información general acerca de los Casos de Prueba.  
 
·                     Identificador es único para futuras referencias. 
·                     Caso de prueba dueño/creador es el nombre del analista o diseñador de pruebas, quien ha desarrollado pruebas o es responsable de su desarrollo. 
·                     Versión la actual definición del caso de prueba. 
·                     Nombre el caso de prueba debe ser un título entendible por personas, para la fácil comprensión del propósito del caso de prueba y su campo de aplicación. 
·                     Identificador de requerimientos el cual está incluido por el caso de prueba. También aquí puede ser identificador de casos de uso o especificación funcional. 
·                     Propósito contiene una breve descripción del propósito de la prueba, y la funcionalidad que chequea. 


·                     Dependencias

CONCLUSIONES 

-Las pruebas de software son los procesos que permiten verificar y revelar la calidad de un producto software.  Son utilizadas para identificar posibles fallos de: implementación, calidady usabilidad. 
-Es importante para el éxito del proyecto seleccionar los requerimientos más apropiados o críticos para la prueba. 
- Los casos de pruebas forman el fundamento en el cual se diseña y desarrolla el guion de pruebas.


REFERENCIAS BIBLIOGRÁFICAS 

Documento en línea. Disponible en : http://es.slideshare.net/hally20191/casos-de-pruebas 
Documento en línea. Disponible en: http://lsc.mxl.uabc.mx/~angelica/Casos%20de%20prueba.pdf 
Documento en línea. Disponible en: http://chitita.uta.cl/cursos/2010-2/0001282/recursos/r-7.pdf