Continuous Integration & Automated Testing in a multisite.net/cloud Project



Similar documents
Developing Microsoft Azure Solutions 20532B; 5 Days, Instructor-led

Assignment # 1 (Cloud Computing Security)

Administering Team Foundation Server 2013

Appendix A. EXAMPLES to the Agreement for additional ARIS Cloud Services

Microsoft Implementing Microsoft Azure Infrastructure Solutions

Migrating SaaS Applications to Windows Azure

Course 20533: Implementing Microsoft Azure Infrastructure Solutions

ALM2013VS_ACC: Application Lifecycle Management Using Visual Studio 2013

Microsoft Enterprise Search for IT Professionals Course 10802A; 3 Days, Instructor-led

Cloud Services ADM. Agent Deployment Guide

Implementing Microsoft Azure Infrastructure Solutions

Application Lifecycle Management Using Visual Studio 2013 (SCRUM)

Implementing Microsoft Azure Infrastructure Solutions 20533B; 5 Days, Instructor-led

Please contact Cyber and Technology Training at for registration and pricing information.

Course 20533B: Implementing Microsoft Azure Infrastructure Solutions

Microsoft Training and Certification Guide. Current as of December 31, 2013

Modern practices TIE-21100/

Frequently Asked Questions

Getting Started with Sitecore Azure

Application Migration Best Practices. Gregory Shepard Senior Consultant InCycle Software

Features of AnyShare

Aspire Systems - Experience in Digital Marketing and Social Media

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Application Development

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

Special Edition for FastTrack Software

Product Training Services. Training Options and Procedures for JobScheduler and YADE

Maximize your Remote Desktop Services

Developing Microsoft Azure Solutions

Software configuration management

Developing Microsoft Azure Solutions 20532A; 5 days

Active Directory Management. Agent Deployment Guide

Mod 2: User Management

Migrating from SharePoint 2007 to SharePoint

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

Effective Team Development Using Microsoft Visual Studio Team System

Automated Application Provisioning for Cloud

Active Directory Management. Agent Deployment Guide

Configure SQL database mirroring

ecopy ShareScan 5.0 SQL installs guide

126 SW 148 th Street Suite C-100, #105 Seattle, WA Tel: Fax:

QUANTIFY INSTALLATION GUIDE

Azure Day Application Development

Hands-On Lab. Embracing Continuous Delivery with Release Management for Visual Studio Lab version: Last updated: 12/11/2013

Microsoft Dynamics NAV 2015 Hardware and Server Requirements. Microsoft Dynamics NAV Windows Client Requirements

Kentico CMS 6.0 Performance Test Report. Kentico CMS 6.0. Performance Test Report February 2012 ANOTHER SUBTITLE

ArcGIS for Server: In the Cloud

Getting Started with the Ed-Fi ODS and Ed-Fi ODS API

Performance Test Report KENTICO CMS 5.5. Prepared by Kentico Software in July 2010

Going Hybrid. The first step to your! Enterprise Cloud journey! Eric Sansonny General Manager!

Cursuri Certificare Microsoft

Network device management solution

Become an ALM specialist in 6 weeks

Testing Tools using Visual Studio. Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation

Course 20532B: Developing Microsoft Azure Solutions

Testhouse Training Portfolio

Continuous Integration Comes to China.

This module explains the Microsoft Dynamics NAV architecture and its core components.

SQL Server Replication Guide

Hardwarekrav. 30 MB. Memory: 1 GB. Additional software Microsoft.NET Framework 4.0.

Requirements Collax Security Gateway Collax Business Server or Collax Platform Server including Collax SSL VPN module

Using Application Insights to Monitor your Applications

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

Backup / migration of a Coffalyser.Net database

User Guide Release Management for Visual Studio 2013

Designing, Optimizing and Maintaining a Database Administrative Solution for Microsoft SQL Server 2008

Preinstallation Requirements Guide

SQL EXPRESS INSTALLATION...

SQL Server Training Course Content

Meister Going Beyond Maven

Smart Cloud Integration Pack. For System Center Operation Manager. v User's Guide

Availability Acceleration Access Virtualization - Consolidation

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

NovaBACKUP xsp Version 15.0 Upgrade Guide

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

This document is provided to you by ABC E BUSINESS, Microsoft Dynamics Preferred partner. System Requirements NAV 2016

Cisco Enterprise Mobility Services Platform

Course: 10174B: Configuring and Administering Microsoft SharePoint 2010

MCSD Azure Solutions Architect [Ativar Portugal] Sobre o curso. Metodologia. Microsoft - Percursos. Com certificação. Nível: Avançado Duração: 78h

multiple placeholders bound to one definition, 158 page approval not match author/editor rights, 157 problems with, 156 troubleshooting,

System Requirements for Microsoft Dynamics NAV 2015

Microsoft Training and Certification Guide. Current as of March 16, 2015

SQL Server Administrator Introduction - 3 Days Objectives

Microsoft Modern ALM. Gilad Levy Baruch Frei

SharePoint 2010

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Successfully managing geographically distributed development

Issue 09/2012. Big-LinX The Remote Service Cloud Remote maintenance and remote diagnostics for machines and plants

AVLOR SERVER CLOUD RECOVERY

Configuring and Troubleshooting Internet Information Services in Windows Server 2008

In addition to their professional experience, students who attend this training should have technical knowledge in the following areas.

Rajesh Gupta Best Practices for SAP BusinessObjects Backup & Recovery Including High Availability and Disaster Recovery Session #2747

Benefit. Allows you to integrate RES PowerFuse with application virtualization technologies other than SoftGrid (e.g. Citrix XenApp, VMWare Thinapp).

Cortado Corporate Server

MS Design, Optimize and Maintain Database for Microsoft SQL Server 2008

Cloud Attached Storage 5.0

Transcription:

Continuous Integration Automated Testing in a multisite.net/cloud Project Entwicklertag 2013 Karlsruhe 5-Jun-2013 Vladislav Kublanov 1

Speaker Vladislav Kublanov Tata Consultancy Services (TCS) Studied Computer Science at RWTH-Aachen, Masters degree 1999 14 years of SW development experience in international projects 8 years of Agile experience as ScrumMaster and CI Specialist Contributed to introduction of Agile at Nokia, NSN and TCS Since 2008 SW Developer and ScrumMaster at TCS Düsseldorf Continuous Integration Automated Testing in a multisite.net/cloud Project 2

Content Conte 1. Mission 2. Infrastructure Overview 3. SW development with Sitecore TDS 4. Continuous Integration process 5. Automated Testing approach 6. Go Live and Branching strategy 7. Technologies Tools 8. Learnings 9. Discussion 3

Mission For a big, multi-site Web Portal Project, executed in Agile mode by TCS, it was required to provide infrastructure and to design and set-up a Continuous Integration Automated Testing process with the following aims: to ensure fast quality feedback during development and to have ALL components integrated into a potentially shippable product at the end of every sprint. It was also expected to achieve cost savings by means of process automation. Project context Web Portal, based on Sitecore Content Management System (Sitecore CMS) 1 year to develop and to enable Go Live of the release 1.0 Project size up to 60 people, distributed over 3 sites: Customer site in Germany TCS Delivery Center in Düsseldorf, Germany TCS in Delhi, India 4

Web Portal Technical View Authentication Authorization Browser (content editors) Browser (customers, partners) Active Directory Internal users Presentation Layer ASP.NET Account Mgmt External users CMS CMS Integration Marketing Products DB Image DB Master Publish SQLServer PIM? Sync??? Web SQLServer Web Analytics access Product pricing via SAP Ordering / Billing Shop Billing Mail Server 5

Challenges Accessibility Development and testing environments accessible from all three sites Scalability Scalable development and testing infrastructure Easy to add and set-up new environments Security All machines accessible via secure connection Technologies Development and runtime based on Microsoft Technologies Incremental development of Sitecore CMS content In course of the project, customer provides the CMS content data incrementally Phase 1: no CMS content data available Phase 2: CMS content data starts to grow Go Live and maintenance After release 1.0 goes live, development of the next release 2.0 to run in parallel with the maintenance of 1.0 6

Master M a s t e r M a s t e r M a s t e r Master Project Infrastructure Overview Amazon Cloud TCS Nearshore VPN TFS Server SCM Build Customer Up to 10 Development Environments Test Server 1 Test Server 2 VPN Up to 15 Development Environments TCS Offshore Database Server CMS content Development Environment Live System Up to 35 Terminals VPN Development Environment 1 Development Environment 35 7

Live environment setup CMS content editor End-user Create CMS content Content Management Server View web page content Content Delivery Server Core Master Web Core Live Publish for pre-view Publish to live system 8

SW development with Sitecore TDS Phase 1: production CMS content data not yet available TFS Server Amazon Cloud Test Server SCM 4. Build 5. Deploy TDS.update package SQL Server 3. Check-in code, tests CMS content Local development environment C# Projects -> C# source code Unit Test Projects -> Unit tests TDS Projects -> Sitecore templates -> Sitecore items 2. Synchronize CMS content with Visual Studio 1. Develop CMS content: Sitecore templates and Sitecore items SQL Server 9

SW development with Sitecore TDS Phase 2: production CMS content data starts to grow CMS content development environment at customer site New SCM Content Development Server TFS Server 4. 5. Build Deploy Amazon Cloud 8. 6. Develop production CMS content data Deploy TDS.update package on top of production CMS content Export production content as database backup file Test Server SQL Server 7. SQL Server 3. Check-in code, tests CMS content Local development environment C# Projects -> C# Source Code Unit Test Projects -> Unit Tests TDS Projects -> Sitecore Templates -> Sitecore Items 2. Synchronize CMS content with Visual Studio 1. Develop CMS content: Sitecore templates and Sitecore items SQL Server 10

CI AT Process Overview (Phase 1) Master Master Developer s PC 1. 4. Gated check-in code, tests CMS content Installation test reports (via e-mail) In phase 1 Production CMS content data not available, so that Sitecore publishing is fast Short installation time Little product functionality available, so that Selenium test suite is small Test automation support is cheap TFS Server Test Server SCM 2. After each check-in Compilation unit testing 3. Every 2h Automated deployment Full Publishing Selenium testing SQL Server Shared directory with green Builds: \\TFSServer\SharedDrive\GreenBuilds 5. GREEN BUILD (potentially shippable product) 11

Master CI AT Process Overview (Phase 2) Master Developer s PC 1. 4. Gated check-in code, tests CMS content Installation test reports (via e-mail) In phase 2 Production CMS content data started to grow, so that Sitecore publishing gets slower Longer installation times Product functionality grows and changes faster, new tests are added and existing tests adjusted more frequently Costs of test automation increase SCM TFS Server 2. Compilation unit testing Shared directory with green Builds: \\TFSServer\SharedDrive\GreenBuilds After each check-in 3. Test Server 1 Automated Deployment Partial publishing Smoke Selenium Testing Every 2h Test Server 2 New New Weekly Automated integration of production CMS content Data SQL Server 5. GREEN BUILD (potentially shippable product) Daily Automated deployment Full publishing Smoke Selenium testing Manual testing New Testing Team 12

Developer s check-in triggers a new build Automated Deployment process TFS Server Test Server DB Server Automated Deployment Selenium Testing A scheduled job fetches and starts installation of the new build Stop Web Page instance from last installation running in the Prepare filesystem components of Sitecore: Website and Data Initialize database component of Sitecore using remote access Detach old and restore original databases Start Web Page in the Deploy new installation package Configure the newly installed package Launch automated Selenium testing Backup the build and send build status e-mail 13

Automated Testing Developing Tests Automated Deployment Selenium Testing TFS Server Test Server Record Tests with Selenium IDE Extend and enhance Tests Check-in Tests SCM Build Tests are copied during deployment Development of Selenium tests Recording initial set of Selenium tests with Selenium IDE Extending and enhancing recorded tests manually (e.g. provide user-extensions.js to store UI element ids) Check-in Selenium tests into TFS Copy Selenium tests to the test environment as part of the installation package 14

Automated Testing Test Execution Deployment script (Powershell)... mstsc.exe rdpconfig.rdp Automated Deployment Selenium Testing rdpconfig.rdp... alternate shell:s: <path>\powershell.exe -file <path>\runautomatedtests.ps1... Automated Testing script (Powershell)... java -jar <path>\selenium-server-standalone-x.xx.x.jar -htmlsuite <browser> <url> <test_suite> <test_report.html> Out-File -FilePath $log -Append... parse_ log_file send_test_ status_e-mail (test_report.html) Execution of Selenium tests As the very last step, installation script starts an RDP session (mstsc.exe) RDP session, when launched, is pre-configured to execute Selenium server with the test suite as parameter After execution of Selenium, installation script parses browser log files for errors Installation script sends an e-mail to the project team informing of success or failure 15

Go Live of release 1.0 development of release 2.0 Establishing of a maintenance branch for the released 1.0 software Trunk Release 1.0 development Release 2.0 development Merging to trunk Merging to trunk Merging to trunk Developing fixes for 1.0 software Maintenance branch 16

Continuous Integration after Go Live TFS Server Test Server Trunk v2.0 development After each check-in on the Trunk SCM Compilation unit testing Automated deployment Selenium testing Functional testing of both releases Testing Team v1.0 maintenance Maintenance branch After each check-in on the Maintenance branch Compilation unit testing Automated deployment Selenium testing Manual deployment of 1.0 update Live System SQL Server 17

Technologies Tools Development Testing Windows Server 2008 R2 Team Foundation Server 2010 (TFS) as SCM and Build Server Gated check-in feature of TFS to reject compilation breaking check-ins Visual Studio 2010 as Integrated Development Environment (IDE) Moles framework for unit testing ASP.NET v4 Internet Information Services 7 ( 7) SQL Server Express 2008 R2 Sitecore 6.5 -.NET based Content Management System (CMS) Hedgehog TDS (Team Development for Sitecore) to manage Sitecore objects in Visual Studio and SCM Package Installer tool of Sitecore to deploy built packages to Sitecore Powershell scripts to automate deployment and testing Remote Desktop Protocol (RDP) Selenium Runtime Windows Server 2008 R2 ASP.NET v4 7 SQL Server 2008 R2 Sitecore 6.5 18

Financial benefits of process automation Automated deployment and configuration One-off effort spent on automation was much less compared to effort which would have been spent for manual deployments/configuration. Earlier detection of compilation failures Gated Check-in feature ensured rejection of compilation breaking check-ins. Testing effort reduced Automated Tests saved effort which the testing team would otherwise have spent on testing of the regression functionality. 19

Learnings Microsoft Technologies Mature and reliable Gated check-in feature of TFS When going for Microsoft all tools must come from Microsoft Amazon Cloud General impression - positive Amazon HW located in Singapore Good experiences with OpenVPN Fast and stable connection to and within the cloud Easy set-up new, and move existing environments to e.g. stronger HW More expensive on long term than buying own HW, but provides more flexibility Sitecore tools Sitecore 6.5 is a solid commercial product, stable and well documented Sitecore Package Installer enables deployment of TDS packages TDS - although tricky to use enables CMS content development with VS in a big project 20

Summary The project infrastructure incorporating Cloud, OpenVPN and TDS, enabled the big, distributed project team to develop a Sitecore based Web Portal. Fast quality feedback due to Selenium-based Test Automation, usage of the Gated Check-in feature provided by the TFS and due to the scalability of the testing infrastructure. Availablility of the potentially shippable product at any point of time during the project due to Continuous Integration of the software with the CMS Content Data provided by the customer. Cost savings due to automation of the CI process. 21

Discussion 22

Thank You Vladislav Kublanov SW Developer ScrumMaster TATA CONSULTANCY SERVICES Tata Consultancy Services Deutschland GmbH Heltorfer Straße 1, D-40472 Düsseldorf Mobile +49 173-678 0583, Fax +49 211 91319-99 Phone +49 211 91319-161 vladislav.kublanov@tcs.com website: www.tcs.com