Pruebas En Ingenieria De Software
¿Cuáles son los diversos tipos de pruebas de software y cuál debería usar? En esta nota te detallamos brevemente lo que necesitas saber.
Las pruebas de software son cruciales para el desarrollo de aplicaciones. Si un producto no se prueba correctamente, probablemente no funcionará tan bien como se esperaba y los usuarios le informarán muy pronto si tienen problemas.
En general, las pruebas de software evalúan las aplicaciones para detectar cualquier diferencia entre una entrada dada y su salida esperada. Pero hay muchas formas de pruebas de software que se pueden llevar a cabo en las aplicaciones.
A continuación, se resumen algunos tipos de pruebas de software que deberías usar:
1. Prueba alfa
Las sugerencias obtenidas de los usuarios lleven al analista hacia adecuaciones o cambios que se ajustan mejor a las necesidades de los usuarios y que no habian sido pensadas antes de la interaccion del usuario con el prototipo.Debe ser construido en poco tiempo,no debe de utilizarse mucho dinero,cuando este sea aprobado podemos inciar el verdadero desarrollo del software.Prodra ser.
Este es el tipo de prueba más común en software. Aquí el software se prueba para identificar todos los posibles problemas o defectos antes de liberarlo al usuario o al mercado. Esto se lleva a cabo al final del desarrollo del software.
2. Prueba Beta
Es una prueba de software llevada a cabo por el usuario en un entorno real, que puede limitarse a usuarios específicos en una versión beta cerrada o, abierta a pruebas más amplias a través de una versión beta pública.
Esto se hace para garantizar que no haya fallas importantes en el software y que satisfaga los requisitos del negocio. Esta es la prueba final antes de que un producto se libere por completo. Los desarrolladores toman medidas correctivas basadas en los comentarios de los usuarios antes de lanzar el software.
3. Prueba de Aceptación
Esto lo hace un cliente para asegurarse de que un producto entregado cumpla con los requisitos del usuario y funcione como se espera. El cliente solo aceptará el software con todas las funciones y características funcionando como se esperaba. Esta prueba es ejecutada antes de que la aplicación sea instalada dentro de un ambiente de producción.
4. Prueba de Accesibilidad
Este tipo de prueba trata sobre el objetivo de hacer que una aplicación sea accesible para las personas con discapacidad. Entre los controles realizados aquí se encuentran las pruebas de tamaño de fuente para personas con discapacidad visual, así como pruebas relacionadas con el color y el contraste para el usuario con daltonismo.
5. Prueba Ad-hoc
Las pruebas ad-hoc se realizan sin una planificación y documentación adecuada, mejor dicho, se realiza por improvisación. Estas se realizan después de la prueba formal de una aplicación. Los defectos encontrados durante este proceso de prueba (que solo se ejecutan una vez) son difíciles de replicar ya que no hay casos de prueba para comparar.
6. Prueba de humo
Esto se hace cuando los desarrolladores presentan una compilación nueva al equipo de prueba. Este último valida esta compilación y se asegura de que no existan problemas importantes. Se lleva a cabo una prueba simple para determinar si el software se bloquea, lo que indica problemas mayores. Si se encuentra un problema, el software se devuelve a los desarrolladores para su posterior ajuste.
7. Pruebas de Regresión
La prueba de regresión es cuando el software desarrollado y probado previamente sigue funcionando como se esperaba después de haber sido modificado. Las modificaciones no deberían romper la funcionalidad existente.
8. Prueba de Seguridad
Esto lo lleva a cabo un equipo especial, a menudo asesores de seguridad cuyo trabajo consiste en consultar el software para ver si se puede utilizar para obtener acceso a las redes o si se lo utiliza de otra manera. Esta prueba busca ver si las aplicaciones están protegidas contra el malware, así como comprobar cuán seguros son los procesos de autenticación y autorización de una aplicación.
9. Pruebas de Esfuerzo (Stress)
Esta prueba se lleva a cabo para determinar si un sistema o componente puede funcionar más allá de los límites de sus requisitos específicos. Analizará cuánta carga puede soportar un sistema antes de fallar. Esto utilizará un alto nivel de carga simulada para ver qué tan bien funciona el sistema y si se puede degradar a una falla no catastrófica.
I. INTRODUCCIÓN
Cuando se requiere que un software sea desarrollado de manera ágil las metodologías enfocadas a este tema son la solución para que los desarrolladores se adapten a los cambios a los que puede estar sujeto un proyecto de software, y así asegurar un sistema que tenga éxito. (Canós, J; Letelier, P y Penadés, M. s.f.)
Para quienes trabajan en la metodología ágil es más importante hacer un software de buena calidad, que hacer una documentación excelente, pero para que el software sea funcionarle se necesita la colaboración constante del cliente y los miembros de un equipo de trabajo.
La programación extrema en sí, comienza mucho antes de que Kent Beck, el creador de las metodologías agiles propusiera su nombre, ya que en 1989 Cunningham quien trabaja para la compañía “Wyatt Software” utilizó muchas técnicas que adoptaban principios de XP. (Espinoza, E. 2007).
Fue en 1999 cuando el Ingeniero en ciencias de la computación Beck, dio nombre a esta metodología ágil, aduciendo que serviría para realizar un producto final con excelencia, desde ahí quienes apoyan estos principios han hecho que esta metodología sea muy conocida, sin embargo, qué es la programación extrema y en que consiste, respondiendo a esta pregunta se puede decir que es una metodología ligera que controla los riesgos que hay en la creación del software, mediante los valores que deben tener el variado equipo de desarrollo, es así que podemos decir que su principal objetivo es entregar un software de calidad en el tiempo requerido. (Espinoza, E. 2007).
II. OBJETIVO
El objetivo de esta clase es conocer acerca de una de las metodologías de desarrollo ágil, esta es la programación extrema o también conocida como XP.
III. MARCO TEÓRICO
3.1. VALORES XP
La programación extrema define 5 valores primordiales que son un motor para la realización de actividades que simplifiquen realizar el software, en el siguiente gráfico se definen los valores de XP.
Gráfico 3.1: Valores XP.
3.2. PROCESO XP
La forma en la que se establecen las reglas de desarrollo XP se dan en base a la programación orientada a objetos, en este tipo de desarrollo se establecen 4 actividades estructurales que son expuestas en el siguiente gráfico.
Gráfico 3.2: Proceso XP.
3.2.1. PLANEACIÓN
La planificación se realiza por etapas, es decir, que es iterativa, sin embargo, no puede haber una planificación sin que antes haya habido comunicación con el cliente, en esta reunión con el cliente, el establece sus requerimientos lo cual hace que el equipo de software entienda cuáles son las características y funcionabilidades que se necesitan.
Cuando el desarrollador entiende lo que escucha del cliente, este puede ser capaz de hacer los casos de uso, en los cuales el cliente puede asignar prioridades entre todas las funciones del software. (Tecno Tips. 2012).
Gráfico 3.3: Planificación en XP.
3.2.1.1. VELOCIDAD EN LA PLANEACIÓN
Se puede apreciar la velocidad de un software, contando los casos de uso que fueron realizados e implementados en la primera iteración o entrega, esta medición de la velocidad, ayuda a estimar fechas y programar actividades y compromiso con las funcionabilidades del software.
3.2.2. DISEÑO
El diseño es la guía para la implementación del sistema, por lo tanto debe ser claro, y para poder ser claro necesita de simplicidad, ya que no sólo será entendido por el programador sino que también en muchas ocasiones, por el usuario. En el diseño se pueden también asignar las responsabilidades y módulos de cada persona en el equipo.
Gráfico 3.4: Diseño en XP.
3.2.2.1. REDISEÑO
Significa que un sistema puede cambiar, y si este lo hace, no debe afectar su comportamiento externo, es decir, cuando existe un problema en el que se quiere rediseñar o rehacer el software se hace sin que la estructura cambie para el usuario, es como si se hiciera una limpieza de código la cual es muy importante para su posterior documentación.
El diseño es una tarea que siempre se está realizando, antes y después de que el software es codificado y en su transcurso, y cuando el software ya está codificado en ocasiones se vuelve a diseñar una funcionabilidad y es ahí donde entra el rediseño.
3.2.3. CODIFICACIÓN
Plan De Pruebas En Ingenieria De Software
Para poder empezar en la codificación, antes se debieron hacer pruebas unitarias de avances en diseño a los clientes, para así, poder establecer los requerimientos primordiales.
Uno de los mejores mecanismos para hacer que la codificación funcione de manera correcta es la unión de dos personas del equipo, es decir, la programación en parejas, cada una de estas personas, con características distintas y especializadas en distintas áreas puede encargarse de tareas distintas dentro de un mismo código.
Gráfico 3.5: Codificación en XP.
3.2.4. PRUEBAS
Las pruebas unitarias son la medida de comprobación de la funcionabilidad de cada uno de los módulos o componentes del sistema, estas pueden ser ejecutadas a diario y brindan una información del avance que tiene el proyecto.
Gráfico 3.6: Pruebas en XP.
Hacer pruebas de funcionamiento es primordial si se requiere un software sin errores, y realizar pruebas a diario y por separado ayuda a que lo que se entregue al cliente sea un producto final confiable.
Las pruebas no solamente las realiza el desarrollador con su equipo, sino que también interviene el cliente, él tiene la última palabra, y si tiene nuevos requerimientos puede darlos en el momento de las pruebas, a esto se le llama pruebas del cliente.
3.3. XP INDUSTRIAL
Este tipo de programación extrema es una variante de XP, la cual se enfoca mucho más en el cliente y obviamente en sus requerimientos, su característica en común con XP es la realización de las pruebas. Este tipo de XP denominado también IXP tiene 6 técnicas explicadas a continuación.
Gráfico 3.7: Técnicas de XP Industrial.
3.4. DEBATE XP
La programación extrema tiene muchas ventajas, sin embargo no es aconsejable si no se disminuye el costo del tiempo de producción, debido a que tiene muchas limitaciones, por ejemplo, qué pasaría si los programadores se encuentran en lugares separados, entonces no se podría dar la programación en pares. (Pressman, R. 2010).
Otra de sus limitaciones es la documentación, la cual es importante como manual para el usuario y para siguientes programadores.
XP, se orienta demasiado a la POO (Programación Orientada a Objetos) asumiendo que todos los proyectos trabajan bajo la misma.
Existen demasiadas pruebas en el software lo cual puede llevar al retraso y a una excesiva fabricación de diseño.
Gráfico 3.8: Personas a favor y encontra de XP
IV. CONCLUSIÓN
La programación extrema es una metodología muy ligera que facilita la creación de un proyecto de software, ya que es eficiente y flexible, esta tiene técnicas y herramientas que le facilitan llegar a una meta la cual es satisfacer al cliente mediante la entrega oportuna de un software de calidad.
Uno de los más grandes ejemplos de sistemas de software que implementan la Programación extrema, es el software libre, el cual no tiene una excelente documentación, pero si, en muchos casos, excelencia de calidad.
Existen algunos contras en cuanto a XP y algunas de sus técnicas, por ejemplo las pruebas constantes podrían ocasionar una pérdida de tiempo en el diseño, por lo que el desarrollo podría volverse no tan ligero.
La programación extrema mediante sus 4 actividades estructurales de planeación, diseño, codificación y pruebas, busca volverse cada vez más popular en el mundo del desarrollo, logrando así ser muy nombrada en la actualidad, permitiendo que muchas personas la conozcan.
V. BIBLIOGRAFÍA

Blanco, S. s.f. Metodologías de desarrollo. (En línea). ES. Consultado, 06 de mayo de 2015. Formato HTML. Disponible en: http://www.marblestation.com/?p=644
Canós, J; Letelier, P y Penadés, M. s.f. Metodología de Software Ágil. ES. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: http://noqualityinside.com/nqi/nqifiles/XP_Agil.pdf
Carvajal, J. 2008. Metodologías Ágiles. ES. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: https://upcommons.upc.edu/pfc/bitstream/2099.1/5608/1/50015.pdf
Espinoza, E. 2007. Maestría en Ingeniería de Sistemas con Mención en Gestión En Tecnología de la Información. PE. Consultado, 06 de mayo de 2015. Formato PPT. Disponible en: http://es.slideshare.net/edgarespinoza/programacion-extrema?next_slideshow=1
It is an open world survival game where players need to fight off zombies and other enemies.The devs of the game have now released the Alpha 17 B199 patch which adds tons of new content for players to explore. You will be able to craft new items, weapons and more. 7 Days To Die was first released in 2013 by Publisher and Developer The Fun Pimps Entertainment. 7 Days To Die – List Of All Mods From Alpha 17 B199In the new update, you will find many different weapon, armor, and other items which will help you survive the harsh environment and fight different enemies.Along with new weapons and new armor, you will also find several mods which will increase and modify your weapons and armor.So below you will find a guide on the list of Mods present in the Alpha 17 update. 7 days to die wiki.
Pressman, R. 2010. Ingeniería de software: Un enfoque práctico. 7 ed. México. Mc Graw Hill. p 805.
Tecno Tips. 2012. Programación extrema: “Metodología para desarrollo ágil de aplicaciones”. Universo, Veracruz, ME. Jun, 11. p 1.