CZ Biz. Auto. System & Test-Driven Development Teoman Soygul (Sept 24, 2012).

Slides:



Advertisements
Similar presentations
Test Automation: Coded UI Test
Advertisements

Tools for Agile Development: A Developer’s Perspective Mike Linnen Blog:
Spring, Hibernate and Web Services 13 th September 2014.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
E-commerce Project Erik Zeitler Erik Zeitler2 Lab 2  Will be anounced and scheduled later  We will deploy Java Server Pages on a Tomcat server.
© 2005, Cornell University. Rapid Application Development using the Kuali Architecture (Struts, Spring and OJB) A Case Study Bryan Hutchinson
XP and Refactoring David Talby. Development Methodologies The Software Crisis – 84% of software projects are not on time – 31% of software projects never.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Agile Testing with Testing Anywhere The road to automation need not be long.
? Data-Driven apps and LightSwitch TechEd sessions Domain-Driven Design,.NET and Loosely-coupled approaches TechEd sessions Windows Apps Modernization.
By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
CONTINUOUS DELIVERY / CONTINUOUS INTEGRATION. IDEAS -> SOLUTIONS Time.
TDD,BDD and Unit Testing in Ruby
Design for Testability: Mocks, Stubs, Refactoring, and User Interfaces Benjamin Day.
Presenter - Donn Felker.  Senior Consultant for Microsoft Gold Certified Partner- Statêra.  8 years of experience in developing and architecting enterprise.
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
@benday #vslive Better Unit Tests through Design Patterns: Repository, Adapter, Mocks, and more… Benjamin
Building SOLID Software with Dependency Injection Jeremy Rosenberg.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Unit Testing Continuous Integration PYUNIT AND JENKINS FRAMEWORK Presenter Rachita Agasthy.
Bringing power of simulation to the public.
Test Driven Development Arrange, Act, Assert… Awesome Jason Offutt Software Engineer Central Christian Church
@DNNCon Don’t forget to include #DNNCon in your tweets! Effective Unit Testing for DNN James McKee Solutions Developer / Enterprise
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
Introduction to SOLID Principles. Background Dependency Inversion Principle Single Responsibility Principle Open/Closed Principle Liskov Substitution.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
Group C# 023 Dark Deer Hotel. Born in Education: graduated from Oles Honchar Dnipropetrovsk National University, Physics, Electronics and Computer.
A Practical Guide To Unit Testing John E. Boal TestDrivenDeveloper.com.
Refactoring for Testability (or how I learned to stop worrying and love failing tests) Presented by Aaron Evans.
Using Mock Objects with Test Driven Development Justin Kohlhepp
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
T Iteration Demo Team 13 I1 Iteration
Design for testability as a way to good coding Simone Chiaretta Architect, Council of the EU December 9 th,
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Genesis.
1 Lecture 3 Major Architectural Models View (Cont’d) Architectural Models/Patterns Architecture Case Study Software Architecture & Design Pattern.
Test-Driving ASP.NET Development Tampa Code Camp – July 15 th, 2006 Cory Foy
Presentation Title Subtitle DSpace UI Prototype 7 Spring, Angular.js, and the DSpace REST API.
Test Driven Development Introduction Issued date: 8/29/2007 Author: Nguyen Phuc Hai.
T Project Review Muuntaja I1 Iteration
Dp-024 C# Dark Deer Hotel. Born in Education: graduated from Oles Honchar Dnipropetrovsk National University, Physics, Electronics and Computer.
#SPSSAN June 30, 2012 San Diego Convention Center WRITING TESTABLE CODE In SharePoint.
Microsoft Advertising 16:9 Template Light Use the slides below to start the design of your presentation. Additional slides layouts (title slides, tile.
Modern Development Technologies in SharePoint SHAREPOINT SATURDAY OMAHA APRIL, 2016.
Northwest Arkansas.Net User Group Jay Smith Tyson Foods, Inc. Unit Testing nUnit, nUnitAsp, nUnitForms.
Automated Testing for Dynamics CRM
Unit Testing Silverlight & Windows Phone Applications Jeff Wilcox Senior Software Development Engineer Silverlight
Benjamin Unit Testing & Test-Driven Development for Mere Mortals.
Testing PA165 Dec 9, 2014 Petr Adámek, Tomáš Pitner.
Software Engineering Lecture 11 Software Testing Presenter: Josef Hallberg 1.
Beyond Basic Unit Testing: Mocks, Stubs, User Interfaces, and Refactoring for Testability Benjamin Day
Agile Development VS 2005 Team vs. Open Source Toolkit Michael Gillespie James Brown Agillence Software Inc.
XNAT 1.7: Getting Started 6 June, Introduction In this presentation we’ll discuss:  Features and functions in XNAT 1.7  Requirements  Installing.
Ukázková aplikace je ke stažení na wug
Automated Software Testing
“When quality is critical"
Better Unit Tests through Design Patterns: Repository, Adapter, Mocks, and more… Benjamin
Integration Testing.
Designing For Testability
Test Driven Development 1 November Agenda  What is TDD ?  Steps to start  Refactoring  TDD terminology  Benefits  JUnit  Mocktio  Continuous.
Unit Testing & Test-Driven Development for Mere Mortals
Applied Software Implementation & Testing
Unit Testing & Test-Driven Development for Mere Mortals
Baisc Of Software Testing
Unit Testing & Test-Driven Development for Mere Mortals
From Development to Production: Optimizing for Continuous Delivery
From Development to Production: Optimizing for Continuous Delivery
#01# ASP.NET Core Overview Design by: TEDU Trainer: Bach Ngoc Toan
Presentation transcript:

CZ Biz. Auto. System & Test-Driven Development Teoman Soygul (Sept 24, 2012).

……………………………… Agenda Modern software development methodologies for testable applications Test-driven development How to we do use TDD in-house Q/A

How to be Testable Road to test-driven development

How to be testable? Be modular so individual modules can be tested in isolation. Pluggable architecture for frontend (Web & Desktop Apps). Service-oriented architecture for backend.

How to be testable? Use object-oriented design in a SOLID manner. S Single responsibility principle O Open/closed principle L Liskov substitution principle I Interface segregation principle D Dependency inversion principle

How to be testable? Use testable frameworks. Persistence (Entity Framework) Backend (WCF) Frontend (ASP.NET MVC) Unit/Integration Tests (NUnit) Function Tests (Selenium) Mocking (Moq) IoC Containers (Ninject)

Test-Driven Development Stairways to heaven or Highway to hell

……………………………… Testing Hierarchy End-to-end system testing Verify component integrations (or subsystems) Verify component in isolation

……………………………… Unit/Integration/Functional Testing [Unit] [Functional] [Integration]

Example: New Partner Portal The new partner portal is based on our new CMS and is integrated with our CRM.

CRM Integration CRM integration gives partners ability to track their customers, contacts, opportunities, use the price calculator or create leads.

……………………………… Simplified use case for CRM Tools :: Opportunity Controller Using the ‘Opportunities’ menu at the CRM Tools section, a partner can view or create opportunities.

……………………………… Simplified composition diagram for CRM Tools :: Opportunity Controller User Interface CRM Server MVC SOA

……………………………… TDD for Opportunity Controller Unit Tests: Opportunity Controller Unit Tests: Individual Repository Tests Integration Tests: Controller + Repository Functional Testing Mock Dependencies Setup Expectations Act then Assert

……………………………… TDD for Opportunity Controller Unit Tests: Opportunity Controller Unit Tests: Individual Repository Tests Integration Tests: Controller + Repository Functional Testing Inject Actual Dependencies Start Actual Services Act then Assert

……………………………… TDD for Opportunity Controller Unit Tests: Opportunity Controller Unit Tests: Individual Repository Tests Integration Tests: Controller + Repository Functional Testing Setup Expectations Exercise System Assert

How do we do TDD w/ Biz. Auto. Cool stuff on the way…

……………………………… Deadlines & Iterations New iteration: Want to develop a ‘CRM Tools :: Lead Controller’, repeat the whole process all over again. Deadline is a basic cut off date for the iterations (supported user stories). Extending a deadline means more iterations can be made hence more stories can be implemented. An earlier deadline is simply the reversal of this effect.

……………………………… TDD & Continuous Integration Each ‘Push’ to the source code repository is picked up by our continuous integration server (TeamCity), and a new build is created, and all the tests are run, and a code coverage report is generated.

……………………………… Released the application and got a bug report. What do we do? Regression testing : Create a test replicating the bug. Fix the bug. Make sure that test passes. Bugs have a habit or recurring so regression testing makes sure that they don’t resurrect!

……………………………… Q/A