Laos y Kari
martes, 20 de noviembre de 2012
jueves, 8 de noviembre de 2012
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
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
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
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());
}
}
Suscribirse a:
Entradas (Atom)