March 2009 - Artículos

Tip: Cómo establecer el valor de %PathToWebRoot%

En un post anterior hablaba sobre pruebas unitarias de la interfaz de usuario . En ese post hablaba sobre cómo Team System deja grabar secuencias que realizar el usuario contra la interfaz web para después poder repetir las secuencias grabadas tantas veces como consideremos. Una de las cosas que comentaba es cómo poder configurar la prueba para indicarle que queremos que se arranque un servidor web de desarrollo cuando ejecutemos la prueba. En el ejemplo ruta que usaba en el ejemplo, empleaba %PathToWebRoot...
Publicado por Ibon Landa | 1 comment(s)

Pruebas unitarias: Capa de acceso a datos

En este post abordaremos cómo es posible hacer pruebas unitaria sobre la capa de acceso a datos, tanto del código .NET ( C#, VB.NET o el que sea ) que usamos para acceder a los datos,como de los procedimientos almacenados que puede tener nuestra base de datos. El código empleado para acceder a la base de datos podría ser algo similar a este: public List<CustomerEntity> GetList( string name) { List<CustomerEntity> list = new List<CustomerEntity>(); CustomerEntity customer; try {...
Publicado por Ibon Landa | 1 comment(s)

Pruebas unitarias: interfaz de usuario ASP.NET

Llega el momento de ver lo que nos ofrece Visual Studio para hacer las pruebas sobre la capa de interfaz, en este caso sobre una interfaz ASP.NET. Probar el 100% de la funcionalidad de la interfaz de usuario de manera automatizada es complicado con las herramientas que disponemos y siempre va a quedar una parte que obligatoriamente tendremos que cubrir con pruebas funcionales. Aún así, todo lo que podemos automatizar será tiempo que nos ahorraremos. En este tipo de pruebas sigo...
Publicado por Ibon Landa | 10 comment(s)

[Artalde.NET] Depuración avanzada con WinDbg

El próximo día 1 de abril, miércoles, será la siguiente charla de Artalde . El lugar y hora será el mismo de siempre, de 19:00 a 21:00 en la universidad de Deusto . Tendremos el honor de tener entre nosotros a Pablo Alvarez Doval , todo un crack en esta materia. Este evento romperá ligeramente con la tendencia sobre las sesiones técnicas acerca de las ultimísimas tecnologías para centrarse en una faceta poco novedosa, pero de la que aún...
Publicado por Ibon Landa | 1 comment(s)
Archivado en: ,

Pruebas unitarias: Orígenes de datos para alimentar las pruebas

En algunas ocasiones, para poder probar de forma completa un módulo es necesario probar muchas variantes en los parámetros de entrada. Por ejemplo, si tenemos nuestra ya famoso método Sumar, con podría interesar probar el método con diferentes parámetros de entrada, para comprobar que realmente suma bien en todas las situaciones. Una primera aproximación podría ser escribir tantas pruebas como necesitemos, cambiando en cada prueba los parámetros...
Publicado por Ibon Landa | 13 comment(s)

Pruebas unitarias: Probando el envío de correos electrónicos

Algo muy típico en todos los desarrollos es la necesidad de enviar correos electrónicos. En este post veremos cómo es posible probar de manera automatizada si nuestro método genera o no genera correos electrónicos. En este caso vamos a simplificar y sólo vamos a probar un método que única y exclusivamente manda el correo. Nuestro método tendría el siguiente aspecto: public static void SendMail( string from, string to, string subject...
Publicado por Ibon Landa | 1 comment(s)

Scrum Sprint Monitor

En codeplex podéis encontrar esta herramienta, que al menos a mí me ha parecido curiosa. El tiempo dirá si útil… Es un salvapantallas que permite visualizar el estado del sprint. Podéis encontrar toda la información completa aquí .
Publicado por Ibon Landa | 2 comment(s)
Archivado en: ,

Channel 9: Patrón Proxy

Si alguno no podéis verlo desde acceder desde Channel 9 .
Publicado por Ibon Landa | con no comments
Archivado en: ,

Pruebas unitarias: Servicios Web

Siguiendo con los post sobre pruebas unitarias, en éste intentaré explicar los recursos que nos ofrece el framework de Visual Studio para probar servicios web. El primer paso será convertir nuestro método Sumar en un servicio web ASP.NET. Como seguro que todos ya sabréis el proceso es muy sencillo. Sería crear un proyecto de tipo “ASP.NET Web Service Application” y decorar el método que queremos exponer con el atributo WebMethod. [WebMethod...
Publicado por Ibon Landa | 1 comment(s)

Channel 9: Patrón decorador

Si alguien no lo ve, también puede verlo desde channel 9.
Publicado por Ibon Landa | con no comments
Archivado en: ,

¿Qué es eso de las metodologías? ( II )

Y llegado este momento, y después del post anterior dónde hablábamos de las buenas prácticas, volvemos a la pregunta que nos hacíamos al principio.¿ Qué metodología debo usar?¿Cuál es la mejor?¿Cómo puede empezar a usarla? Pues la verdad que esta pregunta puede dar para mucho más que un post, pero intentaré dar algunas pinceladas que os puedan ayudar a empezar. La respuesta no es una respuesta absoluta...
Publicado por Ibon Landa | 7 comment(s)
Archivado en:

eBook gratuito sobre ASP.NET MVC!

Post corto, pero útil para los que estéis interesados en esta tecnología. Podéis ver toda la información y descargarlo desde aquí .
Publicado por Ibon Landa | 2 comment(s)
Archivado en:

¿Qué es eso de las metodologías? ( I )

Una de las decisiones más importantes a la que nos enfrentamos en el inicio de todo proyecto es la elección de metodología a emplear; ¿cómo vamos a trabajar?. No es una decisión trivial, obviando muy a menudo esta pregunta, ya de de ella depende gran parte del éxito del proyecto. Además, como veremos, elegir y aplicar una metodología implica un trabajo importante y suele implicar un cambio de mentalidad importante en las organizaciones...
Publicado por Ibon Landa | 4 comment(s)
Archivado en: ,

Introducción a Team System

Aunque ya poco a poco cada vez más gente sabe qué es esto de Team System, todavía me encuentro con algunas situaciones en las que se desconoce y por este motivo he decidido publicar este post de introducción a Team System. Lo escribí hace tiempo con otro objetivo pero nunca vio la luz… Visual Studio Team System es la solución Microsoft para gestionar el ciclo de vida completo de soluciones para plataforma Windows. Con el uso de esta herramienta las...
Publicado por Ibon Landa | 4 comment(s)
Archivado en:

Pruebas unitarias: Cobertura de código

La cobertura de código es un factor clave para determinar cómo de bueno son nuestras pruebas unitarias. La cobertura de código lo que nos dice es la cantidad de código que está sometido a nuestras pruebas. A mayor cobertura mayor cantidad de código está siendo probado por nuestras pruebas unitarias. Una cobertura del 85-90% indica que la gran mayoría de nuestro código estaría siendo probado. Una cobertura menor indica que hay una parte importante de nuestra aplicación que está sin probar y que deberíamos...
Publicado por Ibon Landa | con no comments

Pruebas unitarias: Manos a la obra ( II )

En el post anterior vimos una introducción al framework de Visual Studio para el desarrollo de pruebas unitarias. En este post completaré algunos aspectos que no se mencionaron en el post anterior. En el ejemplo que vimos en el post anterior implementamos una prueba muy simple sobre el método Sumar. [TestMethod()] public void SumarTest() { ClaseEjemplo target = new ClaseEjemplo(); int a = 1; int b = 2; int expected = 3; int actual; actual = target.Sumar(a, b); Assert.AreEqual(expected, actual); ...

Pruebas unitarias: Manos a la obra ( I )

Hasta ahora he estado hablando de las pruebas unitarias desde un aspecto puramente teórico. He hablado sobre las características una buena unitaria , de sus beneficios y de los mitos que rodean hasta buena práctica. Y aunque todavía intentaré escribir algo más en el aspecto teórico ha llegado el momento de ver algo más práctico. En los próximos post intentaré aportar mi granito de arena y explicar de una manera sencilla...

¿El método TryParse genera excepciones?

Como todos ya sabréis el método TryParse se utiliza para realizar conversiones de un tipo a otro, por ejemplo, para convertir una fecha representada en una variable string a una variable de tipo DateTime. Si la conversión se puede realizar, devuelve true como resultado y en el segundo parámetro devuelve la fecha que representa el primer parámetro. Si la conversión no se puede realizar, devuelve false como resultado y en este caso, por tratarse de un tipo...
Publicado por Ibon Landa | 7 comment(s)