Fecha actual Mar Ene 21, 2020 05:11 am

Todos los horarios son UTC - 3 horas




Nuevo tema Responder al tema  [ 6 mensajes ] 
Autor Mensaje
NotaPublicado: Jue Abr 29, 2010 18:08 pm 
Desconectado
usuario activo
usuario activo
Avatar de Usuario

Registrado: Sab Feb 09, 2008 03:34 am
Mensajes: 125
Hola estimados

Hace algún poco que estoy investigando esto del mundo del testing y TDD. La idea es diseñar una aplicación a medida que se van diseñando sus respectivos test unitarios. Sin embargo coloquemosno en el siguiente contexto:

1. Diseño una pequeña aplicación que ha superado todas las pruebas unitarias satisfactoriamente. Aplicación php
2. Agrego una interfaz grafica html, js, css.
3. Como me aseguro de que esa conexión aplicación-vista no me de problemas en el futuro?


BUeno eso una simple curiosidad se agradeceria si pudieran contar sus experiencias haciendo testing.

Saludos


Arriba
 Perfil  
 
NotaPublicado: Vie Abr 30, 2010 14:54 pm 
Desconectado
maestro gulix
maestro gulix
Avatar de Usuario

Registrado: Sab Abr 28, 2007 20:53 pm
Mensajes: 600
Ubicación: un poco más a la derecha
EMHPBIO, si quieres que una unidad de testeo se desarrolle en conjunto con la aplicación y crezca con ella durante las diferentes etapas del desarrollo de software, el método depende del modelo de desarrollo de software que estés usando, pero en general se puede reducir a una sencilla decisión de diseño: haz que la unidad de testeo sea la base funcional de tu aplicación. Si a esto le acoplamos la sabiduría informática de las definiciones de alto nivel: diseñar la aplicación desde la interface y no viceversa, nos conduce a algo como esto:

Código:
 Definición Funcional
↑      /        \
↑      ↓        ↓
↑  Interfaz  Testeo
↑         \  /
↑           ↓
    Aplicación


Desarrollas la interfaz codo a codo con las unidades de testeo, incorporando aquellas pruebas que coincidan en términos funcionales con las tareas delegadas a la aplicación en las tareas básicas de la interfaz. Por ejemplo, para programar una calculadora financiera que tome información de bancos en línea y haga sugerencias de arbitraje y cambio de tasa, dos de las tareas unitarias que debes poder chequear son la representación de moneda fraccionaria y la certificación de una tasa en tiempo real, así que podrías definir una funcionalidad en tu interfaz como la impresión de VºBº de interés bancario, en base a esas dos pruebas unitarias. Mientras los tests unitarios sigan entregando los resultados deseados, los cambios que tendrás que llevar a cabo en la interfaz serán solamente de forma, nunca de comportamiento. (Como bono, esto te facilita el testeo de interfases con humanos)

_________________
Luis Machuca Bezzaza
     :arrow:  Mi Wiki :arrow: Mi Opera
     Colaborador Gulix, Secretario (S), Administrador de Wiki, agente cuasi‑omnipresente del canal IRC


Arriba
 Perfil  
 
NotaPublicado: Sab May 01, 2010 18:51 pm 
Desconectado
maestro gulix
maestro gulix
Avatar de Usuario

Registrado: Mié Sep 27, 2006 16:03 pm
Mensajes: 2081
Ubicación: /home/danilote
crossroad escribió:
2. Agrego una interfaz grafica html, js, css.
3. Como me aseguro de que esa conexión aplicación-vista no me de problemas en el futuro?


probándola miles de millones de veces... necesitarás una unidad de testeo al final de la cadena de producción.

_________________
Lacosox Inc.


Arriba
 Perfil  
 
NotaPublicado: Jue May 06, 2010 02:13 am 
Desconectado
usuario activo
usuario activo
Avatar de Usuario

Registrado: Sab Feb 09, 2008 03:34 am
Mensajes: 125
Gracias por sus comentarios.

ryan tu dices que bastaría con que la funcionalidad logre pasar los test unitarios para que funcione correctamente? y que en la vista solo bastaría hacer modificaciones relativas a la forma. Pero que sucede si a pesar de que al tirar mi bateria de test unitarios todos fueron exitosos existe alguna forma de asegurarse de que la vista junto a los test(que corren bajo la vista) funcionaran bien.

Lo digo porque talves por separado ningún problema sin embargo en el punto que llamas aplicación (esquema) es donde surge el problema. Existe alguna forma de automatizar ese trabajo? e invertir la meno cantidad de hr/hombre para testear aplicaciones desde la interfaz grafica?.

Saludos


Arriba
 Perfil  
 
NotaPublicado: Sab May 08, 2010 17:44 pm 
Desconectado
maestro gulix
maestro gulix
Avatar de Usuario

Registrado: Sab Abr 28, 2007 20:53 pm
Mensajes: 600
Ubicación: un poco más a la derecha
Citar:
ryan tu dices que bastaría con que la funcionalidad logre pasar los test unitarios para que funcione correctamente?

No, aunque puede haberse dado a entender de esa manera... lo que quiero decir es que si pasa los tests unitarios, entonces funciona como tú quieres; si quieres que funcione "mejor", "más rápido" o de otra manera, cambia primero los tests unitarios y luego cambia la aplicación para que vuelva a cumplir con ellos. Es una forma más lenta pero más eficiente de convertir los requerimientos "humanos" (jefe o cliente que no sabe lo que quiere) a requerimientos formales de programación (tareas expresables en un diagrama de flujo).

Suponiendo que el modelo de programación sea bueno y que estés usando los lenguajes de programación apropiados para cada parte de la aplicación, entonces si la batería de tests unitarios funciona y la interfaz gráfica de prueba cumple con ellos, entonces cualquier vista que diseñes basada en tareas, debiera funcionar bien; si no funciona bien entonces debieras haberte equivocado a) al programar la vista o b) al definir las tareas.

Dicho eso, si "realmente" quieres una certeza que los eventos de una interfaz gráfica corre como debieran ser, deberás remitirte al método que explica Danilote. Nunca, NUNCA sabrás lo siguiente que va a tratar el usuario (recuerda la máxima de Einstein sobre el tamaño del universo y los estúpidos). Para certificar un funcionamiento correcto en cada paso del desarrollo, lo tienes que hacer al estilo que menciona Danilote: probar millones y millones de veces en la fase final de producción. Que yo sepa no es tan automatizable como parece, pero bueno, estoy casi cinco alos atrasado en la tecnología del unit testing... y toma en cuenta que al hacer eso en el fondo estás diciendo que hiciste los unit testing para nada... :starwars:

Otra cosa ahora que lo mencionas: no te preocupes de las horas/hombre. Esa cosa de la eficiencia y que las menores horas hombre es un mito corporativo que sólo contribuye a liberar rápidamente programas de mala calidad, y menospreciar el trabajo de los diseñadores de software en el mercado moderno. Te recomendaría como lectura inicial “The Mythical Man-Month”. Si tu jefe realmente quiere probar que el programa funciona bien en el 100% de los casos pese a los tests que tú has diseñado, tiene que asumir que eso cuesta un 100% de testeo humano, cosa que en este momento ninguna maquina o proceso puede reemplazar en particular cuando se trata de interfases gráficas. Pregúntale a la gente de Inti Games, al comité del WIAA, o los diseñadores del Nintendo Virtual.

_________________
Luis Machuca Bezzaza
     :arrow:  Mi Wiki :arrow: Mi Opera
     Colaborador Gulix, Secretario (S), Administrador de Wiki, agente cuasi‑omnipresente del canal IRC


Arriba
 Perfil  
 
NotaPublicado: Sab May 08, 2010 17:56 pm 
Desconectado
usuario activo
usuario activo
Avatar de Usuario

Registrado: Sab Feb 09, 2008 03:34 am
Mensajes: 125
Muchas gracias Ryan me quedo muy claro y comprendo que de todas formas sera imposible reemplazar al 100% el testeo humano al final del ciclo productivo. Te agradezco tu ayuda y revisare el link que me dejaste en el post anterior.

Saludos


Arriba
 Perfil  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 6 mensajes ] 

Todos los horarios son UTC - 3 horas


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë