Presentación de PowerPoint

Anuncio
Desarrollo Ágil
Introducción a desarrollo ágil
Periodo:
2012 - 2
Inicio:
Ago 14, 2012
Termino:
Nov 27, 2012
Contacto
Majahide Payan Hernandez
[email protected]
Unit Test Runners
NUnit
Línea de
comandos.
Visual Studio
Sesiones de
pruebas unitarias
Contacto
Majahide Payan Hernandez
[email protected]
Desarrollo «Test First»
Utilización de plantillas (Cascarones)
Una plantilla es algo en lo cual se construirá después
La plantilla es la especificación para lo que se va a construir
después
Remover la plantilla cuando se este listo para lanzar el
producto.
Contacto
Majahide Payan Hernandez
[email protected]
Construcción de la plantilla
Si se construye antes
•El software continuamente tiene
la forma con que se creo
•Por lo tanto la plantilla
continuamente se construye solo
momentos antes de ser utilizada
Contacto
Majahide Payan Hernandez
[email protected]
Desarrollo «Test-Driven»
Crear una prueba que
falle.
• RED
Red
Hacer que la prueba
pase
• GREEN
Refactor
Mejorar la
implementación interna
sin cambiar el contrato
o el comportamiento
exterior
Green
• REFACTOR
DEMO
Contacto
Majahide Payan Hernandez
[email protected]
Otras técnicas de «Test First»
ATDD
• Acceptance Test Driven
Development
• Orientado al Negocio
(FitNesse)
BDD
• Behavior Driven
Development
• Comportamiento de los
componentes
Contacto
Majahide Payan Hernandez
[email protected]
Que es una Prueba?
«Las pruebas son
especificaciones»
Los documentos de
WORD no pueden
probar si el software
funciona
Contacto
Majahide Payan Hernandez
[email protected]
Configuración de un proyecto
de prueba
Contacto
Majahide Payan Hernandez
[email protected]
Utilizando Nunit.Framework
Atributos para habilitar la funcionalidad de las pruebas unitarias
Esta prueba pasa a menos que sea falso
DEMO
Contacto
Majahide Payan Hernandez
[email protected]
Ejecución de las pruebas
Ejecutar todas las pruebas o grupos
Se puede hacer «debug» en las pruebas
Contacto
Majahide Payan Hernandez
[email protected]
TFD - Assertions
Utilizar un solo «assertion»
lógico por prueba
Es mejor enfocarse en pruebas
lógicas y cada uno por separado.
Contacto
Majahide Payan Hernandez
[email protected]
Probar el código es importante
Intentar tener el código mantenible
Saber que hace determinado bloque de
código
Se tiene una idea erronea sobre las
pruebas
Identificar bloques de código que puedan
ser refactorizados
Pensar por que estoy haciendo Copy-Paste
Contacto
Majahide Payan Hernandez
[email protected]
Ejemplo Actual
<body>
<form id="form1" runat="server">
<div>
<img id="logo" src="images/sagelogo.jpg"/>
<br />
<asp:Label ID="Label1" runat="server"
Text="Completed Vs Abandoned orders Report" Font-Names="Arial"
Font-Size="X-Large" ForeColor="#ADC329"></asp:Label>
<br />
<br />
<table width=200>
<tr>
<td width=20 bgcolor="#003E21">
 </td>
<td>
<font face=arial>Orders completed</font></td>
</tr>
<tr>
<td width=20 bgcolor="#59923B">
 </td>
<td>
<font face=arial>Orders abandoned</font></td>
</tr>
<tr>
<td width=20>
 </td>
<td>
 </td>
</tr>
<tr>
<td width=20>
 </td>
<td>
<asp:Button ID="ButtonSwitchGraphType" runat="server" Text="Button"
onclick="ButtonSwitchGraphType_Click" />
</td>
</tr>
<tr>
<td width=20>
 </td>
<td>
<a href=Default.aspx>Cart Abandonment Report</a>
</td>
</tr>
</table>
<br />
7.5 Millones de Registros
45 seg. A 1:30 mins Tiempo Std
Contacto
Majahide Payan Hernandez
[email protected]
<form id="form1" runat="server">
<div>
<div>
<img id="logo" src="images/SageLogo.jpg" alt="Sage Logo" />
<h1 style="margin-right:10px; float:right; color:#ADC329; fontstyle:italic;">Completed VS Abandoned Orders Report</h1>
</div>
<div style="clear:both;"></div>
<div id="navbar">
<asp:HyperLink ID="HyperLink1" runat="server"
NavigateUrl="http://gaqwebcm1.gs.adinternal.com/CsrReport/" Text="Go to
CSR Report"></asp:HyperLink>
<asp:HyperLink ID="HyperLink2" runat="server"
NavigateUrl="Default.aspx" Text="Detailed Report"></asp:HyperLink>
Ejemplo Actual
7.5 Millones de Registros
- 10 seg. A 20 segs
- 1 seg a 2 seg.
<span id="pnlChangeChart" style="float:right; padding-right:10px;
display:none;">
<span style="font-weight:bold; color:#fff;">Chart type: </span>
<select onchange="cboChartType_Change(this);">
<option>Bars</option>
<option>Lines</option>
</select>
</span>
</div>
<h3 style="border-bottom:solid 2px #999; color:#999; fontweight:normal;">Last 15 Days</h3>
<div id="pnlGeneralChartLoading">
<img src="images/ajax-loader.gif" alt="Loading..." />
</div>
<div id="pnlMainChart"></div>
<h3 style="border-bottom:solid 2px #999; color:#999; fontweight:normal;">Previous and Actual Month</h3>
<div id="pnlChartMLoading">
<img src="images/ajax-loader.gif" alt="Loading..." />
</div>
<div id="pnlChar1"></div>
</div>
</form>
Contacto
Majahide Payan Hernandez
[email protected]
Buscar calidad en las pruebas
Ejecución
Otros
factores
relevantes
Rendimiento
Histórico
Objetivo
Tasa de
errores
Negocio
Relevancia
Contacto
Majahide Payan Hernandez
[email protected]
Algunas reglas importantes
Repetitivo
• Las pruebas no deben
de fallar después de
las 6:00
• Ejecutar las pruebas
Independiente en cualquier orden
Contacto
Majahide Payan Hernandez
[email protected]
Como aplicar el diseño?
Probar solo
los
miembros
públicos
Te hace
pensar como
lo hace el
cliente
Extra: hace
que las
pruebas sean
mas robustas
Red
Refactor
Green
Contacto
Majahide Payan Hernandez
[email protected]
Puntos a recordar
Escribir las pruebas en un proyecto por separado
Apegarse al concepto R-G-R
Tratar el código con respeto
Seguir aprendiendo y practicando
Contacto
Majahide Payan Hernandez
[email protected]
Puntos a Considerar en Testing
Contacto
Majahide Payan Hernandez
[email protected]
Organización de Proyecto de
TEST en VS
Assembly
Unit Test
Assembly
.Net Project
.Net Project
• NamespaceFolder
• Class
• Comportamiento
• Comportamiento
• Namespace_testFolder
• Class_TestFolder
• Test Class
• Test Class
Contacto
Majahide Payan Hernandez
[email protected]
Integración vs Unit Testing
DEMO
Objeto 1
Objeto 2
Objeto 3
Pruebas de integración?
Método A
Método B
Método C
Pruebas de integración?
Contacto
Majahide Payan Hernandez
[email protected]
Descargar