SlideShare uma empresa Scribd logo
1 de 48
Baixar para ler offline
Agile Tools
Allan Spartacus Mangune
Delivery
• Lectures and demos – 3 hours
• 3 case studies and hands-on exercises – 1 hour each
Agenda
Test-driven Development & Unit Testing
Version Control & Continuous Integration Testing
Web Performance & Load Testing
Test-driven Development
Similar to test-first
practice in Extreme
Programming
Designed for
product
development with
short iterations
Write failing test
code for desired
functionality
Write code to past
the test
Refactor code to
desired coding
standard
Development Cycle
Write a test
Run all tests
Write some
code
Run test
Refactor
Repeat
Write A Test
Write a failing unit test for each new
functionality
• The test must cover the requirements and how
exceptions are handled in the software product
Developer must have a correct
understanding of the functionality
• Refer to use case, domain models and details of the user
story
Write a test
Run all tests
Write some
code
Run test
Refactor
Repeat
Run All Tests
Ensures that the test harness is working
and the new unit test actually fails
• Pending the writing of correct program code
Write a test
Run all tests
Write some
code
Run test
Refactor
Repeat
Write Some Code
Based on the new functionality to be
developed, write the program code
The objective is to code enough to pass the
unit test
• Any duplicate code at this point must be refactored later
Write a test
Run all tests
Write some
code
Run test
Refactor
Repeat
Run Test
Run the test to verify that the written code passes
the test unit test
• If the test fails, review the code against specific requirements
and test cases and make the necessary modification
• Re-run the test
Write a test
Run all tests
Write some
code
Run test
Refactor
Repeat
Refactor
When the code is passing the test, refactor to the
desired standard
• Code follows coding standard
• No duplicate code
• Make design changes to improve the overall maintainability
of the system
Rerun all the tests after refactoring
• To ensure that all tests are passing
Write a test
Run all tests
Write some
code
Run test
Refactor
Repeat
Repeat
Repeat the cycle.
• Write a new unit test for a new functionality
Each cycle should be very short
• Few code edits and less that an hour
• A long cycle may prompt the developer to resort to
debugging
Write a test
Run all tests
Write some
code
Run test
Refactor
Repeat
Test Structure
Arrange
• Setup and initialize the desired state prior to testing
Act
• Execute the test against the method being tested
Assert
• Determines the outcome of the test
[TestClass]
public class HomeControllerTest
{
[TestMethod]
public void Index()
{
// Arrange
HomeController controller = new
HomeController();
// Act
ViewResult result = controller.Index() as
ViewResult;
// Assert
Assert.IsNotNull(result);
}
….
}
Fakes and Mocks
Isolate code
• Controls what is failing and where it is happening
Replaces other parts of the system with stubs and shims
• Stub - A class replacement with the same interface
• Shim – Used to replace the actual method call with the fake ones
Visual Studio Unit Test Explorer
Unit Test Explorer
Create and run a unit test
Isolating Code Under Test with Microsoft Fakes
Create and Run Unit Test (1)
Create a test
project
Create a test
class
Create a test
method against a
functionality
Run test
Create and Run Unit Test (2)
Create a test
project
Create a test
class
Create a test
method against a
functionality
Run test
Arrange, Act, Assert
Arrange
• Define the test input
Act
• Run the method under test
Assert
• Verify the result
Demo: Visual Studio Unit Test
Explorer
Case Study & Hands-on Exercises
Version Control
Management of changes to source files
Each change is marked with change set or revision number
• A revision is made to one or more source files
A change set is usually accompanied by a unique ID, timestamp, and the name of the person who
committed the revision
Changes to one or more source files can be reverted to specific version
Continuous Integration Testing
Continuous integration is a process wherein
the development team continuously integrate
their source files to a version control system
• Allows the team to work on the latest version of the
software
• Delays due to late integration are avoided
Use an automated build system to
continuously run automated integration tests
• Breaking changes are uncovered and fixed
• Rules can be implemented to prevent source files that
break the build from committed to the version control
system
Source Files
Version
Control
Server
Automated
Build Server
Build is broken
Team Foundation Server
Version Control
Team Foundation Server Version Control
(TFSVC)
Manage multiple revisions to source files
• Check-ins
• Branching and merging
• Shelving
Contributor
• Check out files
• Check in modified or new files
• Delete source files
• Compare source files
• Merge changes between files
How to Use TFSVC?
Set up development workspace
Create the version control of your app’s solution files
Create a new solution under version control
Put an existing solution to the version control
Contribute source files
Isolate risks by branching from trunk
Resolve version control conflicts
Set up Development Workspace
Access the Team Explorer in
Visual Studio
• Connect to a Team’s project
Map the team’s project to a
local folder
• Developer’s PC
Map the workspace to get
the project’s source files
Create the Version Control
Access the Source Control Explorer and
create the main trunk
Check in files to the main trunk
Create a New Solution Under Version
Control
Create a new project Add the project to a version control
Put an Existing Solution to the Version Control
Open your solution
Access the solution’s property page
and add the solution to TFSVC
Contribute source files (changes)
Access the pending
changes in solution or
project
Relate change set to one
or more work items
Check in the pending
changes. Adding
comment helps
Branching
Manage simultaneous work of different teams
from the same code base
Merge changes from a branch to the main
trunk
Resolve Version Control Conflicts
Conflicts are highlighted
when checking in pending
changes
Access the Resolve Conflicts
link
Resolve conflicts by keeping
local version, server version
or merge conflicts
Demo: Team Foundation Server
Version Control
Continuous Integration Testing
with TFS Build Service
Using the Build Service for Continuous
Integration Testing
Create or edit a build definition
On Build triggers, set continuous integration
Create or Edit Build Definition
Access the Builds tab
from Team Explorer
Create a new build
or edit a new one
Set the build
definitions
Continuous Integration Trigger
Access the Trigger tab Select Continuous Integration
Gated Check-in
offers a stricter
check in policy
Demo: Continuous Integration
Testing with TFS Build Service
Case Study & Hands-on Exercises
Web Performance and Load
Testing
Web Performance and Load Testing
Record web performance tests
Add a load test
Run load test
Analyze test results
Web Performance Test
Create a web performance
and load test project
Record a web performance
test
Load Test (1)
Create a load
test
Choose a
load pattern
Add a test
mix
Plug the web
performance
test
Run the load
test
Analyze the
results of the
test
Load Test (2)
Create a load
test
Choose a
load pattern
Add a test
mix
Plug the web
performance
test
Run the load
test
Analyze the
results of the
test
Demo: Web Performance and
Load Testing
Case Study & Hands-on Exercises
References
Test-driven development - http://en.wikipedia.org/wiki/Test-driven_development
http://en.wikipedia.org/wiki/Continuous_integration
http://en.wikipedia.org/wiki/Extreme_programming_practices#Continuous_integration
Use Team Foundation Version Control - http://msdn.microsoft.com/en-
us/library/ms181237(v=vs.120).aspx
Unit Test - http://msdn.microsoft.com/en-us/library/dd264975.aspx
Build Service - http://msdn.microsoft.com/en-us/library/ms181709.aspx
Performance and load testing - http://msdn.microsoft.com/en-us/library/dn250793.aspx
Copyright (C) 2014. Allan Spartacus Mangune
This work is licensed under a Creative Commons Attribution-
NonCommercial-ShareAlike 4.0 International License.
License URL: http://creativecommons.org/licenses/by-nc-
sa/4.0/

Mais conteúdo relacionado

Mais procurados

CNIT 127: L9: Web Templates and .NET
CNIT 127: L9: Web Templates and .NETCNIT 127: L9: Web Templates and .NET
CNIT 127: L9: Web Templates and .NETSam Bowne
 
Automation testing of REST endpoints in a less coded way
Automation testing of REST endpoints in a less coded wayAutomation testing of REST endpoints in a less coded way
Automation testing of REST endpoints in a less coded wayAleh Struneuski
 
Dependency injection presentation
Dependency injection presentationDependency injection presentation
Dependency injection presentationAhasanul Kalam Akib
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha
 
Testing, a pragmatic approach
Testing, a pragmatic approachTesting, a pragmatic approach
Testing, a pragmatic approachEnrico Da Ros
 
POST/CON 2019 Workshop: Experts
POST/CON 2019 Workshop: ExpertsPOST/CON 2019 Workshop: Experts
POST/CON 2019 Workshop: ExpertsPostman
 
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)Sam Bowne
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)Sam Bowne
 
Automated testing in javascript
Automated testing in javascriptAutomated testing in javascript
Automated testing in javascriptMichael Yagudaev
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?Vincent Biret
 
Cypress test techniques cucumber bdd framework,tdd,api tests course
Cypress test techniques cucumber bdd framework,tdd,api tests courseCypress test techniques cucumber bdd framework,tdd,api tests course
Cypress test techniques cucumber bdd framework,tdd,api tests courseNarayanan Palani
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-AssuredMichel Schudel
 
Cody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_PosterCody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_PosterCody Zeng
 
Continuous Integration on AWS
Continuous Integration on AWSContinuous Integration on AWS
Continuous Integration on AWSPetar Petrov
 
Building reliable web applications using Cypress
Building reliable web applications using CypressBuilding reliable web applications using Cypress
Building reliable web applications using CypressMaurice De Beijer [MVP]
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerAndrew Siemer
 
Level Up Your Salesforce Unit Testing
Level Up Your Salesforce Unit TestingLevel Up Your Salesforce Unit Testing
Level Up Your Salesforce Unit TestingGordon Bockus
 

Mais procurados (20)

CNIT 127: L9: Web Templates and .NET
CNIT 127: L9: Web Templates and .NETCNIT 127: L9: Web Templates and .NET
CNIT 127: L9: Web Templates and .NET
 
Automation testing of REST endpoints in a less coded way
Automation testing of REST endpoints in a less coded wayAutomation testing of REST endpoints in a less coded way
Automation testing of REST endpoints in a less coded way
 
Dependency injection presentation
Dependency injection presentationDependency injection presentation
Dependency injection presentation
 
Background processing with hangfire
Background processing with hangfireBackground processing with hangfire
Background processing with hangfire
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Testing, a pragmatic approach
Testing, a pragmatic approachTesting, a pragmatic approach
Testing, a pragmatic approach
 
POST/CON 2019 Workshop: Experts
POST/CON 2019 Workshop: ExpertsPOST/CON 2019 Workshop: Experts
POST/CON 2019 Workshop: Experts
 
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
CNIT 129S: 9: Attacking Data Stores (Part 1 of 2)
 
31 days Refactoring
31 days Refactoring31 days Refactoring
31 days Refactoring
 
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
CNIT 129S: 12: Attacking Users: Cross-Site Scripting (Part 2 of 3)
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
Automated testing in javascript
Automated testing in javascriptAutomated testing in javascript
Automated testing in javascript
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
 
Cypress test techniques cucumber bdd framework,tdd,api tests course
Cypress test techniques cucumber bdd framework,tdd,api tests courseCypress test techniques cucumber bdd framework,tdd,api tests course
Cypress test techniques cucumber bdd framework,tdd,api tests course
 
Test your microservices with REST-Assured
Test your microservices with REST-AssuredTest your microservices with REST-Assured
Test your microservices with REST-Assured
 
Cody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_PosterCody_Zeng_HPE_Intern_Poster
Cody_Zeng_HPE_Intern_Poster
 
Continuous Integration on AWS
Continuous Integration on AWSContinuous Integration on AWS
Continuous Integration on AWS
 
Building reliable web applications using Cypress
Building reliable web applications using CypressBuilding reliable web applications using Cypress
Building reliable web applications using Cypress
 
Load testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew SiemerLoad testing with Visual Studio and Azure - Andrew Siemer
Load testing with Visual Studio and Azure - Andrew Siemer
 
Level Up Your Salesforce Unit Testing
Level Up Your Salesforce Unit TestingLevel Up Your Salesforce Unit Testing
Level Up Your Salesforce Unit Testing
 

Semelhante a Agile Tools

Automated Testing Tutorial
Automated Testing TutorialAutomated Testing Tutorial
Automated Testing TutorialJohn Liebenau
 
03 test specification and execution
03   test specification and execution03   test specification and execution
03 test specification and executionClemens Reijnen
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overviewAlex Pop
 
V Model in Software Testing
V Model in Software TestingV Model in Software Testing
V Model in Software TestingAbdul Raheem
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkinswalkerchang
 
justin presentation upload PPT june 19
justin presentation upload PPT june 19justin presentation upload PPT june 19
justin presentation upload PPT june 19techweb08
 
justin for ppt1 by browse button
justin for ppt1 by browse buttonjustin for ppt1 by browse button
justin for ppt1 by browse buttontechweb08
 
justin presentation Slideshare PPT upload June 25 Final one
justin presentation Slideshare PPT upload June 25 Final onejustin presentation Slideshare PPT upload June 25 Final one
justin presentation Slideshare PPT upload June 25 Final onetechweb08
 
upload ppt by browse button
upload ppt by browse buttonupload ppt by browse button
upload ppt by browse buttontechweb08
 
Justin Presentation PPT Upload June 25 adv
Justin Presentation PPT Upload June 25 advJustin Presentation PPT Upload June 25 adv
Justin Presentation PPT Upload June 25 advtechweb08
 
justin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCEDjustin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCEDtechweb08
 
justin presentation slideshare1
justin presentation slideshare1justin presentation slideshare1
justin presentation slideshare1techweb08
 
alka ppt test from13
alka ppt test from13 alka ppt test from13
alka ppt test from13 techweb08
 
alka ppt upload no code change
alka ppt upload no code changealka ppt upload no code change
alka ppt upload no code changetechweb08
 

Semelhante a Agile Tools (20)

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Automated Testing Tutorial
Automated Testing TutorialAutomated Testing Tutorial
Automated Testing Tutorial
 
03 test specification and execution
03   test specification and execution03   test specification and execution
03 test specification and execution
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
 
V Model in Software Testing
V Model in Software TestingV Model in Software Testing
V Model in Software Testing
 
Bug zillatestopiajenkins
Bug zillatestopiajenkinsBug zillatestopiajenkins
Bug zillatestopiajenkins
 
Automated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and JenkinsAutomated Testing Environment by Bugzilla, Testopia and Jenkins
Automated Testing Environment by Bugzilla, Testopia and Jenkins
 
Paper CS
Paper CSPaper CS
Paper CS
 
alkatest7
alkatest7alkatest7
alkatest7
 
justin presentation upload PPT june 19
justin presentation upload PPT june 19justin presentation upload PPT june 19
justin presentation upload PPT june 19
 
justin for ppt1 by browse button
justin for ppt1 by browse buttonjustin for ppt1 by browse button
justin for ppt1 by browse button
 
justin presentation Slideshare PPT upload June 25 Final one
justin presentation Slideshare PPT upload June 25 Final onejustin presentation Slideshare PPT upload June 25 Final one
justin presentation Slideshare PPT upload June 25 Final one
 
Paper Ps
Paper PsPaper Ps
Paper Ps
 
Paper Ps
Paper PsPaper Ps
Paper Ps
 
upload ppt by browse button
upload ppt by browse buttonupload ppt by browse button
upload ppt by browse button
 
Justin Presentation PPT Upload June 25 adv
Justin Presentation PPT Upload June 25 advJustin Presentation PPT Upload June 25 adv
Justin Presentation PPT Upload June 25 adv
 
justin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCEDjustin presentation upload PPT june 25 ADVANCED
justin presentation upload PPT june 25 ADVANCED
 
justin presentation slideshare1
justin presentation slideshare1justin presentation slideshare1
justin presentation slideshare1
 
alka ppt test from13
alka ppt test from13 alka ppt test from13
alka ppt test from13
 
alka ppt upload no code change
alka ppt upload no code changealka ppt upload no code change
alka ppt upload no code change
 

Último

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolsosttopstonverter
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptxVinzoCenzo
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 

Último (20)

Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
eSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration toolseSoftTools IMAP Backup Software and migration tools
eSoftTools IMAP Backup Software and migration tools
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Osi security architecture in network.pptx
Osi security architecture in network.pptxOsi security architecture in network.pptx
Osi security architecture in network.pptx
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 

Agile Tools

  • 2. Delivery • Lectures and demos – 3 hours • 3 case studies and hands-on exercises – 1 hour each
  • 3. Agenda Test-driven Development & Unit Testing Version Control & Continuous Integration Testing Web Performance & Load Testing
  • 4. Test-driven Development Similar to test-first practice in Extreme Programming Designed for product development with short iterations Write failing test code for desired functionality Write code to past the test Refactor code to desired coding standard
  • 5. Development Cycle Write a test Run all tests Write some code Run test Refactor Repeat
  • 6. Write A Test Write a failing unit test for each new functionality • The test must cover the requirements and how exceptions are handled in the software product Developer must have a correct understanding of the functionality • Refer to use case, domain models and details of the user story Write a test Run all tests Write some code Run test Refactor Repeat
  • 7. Run All Tests Ensures that the test harness is working and the new unit test actually fails • Pending the writing of correct program code Write a test Run all tests Write some code Run test Refactor Repeat
  • 8. Write Some Code Based on the new functionality to be developed, write the program code The objective is to code enough to pass the unit test • Any duplicate code at this point must be refactored later Write a test Run all tests Write some code Run test Refactor Repeat
  • 9. Run Test Run the test to verify that the written code passes the test unit test • If the test fails, review the code against specific requirements and test cases and make the necessary modification • Re-run the test Write a test Run all tests Write some code Run test Refactor Repeat
  • 10. Refactor When the code is passing the test, refactor to the desired standard • Code follows coding standard • No duplicate code • Make design changes to improve the overall maintainability of the system Rerun all the tests after refactoring • To ensure that all tests are passing Write a test Run all tests Write some code Run test Refactor Repeat
  • 11. Repeat Repeat the cycle. • Write a new unit test for a new functionality Each cycle should be very short • Few code edits and less that an hour • A long cycle may prompt the developer to resort to debugging Write a test Run all tests Write some code Run test Refactor Repeat
  • 12. Test Structure Arrange • Setup and initialize the desired state prior to testing Act • Execute the test against the method being tested Assert • Determines the outcome of the test [TestClass] public class HomeControllerTest { [TestMethod] public void Index() { // Arrange HomeController controller = new HomeController(); // Act ViewResult result = controller.Index() as ViewResult; // Assert Assert.IsNotNull(result); } …. }
  • 13. Fakes and Mocks Isolate code • Controls what is failing and where it is happening Replaces other parts of the system with stubs and shims • Stub - A class replacement with the same interface • Shim – Used to replace the actual method call with the fake ones
  • 14. Visual Studio Unit Test Explorer
  • 15. Unit Test Explorer Create and run a unit test Isolating Code Under Test with Microsoft Fakes
  • 16. Create and Run Unit Test (1) Create a test project Create a test class Create a test method against a functionality Run test
  • 17. Create and Run Unit Test (2) Create a test project Create a test class Create a test method against a functionality Run test
  • 18. Arrange, Act, Assert Arrange • Define the test input Act • Run the method under test Assert • Verify the result
  • 19. Demo: Visual Studio Unit Test Explorer
  • 20. Case Study & Hands-on Exercises
  • 21. Version Control Management of changes to source files Each change is marked with change set or revision number • A revision is made to one or more source files A change set is usually accompanied by a unique ID, timestamp, and the name of the person who committed the revision Changes to one or more source files can be reverted to specific version
  • 22. Continuous Integration Testing Continuous integration is a process wherein the development team continuously integrate their source files to a version control system • Allows the team to work on the latest version of the software • Delays due to late integration are avoided Use an automated build system to continuously run automated integration tests • Breaking changes are uncovered and fixed • Rules can be implemented to prevent source files that break the build from committed to the version control system Source Files Version Control Server Automated Build Server Build is broken
  • 24. Team Foundation Server Version Control (TFSVC) Manage multiple revisions to source files • Check-ins • Branching and merging • Shelving Contributor • Check out files • Check in modified or new files • Delete source files • Compare source files • Merge changes between files
  • 25. How to Use TFSVC? Set up development workspace Create the version control of your app’s solution files Create a new solution under version control Put an existing solution to the version control Contribute source files Isolate risks by branching from trunk Resolve version control conflicts
  • 26. Set up Development Workspace Access the Team Explorer in Visual Studio • Connect to a Team’s project Map the team’s project to a local folder • Developer’s PC Map the workspace to get the project’s source files
  • 27. Create the Version Control Access the Source Control Explorer and create the main trunk Check in files to the main trunk
  • 28. Create a New Solution Under Version Control Create a new project Add the project to a version control
  • 29. Put an Existing Solution to the Version Control Open your solution Access the solution’s property page and add the solution to TFSVC
  • 30. Contribute source files (changes) Access the pending changes in solution or project Relate change set to one or more work items Check in the pending changes. Adding comment helps
  • 31. Branching Manage simultaneous work of different teams from the same code base Merge changes from a branch to the main trunk
  • 32. Resolve Version Control Conflicts Conflicts are highlighted when checking in pending changes Access the Resolve Conflicts link Resolve conflicts by keeping local version, server version or merge conflicts
  • 33. Demo: Team Foundation Server Version Control
  • 35. Using the Build Service for Continuous Integration Testing Create or edit a build definition On Build triggers, set continuous integration
  • 36. Create or Edit Build Definition Access the Builds tab from Team Explorer Create a new build or edit a new one Set the build definitions
  • 37. Continuous Integration Trigger Access the Trigger tab Select Continuous Integration Gated Check-in offers a stricter check in policy
  • 38. Demo: Continuous Integration Testing with TFS Build Service
  • 39. Case Study & Hands-on Exercises
  • 40. Web Performance and Load Testing
  • 41. Web Performance and Load Testing Record web performance tests Add a load test Run load test Analyze test results
  • 42. Web Performance Test Create a web performance and load test project Record a web performance test
  • 43. Load Test (1) Create a load test Choose a load pattern Add a test mix Plug the web performance test Run the load test Analyze the results of the test
  • 44. Load Test (2) Create a load test Choose a load pattern Add a test mix Plug the web performance test Run the load test Analyze the results of the test
  • 45. Demo: Web Performance and Load Testing
  • 46. Case Study & Hands-on Exercises
  • 47. References Test-driven development - http://en.wikipedia.org/wiki/Test-driven_development http://en.wikipedia.org/wiki/Continuous_integration http://en.wikipedia.org/wiki/Extreme_programming_practices#Continuous_integration Use Team Foundation Version Control - http://msdn.microsoft.com/en- us/library/ms181237(v=vs.120).aspx Unit Test - http://msdn.microsoft.com/en-us/library/dd264975.aspx Build Service - http://msdn.microsoft.com/en-us/library/ms181709.aspx Performance and load testing - http://msdn.microsoft.com/en-us/library/dn250793.aspx
  • 48. Copyright (C) 2014. Allan Spartacus Mangune This work is licensed under a Creative Commons Attribution- NonCommercial-ShareAlike 4.0 International License. License URL: http://creativecommons.org/licenses/by-nc- sa/4.0/