SlideShare a Scribd company logo
ABOUT MYSELF 
Solutions Principal with Slalom Consulting 
(SharePoint Consulting Practice) having more 
than 10 years’ experience in system analysis, 
architecture, development and deployment of 
state-of-the-art IT solutions, working for diverse 
set of clients, including several of the largest 
financial institutions and supply management 
verticals in the US on Microsoft platform, with 
particular focus on implementing collaborative 
portal solutions utilizing SharePoint Products 
and Technologies. 
Do not Follow Me : @SanjivKSharma
NEW JERSEY SHAREPOINT USER GROUP 
• Different SharePoint discussions each 
month on various topics. Announced on 
meetup.com 
• Meets 4th Tuesday of every month 
• 6pm – 8pm 
• Microsoft Office (MetroPark) 
• 101 Wood Ave, Iselin, NJ 08830 
• http://www.njspug.com
THANK YOU 
EVENT SPONSORS 
• Diamond & Platinum sponsors 
have tables here in the Fireside 
Lounge 
• Please visit them and inquire 
about their products & services 
• Also to be eligible for prizes make 
sure to get your bingo card 
stamped
• What is TDD – Intro and Misguided 
• Challenges with SharePoint 
• Unit Test against SharePoint – How ? 
• Tool Required to Implement 
• Demo 
• Pros and Cons - Conclusion
Test-driven development (TDD) is a software 
development process that relies on the repetition of a 
very short development cycle: 
• First the developer writes an (initially failing) 
automated test case that defines a desired 
improvement or new function, 
• Then produces the minimum amount of code to pass 
that test, and 
• Finally refactors the new code to acceptable standards
• Red: Starting with a test, the test is red, because the 
production code doesn’t even exist 
• Green: From developing the test, it is clear what classes, 
fields and methods are required to satisfy the test. 
Production code is implemented until the test is green. 
Only the minimal implementation that turns the Unit 
Test to green shall be produced! No overhead code. 
• Refactor: After the expectations, expressed through the 
test have been met by the code, it is time to refactor and 
apply the “Software Engineering Principles”
Uncle Bob describing Test Driven Development in terms of 
three simple rules. They are: 
1. You are not allowed to write any production code unless 
it is to make a failing unit test pass. 
2. You are not allowed to write any more of a unit test than 
is sufficient to fail; and compilation failures are failures. 
3. You are not allowed to write any more production code 
than is sufficient to pass the one failing unit test. 
(http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd)
• No enough time to write the tests. 
• Testing isn’t my job, because ………….. 
• Unit tests don’t help me, because ………….. 
• There’s no need to test drive my code, because ………….. 
• Running the tests is a pain, because ………….. 
• I don’t like TDD, because ………….. 
• TDD sucks because …………..
This is a short (and certainly not complete) list of the 
benefits of TDD? 
• Minimizing the debugging time 
• Less bugs Better productivity 
• Improved code quality and confidence 
• Enables future enhancement by ensuring existing 
functionality is maintained (tests) 
• Enforces loose-coupling 
• Any finally … Code is always working 
• Need some up-front architecture decisions, certain types of artefact 
very difficult to back out once in production (e.g. list schema) 
• Tight integration with the underlying platform can make code 
inherently difficult to test
• Ready-Only Mentality 
• Most of the SharePoint API does not implement any interface 
Example: 
public static SPSite GetSiteObject(string url) 
{ 
//Option 1 - New Object 
return new SPSite(url); 
//Option 2 - From Current Context 
return SPContext.Current.Site; 
}
• Can be difficult to maintain discipline under pressure 
• Difficult in brownfield development 
• Difficult without management support
The usual suggestions provided by various MVPs: 
• Use the Model-View-Presenter (MVP) pattern to isolate your business logic 
from the user interface and the data source. 
• Implement interfaces for your view classes and your services (such as 
repository classes). 
• Can also use the Service Locator pattern to decouple your presenter class 
from specific implementations of the services that your presenter uses 
(such as your repository class). 
• Also you can use the any mocking framework to replace the calls to the 
SharePoint Object Model. 
• Some also have suggested to use a local installation of SharePoint, 
populate it with test data, and unit test against it.
Mocking Frameworks for SharePoint Development 
• TypeMock : Mocks sealed objects, static methods and internal constructors 
- required to access various SharePoint Objects 
Easy to learn, author and maintain API. 
Intuitive AAA (Arrange-Act-Assert) API. 
Professional customer support 
The price 
• Microsoft Fake (previously known as Microsoft Mole) : Mocks sealed 
objects and internal constructors - required to access various SharePoint 
Objects. 
Intuitive authoring with Behaved Types – 
Available on in VS Premium (in addition to Ultimate). 
For more info : http://blogs.msdn.com/b/bharry/archive/2013/01/30/announcing-visual-studio-2012- 
update-2-vs2012-2.aspx
SharePoint Timer Job: 
1.Get the Items from list where the “EmailDate” is less than 
today date. 
2.If the Retention Status is Email1/Email2  Send Email only 
3.If the Retention Status is "Archive" 
a.Send Final Email. 
b.Perform action on the document to delete or archive based 
on some metadata flag on some document property.
Pros: 
We have already discussed some benefits of the TDD, but 
Cons: 
• Lots of plumbing - More code and complex project structures 
• Negative and Positive - how far to go with this is hard to define e.g tests for 
invalid urls 
• People only test code they know works 
• People tend to use it as integration test rather than discrete unit tests 
• Bug learning Curve
Business Facing 
Technology Facing 
Supporting 
Team 
Critique Product 
Functional Tests 
Examples 
Story Tests 
Prototypes 
Stimulation 
Unit Tests 
Components Test 
Exploratory Tests 
Scenarios 
Usability Test 
User Acceptance Testing 
Alpha/Beta 
Performance and Load Testing 
Security Testing

More Related Content

More from SharePoint Saturday New Jersey

SharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 SlidesSharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 Slides
SharePoint Saturday New Jersey
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
SharePoint Saturday New Jersey
 
10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..
SharePoint Saturday New Jersey
 
Insights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint ApplicationsInsights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint Applications
SharePoint Saturday New Jersey
 
Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013
SharePoint Saturday New Jersey
 
Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013
SharePoint Saturday New Jersey
 
Anatomy of a mail app
Anatomy of a mail appAnatomy of a mail app
Anatomy of a mail app
SharePoint Saturday New Jersey
 
Exchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 IntegrationExchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 Integration
SharePoint Saturday New Jersey
 
Term Store Navigation
Term Store NavigationTerm Store Navigation
Term Store Navigation
SharePoint Saturday New Jersey
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
SharePoint Saturday New Jersey
 

More from SharePoint Saturday New Jersey (10)

SharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 SlidesSharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 Slides
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
 
10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..
 
Insights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint ApplicationsInsights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint Applications
 
Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013
 
Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013
 
Anatomy of a mail app
Anatomy of a mail appAnatomy of a mail app
Anatomy of a mail app
 
Exchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 IntegrationExchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 Integration
 
Term Store Navigation
Term Store NavigationTerm Store Navigation
Term Store Navigation
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 

Recently uploaded

Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
ssuserad3af4
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 

Recently uploaded (20)

Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 

SharePoint Development Tips and Ticks using TDD

  • 1. ABOUT MYSELF Solutions Principal with Slalom Consulting (SharePoint Consulting Practice) having more than 10 years’ experience in system analysis, architecture, development and deployment of state-of-the-art IT solutions, working for diverse set of clients, including several of the largest financial institutions and supply management verticals in the US on Microsoft platform, with particular focus on implementing collaborative portal solutions utilizing SharePoint Products and Technologies. Do not Follow Me : @SanjivKSharma
  • 2. NEW JERSEY SHAREPOINT USER GROUP • Different SharePoint discussions each month on various topics. Announced on meetup.com • Meets 4th Tuesday of every month • 6pm – 8pm • Microsoft Office (MetroPark) • 101 Wood Ave, Iselin, NJ 08830 • http://www.njspug.com
  • 3. THANK YOU EVENT SPONSORS • Diamond & Platinum sponsors have tables here in the Fireside Lounge • Please visit them and inquire about their products & services • Also to be eligible for prizes make sure to get your bingo card stamped
  • 4. • What is TDD – Intro and Misguided • Challenges with SharePoint • Unit Test against SharePoint – How ? • Tool Required to Implement • Demo • Pros and Cons - Conclusion
  • 5. Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: • First the developer writes an (initially failing) automated test case that defines a desired improvement or new function, • Then produces the minimum amount of code to pass that test, and • Finally refactors the new code to acceptable standards
  • 6. • Red: Starting with a test, the test is red, because the production code doesn’t even exist • Green: From developing the test, it is clear what classes, fields and methods are required to satisfy the test. Production code is implemented until the test is green. Only the minimal implementation that turns the Unit Test to green shall be produced! No overhead code. • Refactor: After the expectations, expressed through the test have been met by the code, it is time to refactor and apply the “Software Engineering Principles”
  • 7. Uncle Bob describing Test Driven Development in terms of three simple rules. They are: 1. You are not allowed to write any production code unless it is to make a failing unit test pass. 2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures. 3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test. (http://butunclebob.com/ArticleS.UncleBob.TheThreeRulesOfTdd)
  • 8. • No enough time to write the tests. • Testing isn’t my job, because ………….. • Unit tests don’t help me, because ………….. • There’s no need to test drive my code, because ………….. • Running the tests is a pain, because ………….. • I don’t like TDD, because ………….. • TDD sucks because …………..
  • 9. This is a short (and certainly not complete) list of the benefits of TDD? • Minimizing the debugging time • Less bugs Better productivity • Improved code quality and confidence • Enables future enhancement by ensuring existing functionality is maintained (tests) • Enforces loose-coupling • Any finally … Code is always working 
  • 10. • Need some up-front architecture decisions, certain types of artefact very difficult to back out once in production (e.g. list schema) • Tight integration with the underlying platform can make code inherently difficult to test
  • 11. • Ready-Only Mentality • Most of the SharePoint API does not implement any interface Example: public static SPSite GetSiteObject(string url) { //Option 1 - New Object return new SPSite(url); //Option 2 - From Current Context return SPContext.Current.Site; }
  • 12. • Can be difficult to maintain discipline under pressure • Difficult in brownfield development • Difficult without management support
  • 13. The usual suggestions provided by various MVPs: • Use the Model-View-Presenter (MVP) pattern to isolate your business logic from the user interface and the data source. • Implement interfaces for your view classes and your services (such as repository classes). • Can also use the Service Locator pattern to decouple your presenter class from specific implementations of the services that your presenter uses (such as your repository class). • Also you can use the any mocking framework to replace the calls to the SharePoint Object Model. • Some also have suggested to use a local installation of SharePoint, populate it with test data, and unit test against it.
  • 14. Mocking Frameworks for SharePoint Development • TypeMock : Mocks sealed objects, static methods and internal constructors - required to access various SharePoint Objects Easy to learn, author and maintain API. Intuitive AAA (Arrange-Act-Assert) API. Professional customer support The price • Microsoft Fake (previously known as Microsoft Mole) : Mocks sealed objects and internal constructors - required to access various SharePoint Objects. Intuitive authoring with Behaved Types – Available on in VS Premium (in addition to Ultimate). For more info : http://blogs.msdn.com/b/bharry/archive/2013/01/30/announcing-visual-studio-2012- update-2-vs2012-2.aspx
  • 15.
  • 16.
  • 17. SharePoint Timer Job: 1.Get the Items from list where the “EmailDate” is less than today date. 2.If the Retention Status is Email1/Email2  Send Email only 3.If the Retention Status is "Archive" a.Send Final Email. b.Perform action on the document to delete or archive based on some metadata flag on some document property.
  • 18. Pros: We have already discussed some benefits of the TDD, but Cons: • Lots of plumbing - More code and complex project structures • Negative and Positive - how far to go with this is hard to define e.g tests for invalid urls • People only test code they know works • People tend to use it as integration test rather than discrete unit tests • Bug learning Curve
  • 19. Business Facing Technology Facing Supporting Team Critique Product Functional Tests Examples Story Tests Prototypes Stimulation Unit Tests Components Test Exploratory Tests Scenarios Usability Test User Acceptance Testing Alpha/Beta Performance and Load Testing Security Testing