jueves, 8 de noviembre de 2012

Mapa, prueba de software


Pruebas de software


Definición de la conferencista de Ingeniería de Sistemas

La rama de la ingeniería que facilita la implementación de una correcta combinación de herramientas de software y hardware que permitan apoyar:

La estrategia de los países
La estrategia de negocio de las compañías
La felicidad y facilidad en la vida de las personas

Algo de historia en Colombia de las pruebas de Software– Percepciones cómunes

● Descrédito de las pruebas de software

Las pruebas no están funcionando, simplemente es un
requerimiento más del método

Falta de implementación de métodos formales
Falta de personas entrenadas

● “Las Pruebas son responsabilidad del usuario”

Las pruebas de aceptación se convirtieron en pruebas de
sistema
No es su trabajo, costo de oportunidad
Los Usuarios no están entrenados para tal efecto, complejidad técnica, ad-hoc testing

Generalidades

● Definición de Software Testing (Pruebas de Software)

 Proceso realizado concurrentemente a través de las diferentes etapas de desarrollo de software que utiliza y mantiene el testware y cuyo objetivo es apoyar la disminución del riesgo de aparición de fallas y faltas en operación.

El proceso de pruebas es parte del ciclo de desarrollo de software, como uno de los tantos procesos que
intervienen en la creación de un producto.

Niveles de Pruebas: Unitarias, Integración,Sistema y Aceptación


● Cada etapa  de desarrollo genera artefactos a los cuales se les debe aplicar (en ciclos de vida clásicos):
Pruebas Unitarias: Realizadas por el creador del artefacto
Pruebas Integración: Realizadas por el creador del artefacto
Pruebas de Sistema: Realizadas por el equipo de pruebas
Prueba de Aceptación – Usuario: Se realizan al final de las anteriores, cuando los artefactos están listos.
● Existe estrategia para cada una de ellas
● Generalmente la literatura sobre pruebas, está dirigida a pruebas funcionales en construcción.

Qué se necesita para implementar pruebas

● Qué tipos de pruebas se van a exigir
➢ Depende de mi modelo de desarrollo (Clásico, Ágil?)
➢ Unitarias, integración, de sistemas o aceptación?
➢ Dependiendo, se debe establecer e implantar procesos y
métodos. Algunos ejemplos para pruebas de sistema
➥ STEP,
➥ Requierments Based Testing,
➥ TMAP (Structured Test Management Approach)

Tipos de prueba- Pruebas de Sistema



Sistema



Una propuesta de un método de pruebas de sistema (para un ciclo de vida clásico)



Conformación básica para proyecto con pruebas



Finalmente

● Cada tipo de prueba implica:
Enfoques distintos
Perfiles de personas distintos
Diferentes Estrategias para atacar la prueba
Herramientas distintas
Conocimientos distintos

Aunque se presentan altos niveles de satisfacción,  las estadísticas Choucair muestran una efectividad de más o menos un 97%, en defectos de impacto severo o alto. NO SON LA SALVACION.
No es una moda, es un proceso de un ciclo de vida de desarrollo de software

Conclusiones

Las prueba son un proceso de ciclo de vida de desarrollo de software que deben ser aplicadas en cada ciclo de vida, cada vez que se encuentre un defecto se debe corregir inmediatamente. También poner a las personas adecuadas para realizar las pruebas y conocer el tipo que son más conveniente a nuestro software.






lunes, 5 de noviembre de 2012

Triángulo Isósceles


Triángulo Isósceles

Código fuente
public class TrianguloI {
    double lado1;
double lado2;

 
    public TrianguloI(double dato1, double dato2){
    lado1 = dato1;
lado2 = dato2;
    }
    public double area(){
        return ((lado1 * lado2) / 2);
    }
 
    public double perimetro(){
        return ((lado1 * 2) + lado2);
    }
 
    public double obtenerLado1(){
        return lado1;
    }
 
    public void modificarLado1(double dato1){
     lado1=dato1;
    }
public double obtenerLado2(){
        return lado2;
    }
 
    public void modificarLado2(double dato2){
        lado2=dato2;
    }
 
}

Código de la prueba


import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import TrianguloI;
/**
 *
 * @author Alumnos
 */
public class TrianguloITest {
 
    static TrianguloI TrianguloI;
 
    public TrianguloITest() {
    }
 
    @BeforeClass
    public static void setUpClass() {
      TrianguloI = new TrianguloI(2.5,10.0);
    }
 
    @AfterClass
    public static void tearDownClass() {
    }
 
    @Before
    public void setUp() {
    }
 
    @After
    public void tearDown() {
    }
    /**
     * Test of area method, of class TrianguloI.
     */
    @Test
    public void areaTest(){
        assertEquals(TrianguloI.area(),30,0);
    }
    @Test
    public void perimetroTest(){
        assertEquals(TrianguloI.perimetro(),25,0);
    }
    @Test
    public void obtenerLadosTest(){
        assertEquals(TrianguloI.obtenerLado1(),2,5);
        assertEquals(TrianguloI.obtenerLado2(),10,0);
    }
 
    @Test
    public void modificarLadosTest(){
        TrianguloI.modificarLado1(3.0);
        assertEquals(TrianguloI.obtenerLado1(),3,0);
    }
    @Test
    public void nuevoTest(){
       System.out.println(TrianguloI.obtenerLado1());
    }

Triángulo Escaleno

Triángulo Escaleno

Código fuente


public class TrianguloEscaleno {
    double lado1;
double lado2;
double lado3;

 
    public TrianguloEscaleno(double dato1, double dato2, double dato3){
    lado1 = dato1;
lado2 = dato2;
lado3 = dato3;
    }
    public double area(){
        return ((lado1 * lado2) / 2);
    }
 
    public double perimetro(){
        return (lado1 + lado2 + lado3);
    }
 
    public double obtenerLado1(){
        return lado1;
    }
 
    public void modificarLado1(double dato1){
     lado1=dato1;
    }
public double obtenerLado2(){
        return lado2;
    }
 
    public void modificarLado2(double dato2){
        lado2=dato2;
    }
 
public double obtenerLado2(){
        return lado2;
    }
 
    public void modificarLado3(double dato3){
        lado3=dato3;
    }
}
Código de la prueba


import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import TrianguloEscaleno;
/**
 *
 * @author Alumnos
 */
public class TrianguloEscalenoTest {
 
    static TrianguloEscaleno TrianguloEscaleno;
 
    public TrianguloEscalenoTest() {
    }
 
    @BeforeClass
    public static void setUpClass() {
      TrianguloEscaleno = new TrianguloEscaleno(2.5,10.0);
    }
 
    @AfterClass
    public static void tearDownClass() {
    }
 
    @Before
    public void setUp() {
    }
 
    @After
    public void tearDown() {
    }
    /**
     * Test of area method, of class TrianguloEscaleno.
     */
    @Test
    public void areaTest(){
        assertEquals(TrianguloEscaleno.area(),30,0);
    }
    @Test
    public void perimetroTest(){
        assertEquals(TrianguloEscaleno.perimetro(),25,0);
    }
    @Test
    public void obtenerLadosTest(){
        assertEquals(TrianguloEscaleno.obtenerLado1(),2,5);
        assertEquals(TrianguloEscaleno.obtenerLado2(),10,0);
    }
 
    @Test
    public void modificarLadosTest(){
        TrianguloEscaleno.modificarLado1(3.0);
        assertEquals(TrianguloEscaleno.obtenerLado1(),3,0);
    }
    @Test
    public void nuevoTest(){
       System.out.println(TrianguloEscaleno.obtenerLado1());
    }
}

Triángulo Equilátero

Triángulo Equilátero

Código


public class TrianguloEquilatero {
    double lado1;

    public TrianguloEquilatero(double dato1){
    lado1 = dato1;
    }
    public double area(){
        return ((lado1 * lado1) / 2);
    }
 
    public double perimetro(){
        return (lado1 * 3);
    }
 
    public double obtenerLado1(){
        return lado1;
    }
 
    public void modificarLado1(double dato1){
     lado1=dato1;
    }
 
}

Código de la prueba

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import TrianguloEquilatero;
/**
 *
 * @author Alumnos
 */
public class TrianguloEquilateroTest {
 
    static TrianguloEquilatero TrianguloEquilatero;
 
    public TrianguloEquilateroTest() {
    }
 
    @BeforeClass
    public static void setUpClass() {
      TrianguloEquilatero = new TrianguloEquilatero(2.5,10.0);
    }
 
    @AfterClass
    public static void tearDownClass() {
    }
 
    @Before
    public void setUp() {
    }
 
    @After
    public void tearDown() {
    }
    /**
     * Test of area method, of class TrianguloEquilatero.
     */
    @Test
    public void areaTest(){
        assertEquals(TrianguloEquilatero.area(),30,0);
    }
    @Test
    public void perimetroTest(){
        assertEquals(TrianguloEquilatero.perimetro(),25,0);
    }
    @Test
    public void obtenerLadosTest(){
        assertEquals(TrianguloEquilatero.obtenerLado1(),2,5);
        assertEquals(TrianguloEquilatero.obtenerLado2(),10,0);
    }
 
    @Test
    public void modificarLadosTest(){
        TrianguloEquilatero.modificarLado1(3.0);
        assertEquals(TrianguloEquilatero.obtenerLado1(),3,0);
    }
    @Test
    public void nuevoTest(){
       System.out.println(TrianguloEquilatero.obtenerLado1());
    }

Círculo

Círculo

Código fuente:


public class Circulo {
    double lado1;

 
    public Circulo(double dato1){
    lado1 = dato1;

    }
    public double area(){
        return ((lado1 * lado1) * 3.1416);
    }
 
    public double perimetro(){
        return (lado1 * 3.1416);
    }
 
    public double obtenerLado1(){
        return lado1;
    }
 
    public void modificarLado1(double dato1){
     lado1=dato1;
    }
 
}

Código de la prueba

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import Círculo;
/**
 *
 * @author Alumnos

public class CirculoTest {
   
    static Circulo circulo;
   
    public CirculoTest() {
    }
   
   @BeforeClass
    public static void setUpClass() throws Exception {
        circulo = new Circulo(15.0);
    }
   
    @AfterClass
    public static void tearDownClass() throws Exception {
    }
   
    @Before
    public void setUp() {
    }
   
    @After
    public void tearDown() {
    }

   
    @Test
    public void areaTest(){
        assertEquals(circulo.area(),709.11,0);
    }
    @Test
    public void perimetroTest(){
    assertEquals(circulo.perimetro(),47.274,0);
    }
    @Test
    public void obtenerLadoTest(){
        assertEquals(circulo.obtenerRadio(),15,0);
    }
    @Test
    public void modificarLados
            Test(){
        circulo.modificarRadio(4);
        assertEquals(circulo.obtenerRadio(),4,0);
    }
    @Test
    public void nuevoTest(){
        System.out.println(circulo.obtenerRadio());
    }
   
}