Sei sulla pagina 1di 7

Pruebas de software

Necesidad de las pruebas de software en el mbito actual

Continuamente los avances tecnolgicos se encuentran en un ambiente demasiado cambiante, la industria esta yendo a travs de una revolucin continua en la cual el proceso de pruebas de software significa el xito de los productos. El mercado del software es mucho ms grande, ms competitivo y tiene ms usuarios. La agilidad en los procesos de comercializacin de los productos de software a incrementado de manera sorprendente la precisin en los ingenieros de prueba es cada vez mayor, y es que hoy en da resulta impensable imaginar un producto tecnolgico que no involucre software. Por lo anterior es necesario que el software sea cada vez ms confiable, por otro lado las aplicaciones empresariales significa programas ms grandes ms complejos y con un mayor numer de usuarios Adems la seguridad es un aspecto muy importante en lo que se refiere a la calidad del software, un software seguro es un software confiable y todo lo que eso representa para la satisfaccin del usuario final La web ofrece cada vez ms una gran plataforma para el lanzamiento de distintos productos de software, lo que hace que exista mayor competencia y que adems estn disponibles para mas usuarios, aun a esto, las aplicaciones web necesitan ser sumamente confiables Desacuerdos entre las necesidades y los objetivos

La industria requiere que el proceso formal de pruebas sea simple y fcil, y que los ingenieros de prueba no tengan conocimiento previo en computacin, el proceso de pruebas necesita ser realizado de una manera mucho ms rigurosa, pero por otro lado la agilidad que se requiere en los procesos ocasiona demasiada demanda de tiempo sobre las pruebas, complicando de esta manera que los procesos se puedan llevar a detalle Las actividades de un ingeniero de pruebas

El proceso normal de pruebas de software puede ser dividido en cuatro tipos de actividades generales que son diseo de pruebas, automatizacin de las pruebas, ejecucin de las pruebas y evaluacin de las pruebas, cada una de las cuales requiere de diferentes actitudes, conocimiento previo, educacin y entrenamiento Ninguna organizacin que se dedique el desarrollo de software y quiera obtener productos de calidad razonable usara a las mismas personas para el levantamiento de requerimientos, diseo, implementacin, integracin, etc.

Diseo de pruebas-(basadas en criterio)

Esta es una de las tareas ms tcnicas en el proceso formal de las pruebas de software, requiere conocimientos de matemticas discretas, programacin, y tcnicas de pruebas. Adems requiere de los conocimientos obtenidos de una carera profesional de ciencias de la computacin. Esta actividad resulta adems intelectualmente estimulante y retadora, el diseo de las pruebas es anlogo a la arquitectura del software por el lado del desarrollo. Usar personas que no estn calificadas para el diseo de pruebas resultara seguramente en pruebas poco o nada efectivas. Diseo de pruebas basadas el talento humano

Esta actividad es mucho ms difcil de lo que puede parecer a los desarrolladores, los enfoques basados en criterios pueden llegar a ser ciegos a situaciones especiales, esta actividad requiere adems de habilidades y conocimientos para poder ser realizado, casi no requiere conocimientos tradicionales de una carrera de ciencias de la computacin, por otro lado es esencial un conocimiento previo en el uso de software. Otros conocimientos son deseados como por ejemplo biologa, psicologa, leyes, filosofa, matemticas, etc. Automatizacin de las pruebas

Esta actividad trata de incluir valores de prueba en scrips ejecutables, es un poco menos tcnica requiere conocimientos de programacin, y requiere de muy poca teora Se aplica para pruebas de estrs y de entrada y salida, es necesario recalcar que los diseadores no necesariamente conocen las salidas esperadas, y que los evaluadores necesitan ser involucrados desde temprano para ayudar en esta actividad Ejecucin de las pruebas de software

Esta actividad resulta demasiado sencilla y trivial si las pruebas estn bien automatizadas, para esta tarea no se hace necesario empleados con conocimiento tcnico. Si por ejemplo las pruebas para las interfaces grficas de usuario no estn automatizadas, esto implicar demasiada labor manual. En esta actividad las personas que se encargan de ejecutar las pruebas tienen que ser muy cuidadosas y meticulosas en el registro de los resultados. Evaluacin de las pruebas

Esta actividad consiste en evaluar los resultados de las pruebas y reportarlos a los desarrolladores. Resulta ms complicado de lo que parece, requiere conocimientos de manejo de sistemas de informacin, habilidades para hacer pruebas y conocimiento de interfaces de usuario y psicologa. Usualmente casi no requiere conocimientos tradicionales de ciencias de la computacin.

-Otras actividades"Administracin y direccin del proceso de pruebas" Consisten en definir polticas, organizar equipos, elegir y definir criterios, decidir cuanta automatizacin se requiere, etc. "Mantenimiento de las pruebas de software" Esta actividad consiste en almacenar y clasificar las pruebas diseadas y utilizadas para posteriores procesos de modificaciones' crecimientos o rediseos "Documentacin de las pruebas de Software" En esta actividad participaran todas las actividades de trabajo del proceso formal de pruebas de software y de vern describir y especificar tanto las anomalas o problemas que dificultaron la tarea, como aquello que facilito y agilizo su proceso. Niveles del proceso de prueba

Nivel 0.- en este punto hacer pruebas y depurar los sistemas son prcticamente lo mismo, no se puede distinguir entre un comportamiento incorrecto y errores en el programa, adems, no ayuda a desarrollar software que sea confiable o seguro. Nivel 1.- en este nivel, el propsito de las pruebas es mostrar correctividad, los ingenieros de pruebas no tienen objetivos estrictos, no existen reglas para corregir y controlar, no existe una tcnica formal. Nivel 2.- el propsito de este nivel es mostrar y evidenciar las fallas, aun cuando esto es una prctica negativa, ya que pone en una relacin adversa al equipo de desarrolladores con los ingenieros de prueba. Nivel 3.- en este nivel el proceso de pruebas solo muestra la presencia de fallas y el objetivo es el de concientizar el riego es el que se incurre cuando se usa el software. En este nivel los ingenieros de prueba y los desarrolladores trabajan conjuntamente para reducir riesgos. Nivel 4.- en este nivel el objetivo de las pruebas de software es incrementar la calidad, y la responsabilidad del ingeniero de pruebas es medir y mejorar la calidad del software, la experiencia de los ingenieros de prueba debe ser para apoyar al equipo de desarrolladores

Economa de las pruebas de software


Los errores de software son algo muy comn que pueden causar grandes daos. En seguridad han representado un gran problema, sin mencionar los que involucran fatalidades, retrabajos, retrasos, perdida de mercado, demandas, etc. Existen costos asociados a los errores, por ejemplo las horas del programador que corrige la falla, costo de oportunidad del programador, costo operativo de usuario y la empresa que utiliza el sistema, reputacin de la compaa desarrolladora del software, demoras en entregas de productos a clientes o usuarios, posibles problemas legales etc. Tiempo introducido Requerimientos Requerimientos Diseo Construccin 1 --Diseo X3 1 -Tiempo Detectado Construccin X5 X10 X10 1 Pruebas del sistema X10 X15 X10 Despus de entrega X10 X100 X25 X100 X10 X25

Errores, defectos y fallas


Validacin y verificacin

La validacin es el proceso de evaluar al software al final de su desarrollo para asegurar que se haya alcanzado el objetivo para el cual fue creado. La verificacin es el proceso que sirve para determinar si los productos resultantes de cada una de las etapas del proceso de desarrollo de software cumplen con los requerimientos establecidos durante las etapas anteriores. Defectos Errores y fallas Un defecto es algo esttico en el software, un error en el software es un estado interno incorrecto como consecuencia de la manifestacin de un defecto, un fallo de software es un comportamiento incorrecto respecto a los requerimientos establecidos previamente. Pruebas de software y depuracin Las pruebas de software son el proceso que est encaminado a encontrar las entradas que causan que el software falle, mientras que la depuracin es el proceso encaminado a encontrar los defectos que producen las fallas. Deben de existir tres condiciones necesarias para que un falla pueda ser observada, la primera es el alcance que se trata de la localizacin o localizaciones en el programa que contiene los errores, la segunda es la infeccin y se refiere a que el estado del programa debe de ser incorrecto, y por

ltimo, la propagacin que se refiere a que el estado de infeccin se debe de propagar de tal manera que ocasione salidas de informacin incorrectas. Casos de pruebas Los valores de los casos de prueba sern aquellos valores que satisfacen directamente los requerimientos de una prueba, mientras que los resultados esperados sern el producto que se produce cuando hay ejecutar las pruebas sobre un programase satisface o se cumple el comportamiento esperado. Observabilidad y control del software La observabilidad del software se refiere a que tan sencillo resulta observar el comportamiento de un programa en trminos de sus salidas y efectos en el ambiente en que se ejecuta y otros componentes de hardware y software. El control del software se refiere a que tan sencillo resulta proveer un programa con las entradas necesarias en trminos de valores, operaciones y comportamiento.

Valores de entrada que afectan la Observabilidad y control del software Valores prefijos Se refiere a cualquier entrada necesaria para poner al software en un estado apropiado para recibir los valores de los casos de prueba. Valores postfijos Se refiere a cualquier entrada que necesite ser enviada al software despus de que han sido ingresados los valores de los casos de prueba. Existen dos tipos de valores postfijos. 1.-Valores de verificacin.- son los valores necesarios para poder observar los resultados de evaluar los valores de los casos de prueba. 2.- Comandos de salida.- son los valores necesarios ya sea para terminar un programa o para regresarlo a un estado estable. Pruebas funcionales y pruebas no funcionales Las pruebas funcionales validan que la aplicacin funcione como esta especificada desde el punto de vista del usuario final, verifican que la aplicacin este desarrollada segn las especificaciones, estn basadas en casos de uso y escenarios de negocio del software. Estas pruebas pueden ser de modulo independiente en las cuales se evalan los requerimientos especficos al modulo y estn basadas en casos de uso individuales tambin pueden ser de integracin de mdulos, en las cuales se evalan requerimientos que cubren varios mdulos y

estn basadas en casos de uso ms complejos, por ltimo, pueden ser de escenario de negocios en los cuales se realizan escenarios complejos con distintos actores y cubren varios casos de uso. Pruebas no funcionales 1. Pruebas de robustez Validan que la aplicacin no falle al recibir comandos inesperados o entradas invlidas. Ejemplos de datos a este tipo de pruebas para encontrar errores de robustez incluyen datos en diferente formato que el esperado, de estos extremadamente largos, caracteres especiales, combinaciones de teclas sistemas operativos diferentes, etc. 2. Pruebas de seguridad Este tipo de pruebas se realizan para evitar que el software sea vctima de ataques y estn basadas en esquemas de amenazas y ataques de seguridad de software. Modelo de amenazas 1. Acceso sin autorizacin.- implica ingresar a la aplicacin sin credenciales validas. 2. Elevacin de privilegios.- ejecutar cdigo malicioso en el sistema como un virus o un troyano. 3. Robo de informacin privada.- implica extraer sin autorizacin informacin sensible de la aplicacin o sus usuarios. 4. Negacin de servicios de software.- impedir que los dems usuarios puedan usar la aplicacin. 5. Prdida o corrupcin de la informacin.- eliminar o corromper los contenidos de una base de datos o archivos de usuario. 6. Suplantacin de identidad.- engaar a la aplicacin sobre la identidad del usuario.

3. Pruebas de desempeo Demuestran que el software cumpla con serios requerimientos de desempeo, miden tiempo de respuesta, consumo de recursos, capacidad de cargas, etc. Se realizan usualmente en diferentes entornos de produccin y sirve para encontrar cuellos de botella dentro de la aplicacin. El desempeo se puede medir de diferentes formas por ejemplo las pruebas de carga enva tiempos de respuesta en diferentes escenarios, tambin estn las pruebas de estrs que prueban el funcionamiento de la aplicacin, cargas esperadas, limites y sobrecargas, existen tambin las pruebas de escalabilidad que miden el consumo de recursos del software, determina el hardware necesario para que la aplicacin maneja carga adicional en el futuro (generalmente de 5 a 10 aos).

4. Pruebas de usabilidad Validan que la aplicacin sea fcil de usar para realizar sus objetivos principales adems pruebas que el usuario se lleve una primera impresin del software y que la experiencia de usar el software sea grata. Ejemplos de errores encontrados con este tipo de pruebas son: botones mal posicionados, procesos incongruentes, mens complicados, esperas incomodas, etc. Pruebas estticas y pruebas dinmicas Las pruebas estticas consisten en realizar el proceso de pruebas sin necesidad de ejecutar el programa esto incluye inspecciones del software y algunas formas de anlisis. Este tipo de pruebas son muy efectivas para encontrar fallas potenciales que pueden conducirnos a un estado de error cuando el programa es modificado. Por otro lado, las pruebas dinmicas consisten en realizar el proceso de pruebas mediante la ejecucin del programa con entradas reales.

Potrebbero piacerti anche