Upload
jbonnet
View
1.888
Download
1
Tags:
Embed Size (px)
DESCRIPTION
How to use BDD techniques and tools to test the integration of multiple systems
Citation preview
Behave yourself!Taming the wild, wild multiple system integration using RSpec, Cucumber & Friends
José Bonnet, Business Support Systems/Customer Processes, PT Inovação, S.A.
25th & 26th June 2010
This document is part of the Intellectual Property of PT Inovação and cannot be reproduced or used without an explicit and written authorization
Page 03 Who are we and what do we do?09 What’s the problem?10 What’s the proposed solution?31 Doubts and Conclusions
Agenda
2 © 2010 Portugal Telecom Inovação, S.A.
3
!"#$#%!"#$###%
&#'(%)*"+*%
!(",(%"$"##$###%
!(",-.#/%
0$1'(#%%$"##$###%
#'/#23#%&'$(##$###%
4#""(3(1%
5"#1$/%(!$###$###%
5"#1$/%
67(%8(9:%)#$###%
67(%8(9:%*%!";23$<*%
=#'("(2*%&$(##$###%
5(,1>#2#%
?;/$%'"#$###%
8$9("%0*1,*%
0$1'(#%&$"##$###% 0$1'(#%
'##$###% 0$1'(#%!##$###%
*+,-./+012+/34560789:5,;<0=0''0
>+?@5,A0BC+,9?5,<=0&&0
DE>1F<0G0H5IJ,96K<0=0&0G0L0
DE>BF<0=0&0
0$1'(#%'##$###%
© 2010 Portugal Telecom Inovação, S.A.
http://www.ptinovacao.pt/
No fence sitting!
4 © 2010 Portugal Telecom Inovação, S.A.
Be creative!5© 2010 Portugal Telecom Inovação, S.A.
Be
flex
ible
!
6
© 2010 Portugal Telecom Inovação, S.A.
Be agile!
“It’s not the big that eat the small, it’s the fastest that eat the slow” Jason Jennings, Laurence Haughton
© National Geographic
! " # !" "# !# !"# $
CORPORATE SALES MANAGEMENTCAMPAIGN MANAGEMENTCAMPAIGN ANALYTICSCAMPAIGN DESIGNLEAD GENERATION
TM FORUM APPLICATIONS FRAMEWORK (TAM)
THE BSS/OSS SYSTEMS LANDSCAPE RELEASE 3.0
MARKET / SALES MANAGEMENT
AMDOCS > CUSTOMER EXPERIENCE SYSTEMS INNOVATION
For the TM Forum Application Framework refer to the TM Forum document GB929 v3.0 at www.tmforum.org. An electronic copy of this poster is available at http://www.amdocs.com/public/TAM3.0.pdf. TAM poster design © Amdocs. TAM content © TM Forum 2008.
PRODUCT MANAGEMENTPRODUCT/SERVICE CATALOG MANAGEMENT
> Product Offering Structure Data Model> Product Instantiation> Product Components Maintenance> Components Reuse> Product to External Functions View Mgmt.> Components Relations Management
> End-toEnd Product Data Management> Service Logical Representation Management> Components to Services and Resources Relationship Management
AP
PLIC
ATIO
N IN
TEG
RA
TION
INFR
ASTR
UC
TUR
E
CO
MM
ON
CO
MM
UN
ICA
TIO
NS
- EN
TE
RP
RIS
E A
PP
LIC
AT
ION
INT
EG
RA
TIO
NB
US
INE
SS
PR
OC
ES
S M
AN
AG
EM
EN
T &
WO
RK
FL
OW
PRODUCT STRATEGY / PROPOSITION MGMT.> Strategy Delivery Project Management> Strategy Performance Reporting
> Strategy Capturing and Management> Proposition Organization> Link Strategy to Propositions> Link Propositions to Products
OPERATIONS SUPPORT & READINESS FULFILLMENT ASSURANCE BILLING
SERVICE MANAGEMENT
RESOURCE MANAGEMENT
> Product Campaign Tracking> Product Revenue Reporting> Product Cost Reporting> Product Capacity Analysis
> Product Cost Management> Product Inventory Optimization> Product Sourcing Determination
PRODUCT PERFORMANCE MANAGEMENT> Model Products> Provide Detailed Product Specifications> Introduce New Products> Solicit Product Requirements
> Manage Existing Products> Obsolesce/Retire Products> Implement Marketing & Offer Strategies
PRODUCT LIFECYCLE MANAGEMENT
SERVICE QUALITY MONITORING &IMPACT ANALYSIS
> Monitor Service Quality> Analyze Service Quality
> Improve Service> Identify & Report Service Constraints
SERVICE ORDER MANAGEMENTSERVICE CONFIGURATION MANAGEMENT> Service Parameters Allocation> Service Parameters Reservation> Update Service Inventory> Compose a Service Configuration Plan> Service Configuration> Cross Service Dependencies
SERVICE ACTIVATION MANAGEMENT> Plan Service Activation> Service Configuration Activation> Activation Notifications> Update Information in Service Inventory
SERVICE AVAILABILITY> Service Address Validation> Service Availability Validation> Service Termination Points Dertermination> Determination of Access Provider> Determination of Delivery Interval.
SERVICE DATA COLLECTION
SERVICE ORDER VALIDATION
SERVICE DESIGN/ASSIGN> Design Solution> Assign/Procure Network Resources> Procure Access> Procure CPE
SERVICE ORDER PUBLICATION
SERVICE ORDER ORCHESTRATION> Product/Service Order Decomposition> Service Order Tracking & Management
RESOURCE PROCESS MANAGEMENT
REAL-TIME BILLING MEDIATION
BILLING DATA MEDIATION
VOUCHER MANAGEMENT
> CDR Formatting, Mediation & Correlation> IP & IPCDR Formatting / Mediation / Correlation
> Wholesale Partner Gateways> CDR/IPCDR Pre-Processing / Rating
> Acquisition and Validation of Events> Common Event Record Formatting> Customer Identification and Event Routing
> Communication with the Session Control Device> Communication with the Rating Engine
> Voucher Ordering> Definition and Creation of Packages and Tentative Vouchers> Pin Generation and Encryption
> Pairing of Serial Numbers with PINs> Sending of the Order File to the Manufacturer> Voucher Distribution to Dealers
ENTERPRISE MANAGEMENTREVENUE ASSURANCE MGMT. HR MANAGEMENT FINANCIAL MANAGEMENT ASSET MANAGEMENT SECURITY MANAGEMENT KNOWLEDGE MANAGEMENT
> Data Management Acquisition> Data Transformation & Remodeling> Data Cleansing> Data Integration> Data Warehousing
ENTERPRISE INFORMATION APPLICATIONS> Business Intelligence Application> Generation of Event Triggers> Marketing and Campaign Management Support> Meta Data Repository
SUPPLIER / PARTNER MANAGEMENTSUPPLY CHAIN MANAGEMENT WHOLESALE/INTERCONNECT BILLING APPLICATION
> Reference Data Creation & Management> Products and Services Definition> Partners’ Accounting> Partners’ Business Event Processing> Error Management> Partner Invoice Management
> Settlement Management> Handling of Payment> Disputes Management> Monitoring Tools> Payment Tracking
PARTNER MANAGEMENT> Partner Definition and Hierarchy Management> Agreement Definition> Direct and Indirect Settlement> Real-Time Settlement> Drill Down Reconciliation
> Partner Event Processing and Revenue Share Accounting> Partner Payment Handling> Pre-Defined Revenue Sharing Agreements and Variation Rules
SLA MANAGEMENT> SLA Metrics Calculation> SLA Alarms Handling> Charge/Settlement Adjustment Notification> Collate Historical SLA Information
> Operational Level to SLA Metric Comparison> KPIs and KQIs Collection> Analyze Historical SLA Information
> Sla Alarms Reporting> Update Datawarehouse with Sla Statistics
SERVICE PROBLEM MANAGEMENT> Problem Reception> Trouble Ticketing> Problem Consolidation> Closure> Allocating Priority> Reporting> Updating Billing Systems
> Advising the Network Operations Center> Tasks Allocation> Tracking Progress> Advising the Customer Resource Management Systems (CRM)> Confirming When Impact has been Removed
> Updating Configuration Management Systems> Updating Inventory Management Systems> Advising any other OSS/ Systems as Needed> Confirming when Fix has been Completed
> Detection of Data Discrepancies> Detection of Data Integrity & Correctness Problems> Rating & Billing Verification> Investigation of Revenue Leakages> Grouping & Classification of Leakages
> Equipment and System Testing> Trouble Reports and Alarms> Automation of Revenue Assurance Controls & Data Collection> Automation of Leakages correction> Generation of Revenue Leakage Reports and Documentation
> Job Aides> Product Support
SALES AIDS
FRAUD MGMT.
SERVICE INVENTORY MANAGEMENT> Service Inventory Retrieval> Service Inventory Update Notifications
> Service Inventory Update> Service Inventory Reconciliation
> Service Inventory Information Model
SERVICE SPECIFICATION MANAGEMENT
> Short-Term Performance Repository> Input to Service Planning & Forecasting Applications> Identification of Service Related Problems> Historical Trending> Service Performance “Dashboard”
> Collection of Service Performance Data> Map the Performance Data to Service Topology> Calculate Service Related KPIs, KQIs> Long-Term Performance Archive> Service Triage/Testing
SERVICE PERFORMANCE MANAGEMENT
CUSTOMER SELF MANAGEMENTCUSTOMER INFORMATION MANAGEMENT> Customer Name> Contact Persons for this Customer> Account Managers for this Customer> Customer’s Interactions History> Customer Addresses> Customer Contact Phone Numbers
> Customer Organizational Hierarchy> Customer’s Billing Accounts> Customer’s Products/Services> Customer’s Orders History> Customer’s Trouble Tickets History
CUSTOMER QoS/SLA MANAGEMENTCUSTOMER ORDER MANAGEMENTCUSTOMER ORDER ESTABLISHMENT> Channel Guidance and Data Capture> Customer & Product Data Collection> Product Offering Availability> Customer Order Validation
CUSTOMER ORDER PUBLICATION
CUSTOMER ORDER ORCHESTRATION> Customer Order Distribution> Customer Order Tracking & Mgmt.
CUSTOMER ORDER LIFECYCLE MGMT.> Pending Orders Maintenance> Order Versioning Maintenance> Tracking & Logging> Order Change Management> Order Cancelation> Ordering Business Rules> Ordering Activity Governance
> Measure Perceived QoS> Document Conractual SLA Obligation
> Manage QoS/SLA Violation > Manage Reporting
> Verify Customer Relationship> Bill Capture and Notification> Customer’s SLA’s Verification> Problem Reception> Evaluate & Qualify Problem
> Plan & Assign Resolution> Track & Manage Resolution> Close & Report> Billing Systems Update> Advising Other OSS Systems
CUSTOMER SELF EMPOWERED BILLING> Bill View> Unbilled Charges View> Usage View> Payment Capture> Dispute Capture and Resolution> Usage and Charges Comparison> Penalties View> Address Book Driven Usage View> Split Statement for Demarcation Between Calls
> Calls Assignment for Classification of Usage> Corporate Customer Support> Reports on Usage and Charges
CUSTOMER SELF EMPOWERED ASSURANCE> Account Management> Self Registration to Online Services> Service Requests Management> Service Requests Submission> Service Request Amendment> Service Request Closure> Users Management> Alert and Notifications Setting> Address Book Management
> Access to Call Center Agents> Service Requests and SLA Reporting> Corporate Customers Support
CUSTOMER SELF EMPOWERED FULFILLMENT> Product Catalogue and Offerings Browsing> Guided Selling Driven View for Offer Eligibility> Shopping Cart Driven Order Management> Assigned Products Maintenance> Rate Plans Amendment> Alerts and Notifications Setting> Knowledge Management Access> Access to Call Center Agents> Reports on Fulfillment and SLA Aspects> Corporate Customers Support
COMPENSATION & RESULTS
CAMPAIGN EXECUTION & REFINEMENT
CAMPAIGN PERFORMANCETRACKING
CUSTOMER/PROSPECT DATA ACQUISITIONCUSTOMER QUALIFICATION> Customer Credit Eligibility> Product & Service Availability
MASS MARKET SALES WORKFLOW MGMT.OFFER MANAGEMENTSALES NEGOTIATIONMASS MARKET SALES REPORTING &TRACKING
MASS MARKET SALES MANAGEMENT
SALES PORTALS
> Contract Workflow> Design/Price/Propose Workflow> Sales Workflow
CORPORATE SALES WORKFLOW MGMT.
> Design> Price
SOLUTION MANAGEMENT
TRANSACTIONAL DOCUMENT PRODUCTIONDOCUMENT ARCHIVING
> Compression and Storage of Transactional Document Data> Retrieval Mechanisms for External Systems> Archive Maintenance and Administrative Functions
CUSTOMER SERVICE / ACCOUNTPROBLEM RESOLUTION
RESOURCE ORDER TRACKING & MGMT.> Resource Order Tracking> Jeopardy Tracking> Resource Order Completions> Dependencies Management> Status Reporting
RESOURCE ORDER ORCHESTRATION
RESOURCE ORDER VALIDATION
RESOURCE ORDER DATA COLLECTION
RESOURCE AVAILABILITY> Resource Address Validation> Resource Availability Validation> Resource Feasibility Validation> Establishment of Service Termination Points> Determination of Delivery Interval
RESOURCE ORDERCONFIGURATION MANAGEMENT> Resource Parameters Allocation> Resource Parameters Reservation> Update of Resource Inventory> Compose A Resource Configuration Plan> Resource Configure> Cross Resource Considerations
RESOURCE ORDER PUBLICATION
CUSTOMER MANAGEMENT
CUSTOMER SERVICE REPRESENTATIVE TOOLBOX
CUSTOMER CONTACT, RETENTION & LOYALTYVERIFY CUSTOMER RELATIONSHIP ANALYZE & MANAGE CUSTOMER RISK
VALIDATE CUSTOMER SATISFACTION
INTERACTION MANAGEMENT BUILD CUSTOMER INSIGHT PERSONALIZE CUSTOMER PROFILE FOR RETENTION & LOYALTY
CSR ASSURANCE BILLING INQUIRY DISPUTE & ADJUSTMENT MANAGEMENTCSR FULFILLMENT> Product Catalogue & Offerings Browsing> Order Capture & Negotiation> Assigned Products Maintenance> CSR Access to A Specific Order> Business/Financial/Operational Reporting> Error Resolution> Jeopardy Notifications> Order Take-Over & Relinquish> Orders Administration
> Price/Cost Optimization> Propose
CONTRACT MANAGEMENT> Contract Generation> Contract Implementation> Contract Storage
FUNNEL & LEAD MANAGEMENT> Funnel Management> Sales Account Management> Lead Management
CUSTOMER SALES PORTALS INDIRECT SALES PORTALSINTERNAL SALES PORTALSCOMPENSATION RESULTS REPORTING
> Work Flow and Rules Engine Testing> Auto and Manual Test Initiation> Life Cycle Management Testing
> Head Management Test> Manage Test Head Resources Capacity> Manage Test Head Availability
RESOURCE TESTING MANAGEMENT> Element and Test Head Command and Control> Test Results Management> Test Results Interpretation
RESOURCE ASSURANCE MANAGEMENT
> Network Topology Modeling> Network Topology Monitoring> Protection/Rerouting Policy> Resource Load Monitoring> Application Keep-Alive Monitoring
> Threshold Policy Modeling> Automatic Workforce Control> Resource Status Alarm Handling> Resource Status Alarm Logging
RESOURCE STATUS MONITORING
> Alarm Correlation > Root Cause Analysis
CORRELATION & ROOT CAUSE ANALYSIS
> Distributed Meta Model of the Configurable Resources> Distributed Meta Model of Expected Resource Load> Process Driven Workforce Coordination
> Mediation Layer to Support Interaction of Diverse Applications> Directory-Based Profiles
FAULT STATUS MONITORING
> Event Management> Trouble Ticket Creation> Auto and Manual Ticket Initiation> Outage Classification and Prioritization> Problem Tracking / History> Ticket Workflow and Notification> Problem Workflow> Personnel Utilization and Interface to Work Force Management
> Knowledge Management> Resolution Identification, Tracking and Confirmation> MTTR and Uptime Measurements> Problem Trending and Identification of Design Flaws or Hot Spots> Feedback to Customer: Service Status, Trouble Status, Network Bulletins> Business Rules Management
RESOURCE PROBLEM MANAGEMENT APPLICATIONS
> Resource Performance Data Collection> Resource Topology Status Data Collection> Business Rules> Cross NE and Layer Data Mediation> Long-Term Performance Archive> Short-Term Performance Repository> Input to Capacity Planning and Forecasting Applications> Input to Resource Problem Management Applications
> Historical Trending> Capacity and Configuration Problem Identification> Problem Triage and Testing> Utilization Trending> Capacity/load Management> Performance “Dashboard”
RESOURCE PERFORMANCE MANAGEMENT
SLA METRIC MANAGEMENT
TRAFFIC MANAGEMENT
RESOURCE INVENTORY MANAGEMENT APPLICATIONS> Resource Inventory Information Model> Resource Inventory Retrieval
> Inventory Update Notifications > Resource Inventory Update> Resource Inventory Reconciliation
> Scheduling> Forecasting
WORKFORCE MANAGEMENT APPLICATIONS> Dynamic Management> Operational Support
> Provides the Orchestration Between Planning Duties and Manual Network Engineering Activities> Interfaces to Workforce Management
RESOURCE CHANGE MANAGEMENT> Supports Interface to Financial Control to Authorize Expenditure> Supports Links to Vendors ERP> Provide Jeopardy Management
> Support Project Management of Build Projects> Coordinate Project Activities With the Suppliers> Support Collaborative Project Management Across Business Boundaries
JEOPARDY MANAGEMENT
RESOURCE ASSURANCE PROCESS ORCHESTRATION
TRANSACTIONAL DOCUMENTFORMATTER> Bills and Letter Template Formatting> Template Usage Business Rules> Input Data Source Definition> Input Binding Rules to Template> Resource Template Definition
DOCUMENT DELIVERY
> Single Sign-On > Centralized Data Entry > Customer Information Dashboard > In-Context, Configurable, Workflow-Driven Navigation > CSR Guidance > Conversational Scripting > Embedded Actions > Launch In-Context Common Actions
CHANNEL SALES MANAGEMENT> Create and Promote Leads > Create and Promote Contacts > Literature Dispatching > Lead Management > Sales Quotation
DIRECT SALES FORCE> Opportunities Dispaching> Sales Quotes Dispatching> Forecast Analysis> Opportunity & Quote Mgmt.> Territory Management
> Action Items and Follow Ups> Holistic Customer View> Order Capture, Negotiation and Activation> Order Tracking Capabilities> Multi Media Integration> Cross Sell/Up Sell recommendations> Scripting
TELESALES> Customer Information Management> Contact and Retention Management> Order Capture and Negotiation> Problem Resolution> Self Service Kiosk> Agent Portable Device Support> Retail Store Integration
RETAIL OUTLET VIRTUAL NETWORK OPERATORS> Customer Information Management> Contact and Retention Management> Order Capture and Negotiation> Billing Management Activities> Receivables and Collection Activities> Problem Resolution> Data Fencing> VNO Personalization
> Mass Service/Product Activation> Mass Transaction Feed of New Orders> Activation of Service / Product Sold by Affiliate> Registration of Pre Activated Service / Product
AFFILIATES
> Customer Acquisition> Upgrade Customer’s Products /Services
DEALERS
ONLINE CHARGING> Real-time Rating> Service-Consumption Reservation and Authorization> Use of Customer Billing Hierarchy> Advice of Charge/Advice of Rate> Balance Management> Balance Management Policies> Balance Management Operations> Real-Time Charging
Non-Functional Aspects:> Multi-Session Support> Pre-paid/Post-Paid Convergence> High Availability> Low Latency> High Throughput
BILLING INQUIRY, DISPUTE &ADJUSTMENT MANAGEMENT
BILL INQUIRY> Balance, statement> List all invoices> View exact bill image> List all charges per invoice
RECEIVABLES MANAGEMENTA/R MANAGEMENT> Invoice Charges From Billing> Payment Management> Financial Account Management> Bill Preparation.
JOURNALIZATION
FINANCIAL REPORTING
COLLECTION MANAGEMENTCOLLECTION POLICY DEFINITION AND CONFIGURATION> Collection Flows Creation > Collection Rules Definition
> Collection Decision Engine > Collection Execution Monitoring> Collection Treatment Management > Manual Intervention
> Build Payment Plan > Payment Plan MonitoringCOLLECTION SETTLEMENT
COLLECTION POLICY EXECUTION AND MONITORING
BILL CALCULATION> Split Bill Charge and Event Distribution> Support Flexible Bill Cycle Definition> Discounts and Promotions> Taxes Requirements and Exemptions> Contract Commitment Tracking> Incorporate Payments, Adjustments, and Other Financial ActivityDISCOUNTS CALCULATIONTAX APPLYINGCOMMITMENT TRACKING
CUSTOMER BILL CHARGE CALCULATION> Recurring > One time > Usage
MANAGE BILL CYCLE RUN
QUOTATION ENGINE> Order Components> Customer information> Rating Schemes> Market Rating Rules
BILLING ACCOUNT MANAGEMENTBILLING ACCOUNT ASSOCIATIONS MANAGEMENT> Price Plan Determination> Shared Allowances Community> Charge Distribution to Pay Means
BILLING ACCOUNT CONFIGURATION MANAGEMENT
> Replenishment Relations> Reporting> Billing Statement Association> Charges Association to Billing Account
PRODUCT / SERVICE RATING> Charge Calculation> Charge Level Discounts And Taxes> Arbitrary Mathematical Rating> Pro Rating of Recurring Charges> Rerating> Flexible Accumulators of Usage Data
> Threshold Notifications> Advice of Charge> Advice of Rate
Non Functional Aspects: High ThroughputSmall Changes Precision
RESOURCE DOMAIN MANAGEMENTRESOURCE DISCOVERY RESOURCE ACTIVATION APPLICATIONS
> Update the Resource Instance to Perform the Activation or Deactivation> Update the Resource to Activate Billing Data Collection> Notify Resource Provision/Control of Activation Status> Update Resource Inventory with Resource Status Information> Queued/Scheduled Activation Requests
OSS INVENTORY / DATA SYNCHRONIZATION MANAGEMENT
> Configuration Validation and Rollback> Manage Dependencies Within, and Across Network Elements Through Rules> Multi-vendor and Multi-Technology Activation> Multiple NE Activation Coordination> Confirm / Identify Available Resources
TRANSACTIONAL DOCUMENT GENERATOR
> Document Information Formatting> Marketing Information Incorporating> Apply Regional Requirements> Legend Formatting> Send to Downstream Interface PAYMENT
> Immediate Payment of Balance/Specific Invoice > Prepaid Recharge
COLLECTION> Collection Inquiries> Perform Manual Collection Activities> Payment Arrangement Settlement with the Customer
> Issue Write-Offs> Manual Intervention in Collection Treatment> Collection Agent Reassignment
DISPUTE MANAGEMENT
> View unbilled charges> Generate bill on demand> View usage summary and details
ADJUSTMENTS
RESOURCE ORDER MANAGEMENT
PROTOCOL MANAGEMENT
RESOURCE FAULT & PERFORMANCE DATA MEDIATION
> Parsing of Data from One Format to Another> Correlation
> Pattern Recognition> Tools to Set Up and Maintain Parsing Rules
> What-If Configurations and Modeling> Real World Modeling> Controls Manual Installation Tasks> Interface with Configuration or Inventory Applications> Multi-Layer Modeling and Design
RESOURCE DESIGN/ASSIGN APPLICATIONS> Physical, Logical, and Software Resources Design> Graphical Resource Presentation> End-To-End Resource Design> Architecture Modifications to Include Resources or Changes> New Technology and New Resource Designs
RESOURCE LIFECYCLE MANAGEMENT> Resource Configuration Verification Versus Design> Resource Topology Verification Versus Inventory Mgmt. Systems
RESOURCE COMMISSIONING & CONFIGURATION MANAGEMENT> Resource Commissioning Process> Resource Configuration Management> Resource Configuration Logs
> Record Location of Spares> Record Commercial Information> Support Retrieval, Update, Update Notifications & Reconciliation
SPARES & WAREHOUSE INVENTORY MANAGEMENT> Database of All Spares> Barcode/RFID tracking of All Spares Resources> Record Location of Spares
> Network Asset Deployment Workflow> Resource Supply Chain Management> Resource Distribution> Resource Planning (Capacity)> Workforce Management> Resource Problem Management (Fault Management)> Resource Needs Identification
RESOURCE LOGISTICS> Resource or Kit Distribution> People + Part + Event Coordination> Stock Balancing> Warehouse Stock Level Projections> Engineering Work Order Management> Engineering Project Management
IMPLEMENTATION PLANNING> Implement Tactical Plans Locally> Provide Physical Implementation Information> Identify Shortfalls in Physical Infrastructure
RESOURCE SPECIFICATION MANAGEMENT
CAPABILITY SPECIFICATION MANAGEMENT
TACTICAL PLANNING> Implementing Strategic plans at All Technology Layers> Support Network Rearrangement> Remedial Relocation of Network Capacity in Response to Unpredicted Demand> Detailed Design and Implementation of Interconnect with Other Operators> Reactive Planning for Fulfillment> Reactive Planning for Fault Mgmt.> Reactive Planning for Performance Management
PLANNING DESIGN AUTOMATION> Applies Algorithmic and Heuristic Analysis of the Network> Use Generalized Capability View of the Network> Support Forecasting Functionality
STRATEGIC PLANNING> Analyze Demand Forecasts and Utilization Trends> Determine Optimum Network Deployments> Support Strategic Network Sizing Decisions> Support Strategic Data Centre locations, Sizing, Interconnectivity and Resilience> Determine the Role of Different Technologies in the Network.> Determine Network vendors, Devices and Configuration> Selection of Application Server Vendors and Infrastructure Applications> Specify the Generalized Resource Device and Technology Requirements> Support Radio Spectrum Allocation> Determining Interconnect Sites and Capacity to Other CSPs> Support Partner Management with Volume Requirement
8
AOMACH
OCS
ASE
CIS
BIS APM OMG
VTS
Other systems
Other systems
9 © 2010 Portugal Telecom Inovação, S.A.
Other systems
Other systems
9 © 2010 Portugal Telecom Inovação, S.A.
PT Inovação’s BSS offer
10
Behaviour-Driven Development
© 2010 Portugal Telecom Inovação, S.A.
Test Driven DevelopmentDomain Driven DesignAcceptance Test Driven Planning
http://behaviour-driven.org/
11 © 2010 Portugal Telecom Inovação, S.A.
12
Stories
© Tim Burton
13
What’s in a story?Title (one line describing the story) Narrative:As a [role]I want [feature]So that [benefit] Acceptance Criteria: (presented as Scenarios) Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]... Scenario 2: ...
© 2010 Portugal Telecom Inovação, S.A.
http://blog.dannorth.net/whats-in-a-story/
13
What’s in a story?Title (one line describing the story) Narrative:As a [role]I want [feature]So that [benefit] Acceptance Criteria: (presented as Scenarios) Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]... Scenario 2: ...
describe an activity
© 2010 Portugal Telecom Inovação, S.A.
http://blog.dannorth.net/whats-in-a-story/
13
What’s in a story?Title (one line describing the story) Narrative:As a [role]I want [feature]So that [benefit] Acceptance Criteria: (presented as Scenarios) Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]... Scenario 2: ...
© 2010 Portugal Telecom Inovação, S.A.
http://blog.dannorth.net/whats-in-a-story/
include a role, a feature and a benefit
13
What’s in a story?Title (one line describing the story) Narrative:As a [role]I want [feature]So that [benefit] Acceptance Criteria: (presented as Scenarios) Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]... Scenario 2: ...
© 2010 Portugal Telecom Inovação, S.A.
http://blog.dannorth.net/whats-in-a-story/
scenario title: say what’s different
described in terms of Givens, Events and Outcomes
describe the feature
givens should define all of, and no more than, the required context
13
What’s in a story?Title (one line describing the story) Narrative:As a [role]I want [feature]So that [benefit] Acceptance Criteria: (presented as Scenarios) Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]... Scenario 2: ...
© 2010 Portugal Telecom Inovação, S.A.
a story should be small enough to fit in an iteration
http://blog.dannorth.net/whats-in-a-story/
Cucumber
14 © 2010 Portugal Telecom Inovação, S.A.
http://cukes.info/
http://wiki.github.com/aslakhellesoy/cucumber/
15
DSL Gherkin
Feature
Scenario outlineScenario
Given
When
Examples
Then
And
But
Background© 2010 Portugal Telecom Inovação, S.A.
Feature: watch a 1min video from the World Cup on my mobile As a Customer I want to watch a short video (1min) on my mobile for 0.50€ So that I can watch all goals, wherever I am
Scenario: show a 1min. video by 0.5€ Given a message with a URL sent to the customer’s mobile And a balance of 1€ When the customer clicks the URL Then 0.50€ is discounted from the customer’s balance And the video is shown
Scenario: not enough balance to show the video Given a message with a URL sent to the customer’s mobile And a balance of 0.45€ When the customer clicks the URL Then an error of “Sorry, not enough balance” is returned
16
Feature: watch a 1min video from the World Cup on my mobile As a Customer I want to watch a short video (1min) on my mobile So that I can watch all goals
Scenario: show a 1min. video by 0.5€ Given a message with a URL sent to the customer’s mobile And a balance of 1€ When the customer clicks the URL Then 0.50€ is discounted from the customer’s balance And the video is shown
Scenario: not enough balance to show the video Given a message with a URL sent to the customer’s mobile And a balance of 0.45€ When the customer clicks the URL Then an error of “Sorry, not enough balance” is returned
© 2010 Portugal Telecom Inovação, S.A.
Title
Narrative}
Acceptance criteria}
17 © 2010 Portugal Telecom Inovação, S.A.
$ cucumber features/video.feature
Feature: watch a 1min video from the World Cup on my mobile As a Customer I want to watch a short video (1min) So that
Scenario: show a 1min. video by 0.5€ # features/video.feature:6 Given a message with a URL sent to the customer’s mobile # features/video.feature:7 And a balance of 1€ # features/video.feature:8 When the customer clicks the URL # features/video.feature:9 Then 0.50€ is discounted from the customer’s balance # features/video.feature:10 And the video is shown # features/video.feature:11
Scenario: not enough balance to show the video # features/video.feature:13 Given a message with a URL sent to the customer’s mobile # features/video.feature:14 And a balance of 0.45€ # features/video.feature:15 When the customer clicks the URL # features/video.feature:16 Then an error of “Sorry, not enough balance” is returned # features/video.feature:17
2 scenarios (2 undefined)9 steps (9 undefined)0m0.011s
17 © 2010 Portugal Telecom Inovação, S.A.
You can implement step definitions for undefined steps with these snippets:
Given /^a message with a URL sent to the customer’s mobile$/ do pending # express the regexp above with the code you wish you hadend
Given /^a balance of (\d+)€$/ do |arg1| pending # express the regexp above with the code you wish you hadend
When /^the customer clicks the URL$/ do pending # express the regexp above with the code you wish you hadend
Then /^(\d+)\.(\d+)€ is discounted from the customer’s balance$/ do |arg1, arg2| pending # express the regexp above with the code you wish you hadend
Then /^the video is shown$/ do pending # express the regexp above with the code you wish you hadend
17 © 2010 Portugal Telecom Inovação, S.A.
17 © 2010 Portugal Telecom Inovação, S.A.
Given /^a balance of (\d+)\.(\d+)€$/ do |arg1, arg2| pending # express the regexp above with the code you wish you hadend
Then /^an error of “Sorry, not enough balance” is returned$/ do pending # express the regexp above with the code you wish you hadend
If you want snippets in a different programming language, just make sure a filewith the appropriate file extension exists where cucumber looks for step definitions.
18
"pt": name: Portuguese native: português background: Contexto feature: Funcionalidade scenario: Cenário|Cenario scenario_outline: Esquema do Cenário|Esquema do Cenario examples: Exemplos given: "*|Dado" when: "*|Quando" then: "*|Então|Entao" and: "*|E" but: "*|Mas"
© 2010 Portugal Telecom Inovação, S.A.
Multi-languageMore than 40 written languages already
If you want snippets in a different programming language, just make sure a filewith the appropriate file extension exists where cucumber looks for step definitions.
Cuke4Duke: JVM
http://github.com/aslakhellesoy/gherkin/blob/master/lib/gherkin/i18n.yml
http://wiki.github.com/aslakhellesoy/cuke4duke/
19© Pragmatic Programmers
David Chelimskyhttp://davidchelimsky.net/
20
Cucumber + rSpec
1. Write an scenario with Cucumber (1)2. Write a step definition3. Run and Watch it fail (2)
1. Write a failing code example with RSpec (3)
2. Get the example to pass (4)3. Refactor (5)4. Repeat 3.1 – 3.3 until Cucumber step is
passing5. Repeat 2 – 3 until Cucumber scenario
is passing (6)6. Refactor (7)
© 2010 Portugal Telecom Inovação, S.A.
Red Green Refactor
rSpec
21jBehave
© 2010 Portugal Telecom Inovação, S.A.
$ cat ./spec/account_spec.rbdescribe Account do context "transfering money" do it "deposits transfer amount to the other account" do source = Account.new(50, :USD) target = mock('target account') target.should_receive(:deposit).with(Money.new(5, :USD)) source.transfer(5, :USD).to(target) end
it "reduces its balance by the transfer amount" do source = Account.new(50, :USD) target = stub('target account') source.transfer(5, :USD).to(target) source.balance.should == Money.new(45, :USD) end end end
http://rspec.rubyforge.org
rSpec
21jBehave
© 2010 Portugal Telecom Inovação, S.A.
http://rspec.rubyforge.org
$ spec ./spec/account_spec.rb --format nested Account transfering money deposits transfer amount to the other account reduces its balance by the transfer amount
2 examples, 0 failures
22 © 2010 Portugal Telecom Inovação, S.A.
REST
http://.../customers/1/accounts/3/products
23
STEP DEFINITION STYLES 307
!"#$%&'()*+,-./(,
0$'-#&'()*+,-./(,
1",(2'*3-)(%*022(//
4&/'
!%-.
5/-%&'()
56'(7,&'()
Figure 21.1: Comparing step definition styles
• Automated Browser: Access the entire Rails MVC stack in a real
web browser by driving interactions with the Webrat API and its
support for piggy-backing on Selenium. This style is fully inte-
grated but is the slowest to run and can be challenging to main-
tain.
• Simulated Browser: Access the entire MVC stack using Webrat,
a DSL for interacting with web applications. This style provides a
reliable level of integration while remaining fast enough for general
use, but doesn’t exercise JavaScript.
• Direct Model Access: Access ActiveRecord models directly, bypass-
ing routing, controllers, and views. This is the fastest but least
integrated style.
When writing Cucumber scenarios, integration and speed are opposing
forces, as illustrated in Figure 21.1. Fast is better than slow, of course,
but integrated is better than isolated when we’re looking for confidence
that an app will work in the hands of users once it is shipped. So what’s
the best approach to take?
Report erratum
this copy is (B13.0 printing, January 19, 2009)Prepared exclusively for Jose Bonnet
© 2010 Portugal Telecom Inovação, S.A.
Steps definition
Given
When,Then
Given /there are (\d+) vendors/i do |n| Vendor.transaction do Vendor.destroy_all n.to_i.times do |n| Factory.create(:vendor, :business_name => "Vendor #{n}") end endend
Given’s: set-up the context in each system
{
Other systems
Other systems
24
AOMACH
OCS
ASE
CIS
BIS APM OMG
VTS
© 2010 Portugal Telecom Inovação, S.A.
Given...
Other systems
Other systems
24
AOMACH
OCS
ASE
CIS
BIS APM OMG
VTS
© 2010 Portugal Telecom Inovação, S.A.
Then...When...
25 © 2010 Portugal Telecom Inovação, S.A.
• simulated browser• ruby acceptance tests• web_steps.rb• with jRuby: Capybara
Webrat
def test_sign_up visits "/" clicks_link "Sign up" fills_in "Email", :with => "[email protected]" select "Free account" clicks_button "Register" ... end
http://gitrdoc.com/brynary/webrat/tree/master/
26
© 2010 Portugal Telecom Inovação, S.A.
• automated browser• the only way if there’s JavaScript involved
Selenium http://seleniumhq.org/
27
© 2010 Portugal Telecom Inovação, S.A.
• automated browser• open-source, programmable in Ruby• any language, any browser
Watir
Starting a new browser (and going to a site)require 'watir'
b = Watir::Browser.new
b.goto("http://www.google.com")
Starting a new browser at a siterequire 'watir'
b = Watir::Browser.start("http://www.google.com")
Choosing which browser to startrequire 'watir'
Watir::Browser.default = "firefox"
b = Watir::Browser.start("http://www.google.com")
Setting a text fieldb.text_field(:name, "username").set "watir"
Clicking a buttonb.button(:name, "logon").click
Clearing & setting a checkboxb.checkbox(:name, "enabled").clear
b.checkbox(:name, "enabled").set
Submitting a formb.form(:action, "submit").submit
Clicking a linkb.link(:href, "http://google.com").click
Checking for text in a pageputs b.text.include? "llama"
Checking the title of a pageputs b.title
http://watir.com/
28
2010 2011 2012 T1 T2 T3 T4 T1 T2 T3 T4 T1 T2 T3 T4
!"#$
%"&'"()*$
+,&$&(-./0($%"&$"()1()234($
&(-./0($%"&$5)6127($
&(-./0($%"&$5-28($"(89)(-*$
Hudson
© 2010 Portugal Telecom Inovação, S.A.
• Continuous Integration server• inter-system integration: not so continuous...• ... discrete, at specific dates
http://hudson-ci.org/
29
rCov
© 2010 Portugal Telecom Inovação, S.A.
• Ruby code coverage http://eigenclass.org/hiki/rcov
30 © 2010 Portugal Telecom Inovação, S.A.
Master thesis• API Testing Dashboard:
• how much code is there to be covered by tests?• which tests stopped making sense since the last integration?
• I have to be notified of the test results• it’ll be like rCov for:
• multiple API’s/programming languages• multiple systems
31
Doubts
31
DoubtsHow costly to maintain?
31
DoubtsHow costly to maintain?
How easy to evolve?
31
Doubts
How much scalable?
How costly to maintain?How easy to evolve?
31
Doubts
How much scalable?How much
maintainable?
How costly to maintain?How easy to evolve?
32 © 2010 Portugal Telecom Inovação, S.A.
• We’ve got a hard problem in our hands:• several systems• some from other vendors• have to work together• in a very dynamic environment
• We’re trying a BDD approach to test its integration• We’ve got multiple tools available• Some tools need some improvements
So...
http://www.ptinovacao.pt/
33
Thank you!
© 2010 Portugal Telecom Inovação, S.A.