background preloader

Behavior Driven Development

Behavior Driven Development
In software engineering, behavior-driven development (abbreviated BDD) is a software development process based on test-driven development (TDD).[1][2] Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software developers and business analysts with shared tools and a shared process to collaborate on software development,[1][3] with the aim of delivering "software that matters".[4] Although BDD is principally an idea about how software development should be managed by both business interests and technical insight, the practice of BDD does assume the use of specialized software tools to support the development process.[2] Although these tools are often developed specifically for use in BDD projects, they can be seen as specialized forms of the tooling that supports test-driven development. History[edit] Principles of BDD[edit] Behavioral specifications[edit] See Also[edit] Related:  Agile

A sprinkle of agile, a dash of lean (Page 1 of 3)Whether used separately or together, agile and lean are here to stay. Now it’s just a matter of how to describe the combination of agile and lean as a business process and how to make it fit within that business, according to experts in the processes. “The best way I can describe it is if you look at how agile and lean have been used in the last decade, and in the decade from 2000 to 2010, agile has predominantly been a software development methodology and lean has predominantly been a manufacturing process,” said Alex Adamopoulos, CEO of lean and agile consultancy emergn. “And in the next decade, which we kind of have already started, I believe they are both going to become the transformation agents in business.” Aside from defining the combination itself, organizations also have a hard time defining the best combination for the business and its projects, explained Mike Gilpin, research director at Forrester Research.

Test-driven development Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved to pass the new tests, only. This is opposed to software development that allows software to be added that is not proven to meet requirements. American software engineer Kent Beck, who is credited with having developed or "rediscovered"[1] the technique, stated in 2003 that TDD encourages simple designs and inspires confidence.[2] Test-driven development is related to the test-first programming concepts of extreme programming, begun in 1999,[3] but more recently has created more general interest in its own right.[4] Programmers also apply the concept to improving and debugging legacy code developed with older techniques.[5] Test-driven development cycle[edit] A graphical representation of the test-driven development lifecycle 1. 2. 3. 4. 5. Repeat Development style[edit]

metricfu/metric_fu Effective Unit Testing with DbUnit Published on ( See this if you're having trouble printing code examples by Andrew Glover 01/21/2004 Introducing DbUnit Writing unit and component tests for objects with external dependencies, such as databases or other objects, can prove arduous, as those dependencies may hinder isolation. Ultimately, effective white-box tests isolate an object by controlling outside dependencies, so as to manipulate its state or associated behavior. Utilizing mock objects or stubs is one strategy for controlling outside dependencies. Stubbing out associated database access classes, such as those found in JDBC, can be highly effective; however, the mock object solution may not be possible in application frameworks where the underlying database access objects may be hidden, such as those utilizing EJBs with container-managed persistence (CMP) or Java Data Objects (JDO). Automated tests are a critical facet of most successful software projects. Getting Started DbUnit in Code

Windows – Howto Instalación de Qemu en Windows | de Juan Sierra Pons Qemu es un emulador Open Source de Sistemas Operativos que puede correr tanto en Windows como en Linux. En este Howto, veremos su instalacion en Windows.La emulacion de Sistemas operativos nos puede ser muy util para: Poder correr programas antiguos que no tienen su equivalente actual. Por ejemplo, programas especificos creados para entornos MS-DOS que no es posible migrar. ¿Que es Qemu? QEMU es un emulador Open Source que consigue una buena emulación usando traducción dinamica de las operaciones entre la maquina anfitriona o principal y la maquina huesped o emulada. Emulacion completa del sistema. Tambien existe un modulo Acelerador KQEMU (Propietario) disponible que optimiza el rendimiento en el caso de que un PC es emulado dentro de otro PC. Programas necesarios para la instalacion de QEMU y del modulo acelerador KQEMU El Paquete binario para Windows, lo podemos bajar de en el momento de escribir este articulo la versión que había era la qemu-0.8.2.

Bringing User Centered Design to the Agile Environment When the exciting opportunity to work in a post-bubble startup arose, I jumped to take it. I had the luxury of doing things exactly as I thought right, and for a while it was truly fantastic. I built a team with a dedicated user researcher; information architect; interaction and visual designers and we even made a guerilla usability lab and had regular test sessions. Unfortunately, the enthusiasm I had for my new job waned after six months when an executive was appointed Head of Product Development — who insisted he knew SCRUM1 better than anybody. As the Creative Director, I deferred authority to him to develop the product as he saw fit. Requirements came from the imagination of the Head of Product Development; design was rushed and ill-conceived as a result of time pressure; development was equally rushed and hacked together, or worse, unfinished. This is an extreme example of where SCRUM went bad. Where did Agile come from? Why do people rave about it? The Minefield

Unit testing In computer programming, unit testing is a method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures are tested to determine if they are fit for use.[1] Intuitively, one can view a unit as the smallest testable part of an application. In procedural programming, a unit could be an entire module, but it is more commonly an individual function or procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but could be an individual method.[2] Unit tests are short code fragments[3] created by programmers or occasionally by white box testers during the development process. Ideally, each test case is independent from the others. Benefits[edit] The goal of unit testing is to isolate each part of the program and show that the individual parts are correct.[1] A unit test provides a strict, written contract that the piece of code must satisfy.

charliesome/better_errors Useful tools for writing Selenium tests I've been writing a lot of Selenium tests lately and I've been using some tools that I find extremely useful for composing table-style tests. Let me start by saying that writing GUI-based tests for Web apps is no fun, no matter what your testing tool is. You need to navigate through pages, fill and submit forms, and verify that certain elements are present on the pages. Doing all this manually can quickly become tedious and kill whatever joy you may find in testing. If you're writing Selenium tests, these activities are, if not fun, at least tolerable due to the existence of the Selenium Recorder ("the Selenium Recorder -- can't imagine life as a Web app tester without it" seems like a good line for a commercial :-) The Selenium Recorder (which I'll refer to as SelRec from now on) is a Firefox extension that you launch via the Tools menu. SelRec can also help with certain Selenium assertion commands. Note that XPath expressions don't work that well in Internet Explorer. Updates

crea un sistema operativo portable bueno muchachos en esta guia que me incontre por ay les voy a enseñar como hacer un sistema operativo portable BackTrack Portable BackTrack (o tu sistema operativo favorito, la guía esta abierta a cualquiera de ellos) materiales Memoria USB (mínimo 1GB de espacio) Primero necesitamos la herramienta Moka5 que la podemos descargar aquí, también necesitamos la ISO del BackTrack podemos bajarla aquí, una vez tienes las herramientas necesarias, empezaremos a crear nuestro BackTrack portable en nuestra memoria USB. 1). 2). 3). 4). Nos aparecerá el siguiente pantallazo: Donde debemos escoger la opción “Make you own LivePC”, la otra opción es para descargar o ejecutar en línea algunas maquinas prefabricadas (al parecer ya no están disponibles después de que moka5 se volviera comercial). 5). 6). PD. bueno espero que les valla bien

Ten Year Agile Retrospective: How We Can Improve In The Next Ten Years Jeff Sutherland invented Scrum in 1993 and worked with Ken Schwaber to formalize Scrum at OOPSLA'95. Together, they extended and enhanced Scrum at many software companies and helped write the Agile Manifesto. Jeff's blog reviews the origins and best practices of Scrum at June 2011 Ten years after the publication of the Agile Manifesto, Jeff Sutherland describes the successes of Agile and pinpoints four key success factors for the next ten years. Agile, Scrum, software development, project management, Team Foundation Server Ten years after the Agile Manifesto was published, some of the original signatories met with a larger group of Agile thought leaders met at Snowbird, Utah, to do a retrospective on 10 years of Agile software development. Demand technical excellence.Promote individual change and lead organizational change.Organize knowledge and improve education.Maximize value creation across the entire process. Impediment #1: Lack of READY Product Backlog