SlideShare a Scribd company logo
1 of 80
TESTING
ADHEARSION
APPLICATIONS
      Luca Pradovera
Voice Application Developer
      Mojo Lingo LLC
About me
About me
   - Rubyist from Italy
About me
   - Rubyist from Italy
About me
   - Rubyist from Italy
About me
   - Rubyist from Italy
About me
   - Rubyist from Italy
   - Voice Application
     Developer at Mojo
     Lingo
ADHEARSION
      APPS
       ARE
       FUN
      AND
    USEFUL
ADHEARSION
DICTATION CARRIER
APPLICATIONS    CALL APPS
CENTERS
CUSTOMER
               CRM
             SUPPORT
                      ARE
TRANSLATION           FUN
                DISTRIBUTED
C O M M U N I C A T I O N S
S C H E D U L I N G  AND
CONVERGENCE
                   USEFUL
BUT...
THEY
MUST BE
STABLE!
THEY
MUST BE
STABLE!
THE VILLAINS
THE VILLAINS

- Application exceptions
- Wrong call flow
- Dropped calls
- Integration errors
THE GOOD GUYS
THE GOOD GUYS

- Unit Testing
- Functional Testing
- Load Testing
UNIT TESTING
Our goals for unit
     testing:
Our goals for unit
     testing:
- Confidence at the class level
Our goals for unit
     testing:
- Confidence at the class level
- Prevent regression errors
Our goals for unit
     testing:
- Confidence at the class level
- Prevent regression errors
- Promote proper code structure
Our goals for unit
     testing:
- Confidence at the class level
- Prevent regression errors
- Promote proper code structure
- Provide CI with something to help
  us with
Unit testing Ahn
      apps
Unit testing Ahn
        apps
- Call Controllers are an application’s
  core
Unit testing Ahn
        apps
- Call Controllers are an application’s
  core
- RSpec recommended
Unit testing Ahn
        apps
- Call Controllers are an application’s
  core
- RSpec recommended
- Mock at the controller level
Unit testing Ahn
        apps
- Call Controllers are an application’s
  core
- RSpec recommended
- Mock at the controller level
- Support classes are just Ruby!
Adding RSpec
Adding RSpec

Gemfile:
Adding RSpec

Gemfile:
group :test do
  gem 'rspec'
end
Adding RSpec
                 - Generated apps are
Gemfile:            RSpec ready
group :test do   - Your choice of
  gem 'rspec'      mocking framework
end
                 - Just bundle
                   install
Spec File
require 'spec_helper'

describe DemoController do
  let(:mock_call) { mock 'Call' }

  subject do
    DemoController.new mock_call
  end

  let(:dtmf) { "1" }
  it "should answer, ask for a result, and say it" do
    subject.should_receive(:answer).once
    subject.should_receive(:ask).with("What is your favorite number?", :timeout =>
10000, :limit => 1).once.and_return(dtmf)
    subject.should_receive(:say).with("Your favorite number seems to be #{dtmf}")
    subject.run
  end
end
Our controller

class DemoController < Adhearsion::CallController
  def run
    answer
    result = ask "What is your favorite number?", :timeout =>
10000, :limit => 1
    say "Your favorite number seems to be #{result}"
  end
end
Passing? COOL!
Passing? COOL!
FUNCTIONAL
  TESTING
Functional Testing
       101
Functional Testing
       101

- Needs defining
Functional Testing
       101

- Needs defining
- Quite difficult to approach
Functional Testing
       101

- Needs defining
- Quite difficult to approach
- Not solved by any single tool
OK, WE ARE IN BAD
     SHAPE...
...but here comes
    some help!
...but here comes
    some help!
SIPp
...but here comes
    some help!
SIPp

   ahn-loadbot
...but here comes
    some help!
SIPp

   ahn-loadbot

            PJSUA
SIPp...
SIPp...
SIPp...




... is about as user friendly as the above lion.
SIPp (seriously)
- http://sipp.sourceforge.net/
- Free and OSS Test tool and traffic
  generator
- Can run XML scenarios defined by
  the user
- Can play audio and interact
- Requires good knowledge of SIP
SIPp sample run
sudo sipp -sn uac -s 1 -l 10 -r 5 -m 100 127.0.0.1


- Built-in scenario
- Audio is PCAP, raw network capture
  of an RTP session
- In custom scenarios, PCAP files are
  built with Wireshark/tcpdump
- Ability to set call rate, concurrent
  calls, maximum number of calls,
  many other options
SIPp options
- -trace_err gives you an error log
- -trace_stat outputs a CSV report
- -rtp_echo echoes RTP back to the
  source
- An XML scenario file can play PCAP,
  pause, and perform general call
  control
AHN-LOADBOT
Friendly
Neighborhood
Friendly
Neighborhood
The LoadBot
- https://github.com/mojolingo/ahn-
  loadbot
- Adhearsion 1 plugin
- Drives calls though an Asterisk
  server
- Can simulate a call, listen for audio,
  and record results
Loadbot scenario
         config:
           agi_server: 127.0.0.1
           prefix: SIP/mycarrier

         plans:
           plan 1:
             number: 1231231234
             answers:
             - 1




- Can be driven through DRb or
  directly through the Ahn1 API
PJSUA
Someone has to
  answer too!
Someone has to
  answer too!
PJSUA at a glance
- Can make single or multiple
  connection to SIP server
- Can auto-answer, play audio, and
  record
- Suitable for test support
- Also is a handy tool for QoS
- Does not run a “true” scenario
Sample PJSUA
command line
pjsua --config-file options.conf
Sample PJSUA
command line
pjsua --config-file options.conf

options.conf:
--null-audio
--realm adhearsion.com
--registrar sip.adhearsion.com
--id sip:999@adhearsion.com
--username 999
--password AdhearsionConf
--nameserver 8.8.8.8
--auto-answer 200
--auto-loop
--play-file monkeys.wav
Functional
takeaways
Functional
        takeaways
- Set a specific goal for each scenario
Functional
        takeaways
- Set a specific goal for each scenario
- Take advantage of CDR and APIs to
  do integration testing
Functional
        takeaways
- Set a specific goal for each scenario
- Take advantage of CDR and APIs to
  do integration testing
- Less automated than web functional
  testing
LOAD TESTING
Is my system
strong enough?
Is my system
strong enough?
Load Testing is...
Load Testing is...

- Running a high amount of
  concurrent calls
Load Testing is...

- Running a high amount of
  concurrent calls
- Decide what you are looking for
Load Testing is...

- Running a high amount of
  concurrent calls
- Decide what you are looking for
- Tool of choice, SIPp or Loadbot
Load testing
  metrics
Load testing
        metrics
- Failed calls
Load testing
        metrics
- Failed calls
- Average call times getting too long
Load testing
        metrics
- Failed calls
- Average call times getting too long
- Exception tracking, not everything
  happens visibly
Thank you!
          http://mojolingo.com
       https://github.com/polysics
           Twitter: lucaprado
XMPP and Email: lpradovera@mojolingo.com

           ...and please...
Thank you!
          http://mojolingo.com
       https://github.com/polysics
           Twitter: lucaprado
XMPP and Email: lpradovera@mojolingo.com

           ...and please...
              NO MAKE KITTY SAD
Thank you!
          http://mojolingo.com
       https://github.com/polysics
           Twitter: lucaprado
XMPP and Email: lpradovera@mojolingo.com

           ...and please...
              NO MAKE KITTY SAD

                  ...go rate my talk at
                http:/spkr8.com/17421

More Related Content

What's hot (18)

Elixir – Peeking into Elixir's Processes, OTP and Supervisors
Elixir – Peeking into Elixir's Processes, OTP and SupervisorsElixir – Peeking into Elixir's Processes, OTP and Supervisors
Elixir – Peeking into Elixir's Processes, OTP and Supervisors
 
Callbacks part1
Callbacks part1Callbacks part1
Callbacks part1
 
Callbacks part2
Callbacks part2Callbacks part2
Callbacks part2
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 
Whoops! 404 Error!
Whoops! 404 Error!Whoops! 404 Error!
Whoops! 404 Error!
 

Viewers also liked

Multidextrous Voice Application Framework
Multidextrous Voice Application FrameworkMultidextrous Voice Application Framework
Multidextrous Voice Application FrameworkMojo Lingo
 
Tackling Testing Telephony
Tackling Testing Telephony Tackling Testing Telephony
Tackling Testing Telephony Mojo Lingo
 
Creating Phone 2.0 Applications with Adhearsion
Creating Phone 2.0 Applications with AdhearsionCreating Phone 2.0 Applications with Adhearsion
Creating Phone 2.0 Applications with AdhearsionMojo Lingo
 
AdhearsionConf Keynote 2012
AdhearsionConf Keynote 2012AdhearsionConf Keynote 2012
AdhearsionConf Keynote 2012Mojo Lingo
 
Voice Applications with Adhearsion
Voice Applications with AdhearsionVoice Applications with Adhearsion
Voice Applications with AdhearsionMojo Lingo
 
A Hackaton Focused on Call Control
A Hackaton Focused on Call ControlA Hackaton Focused on Call Control
A Hackaton Focused on Call ControlMojo Lingo
 
Call Control Power Tools with Adhearsion
Call Control Power Tools with Adhearsion Call Control Power Tools with Adhearsion
Call Control Power Tools with Adhearsion Mojo Lingo
 
Can You Speak Magic? with Adhearsion
Can You Speak Magic? with AdhearsionCan You Speak Magic? with Adhearsion
Can You Speak Magic? with AdhearsionMojo Lingo
 
The Future of Adhearson
The Future of AdhearsonThe Future of Adhearson
The Future of AdhearsonMojo Lingo
 
Adhearsion and the cloud
Adhearsion and the cloudAdhearsion and the cloud
Adhearsion and the cloudMojo Lingo
 
Evented Telephony Application Design with Adhearsion
Evented Telephony Application Design with AdhearsionEvented Telephony Application Design with Adhearsion
Evented Telephony Application Design with AdhearsionMojo Lingo
 
Supergluing Asterisk to the Web with Adhearsion
Supergluing Asterisk to the Web with AdhearsionSupergluing Asterisk to the Web with Adhearsion
Supergluing Asterisk to the Web with AdhearsionMojo Lingo
 
Ops for Developers
Ops for DevelopersOps for Developers
Ops for DevelopersMojo Lingo
 
What is Adhearsion?
What is Adhearsion?What is Adhearsion?
What is Adhearsion?Mojo Lingo
 
State of the Art Telephony with Ruby
State of the Art Telephony with Ruby State of the Art Telephony with Ruby
State of the Art Telephony with Ruby Mojo Lingo
 
Infiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyInfiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyMojo Lingo
 
Securing Voice Communication
Securing Voice CommunicationSecuring Voice Communication
Securing Voice CommunicationLuca Pradovera
 
Telephony Through Ruby Colored Lenses
Telephony Through Ruby Colored LensesTelephony Through Ruby Colored Lenses
Telephony Through Ruby Colored LensesMojo Lingo
 

Viewers also liked (20)

Multidextrous Voice Application Framework
Multidextrous Voice Application FrameworkMultidextrous Voice Application Framework
Multidextrous Voice Application Framework
 
Tackling Testing Telephony
Tackling Testing Telephony Tackling Testing Telephony
Tackling Testing Telephony
 
Creating Phone 2.0 Applications with Adhearsion
Creating Phone 2.0 Applications with AdhearsionCreating Phone 2.0 Applications with Adhearsion
Creating Phone 2.0 Applications with Adhearsion
 
AdhearsionConf Keynote 2012
AdhearsionConf Keynote 2012AdhearsionConf Keynote 2012
AdhearsionConf Keynote 2012
 
Voice Applications with Adhearsion
Voice Applications with AdhearsionVoice Applications with Adhearsion
Voice Applications with Adhearsion
 
A Hackaton Focused on Call Control
A Hackaton Focused on Call ControlA Hackaton Focused on Call Control
A Hackaton Focused on Call Control
 
Call Control Power Tools with Adhearsion
Call Control Power Tools with Adhearsion Call Control Power Tools with Adhearsion
Call Control Power Tools with Adhearsion
 
Can You Speak Magic? with Adhearsion
Can You Speak Magic? with AdhearsionCan You Speak Magic? with Adhearsion
Can You Speak Magic? with Adhearsion
 
The Future of Adhearson
The Future of AdhearsonThe Future of Adhearson
The Future of Adhearson
 
Adhearsion and the cloud
Adhearsion and the cloudAdhearsion and the cloud
Adhearsion and the cloud
 
Testing telephony
Testing telephonyTesting telephony
Testing telephony
 
ClueCon 2012
ClueCon 2012ClueCon 2012
ClueCon 2012
 
Evented Telephony Application Design with Adhearsion
Evented Telephony Application Design with AdhearsionEvented Telephony Application Design with Adhearsion
Evented Telephony Application Design with Adhearsion
 
Supergluing Asterisk to the Web with Adhearsion
Supergluing Asterisk to the Web with AdhearsionSupergluing Asterisk to the Web with Adhearsion
Supergluing Asterisk to the Web with Adhearsion
 
Ops for Developers
Ops for DevelopersOps for Developers
Ops for Developers
 
What is Adhearsion?
What is Adhearsion?What is Adhearsion?
What is Adhearsion?
 
State of the Art Telephony with Ruby
State of the Art Telephony with Ruby State of the Art Telephony with Ruby
State of the Art Telephony with Ruby
 
Infiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando RubyInfiltrando Telecoms Usando Ruby
Infiltrando Telecoms Usando Ruby
 
Securing Voice Communication
Securing Voice CommunicationSecuring Voice Communication
Securing Voice Communication
 
Telephony Through Ruby Colored Lenses
Telephony Through Ruby Colored LensesTelephony Through Ruby Colored Lenses
Telephony Through Ruby Colored Lenses
 

Similar to Testing Adhearsion Applications

Socket applications
Socket applicationsSocket applications
Socket applicationsJoão Moura
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Yan Cui
 
Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Yan Cui
 
Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)Yan Cui
 
Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)Yan Cui
 
Serverless in production, an experience report (JeffConf)
Serverless in production, an experience report (JeffConf)Serverless in production, an experience report (JeffConf)
Serverless in production, an experience report (JeffConf)Yan Cui
 
Getting Started with Ansible - Jake.pdf
Getting Started with Ansible - Jake.pdfGetting Started with Ansible - Jake.pdf
Getting Started with Ansible - Jake.pdfssuserd254491
 
Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009eCommConf
 
Appium mobile web+dev conference
Appium   mobile web+dev conferenceAppium   mobile web+dev conference
Appium mobile web+dev conferenceIsaac Murchie
 
Appium workship, Mobile Web+Dev Conference
Appium workship,  Mobile Web+Dev ConferenceAppium workship,  Mobile Web+Dev Conference
Appium workship, Mobile Web+Dev ConferenceIsaac Murchie
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenchesYan Cui
 
Using software modules welcome to hell!
Using software modules   welcome to hell!Using software modules   welcome to hell!
Using software modules welcome to hell!Baruch Sadogursky
 
Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)Yan Cui
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)True-Vision
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Yan Cui
 
Voicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.comVoicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.comVoxeo Corp
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven InfrastructureArthur Maltson
 

Similar to Testing Adhearsion Applications (20)

Socket applications
Socket applicationsSocket applications
Socket applications
 
Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)Serverless in production, an experience report (London DevOps)
Serverless in production, an experience report (London DevOps)
 
Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)Serverless in production, an experience report (linuxing in london)
Serverless in production, an experience report (linuxing in london)
 
Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)Serverless in Production, an experience report (cloudXchange)
Serverless in Production, an experience report (cloudXchange)
 
Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)Serverless in production, an experience report (LNUG)
Serverless in production, an experience report (LNUG)
 
Serverless in production, an experience report (JeffConf)
Serverless in production, an experience report (JeffConf)Serverless in production, an experience report (JeffConf)
Serverless in production, an experience report (JeffConf)
 
Getting Started with Ansible - Jake.pdf
Getting Started with Ansible - Jake.pdfGetting Started with Ansible - Jake.pdf
Getting Started with Ansible - Jake.pdf
 
Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009Jay Phillips's Presentation at eComm 2009
Jay Phillips's Presentation at eComm 2009
 
Appium mobile web+dev conference
Appium   mobile web+dev conferenceAppium   mobile web+dev conference
Appium mobile web+dev conference
 
Appium workship, Mobile Web+Dev Conference
Appium workship,  Mobile Web+Dev ConferenceAppium workship,  Mobile Web+Dev Conference
Appium workship, Mobile Web+Dev Conference
 
20140925 rails pacific
20140925 rails pacific20140925 rails pacific
20140925 rails pacific
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenches
 
Using software modules welcome to hell!
Using software modules   welcome to hell!Using software modules   welcome to hell!
Using software modules welcome to hell!
 
Test
TestTest
Test
 
Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)Serverless in production, an experience report (Going Serverless)
Serverless in production, an experience report (Going Serverless)
 
Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)Rails Presentation (Anton Dmitriyev)
Rails Presentation (Anton Dmitriyev)
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 
Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)Serverless in Production, an experience report (AWS UG South Wales)
Serverless in Production, an experience report (AWS UG South Wales)
 
Voicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.comVoicecon - Mashups with Tropo.com
Voicecon - Mashups with Tropo.com
 
Test Driven Infrastructure
Test Driven InfrastructureTest Driven Infrastructure
Test Driven Infrastructure
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Testing Adhearsion Applications

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. all of those have been built with Adhearsion and are around now\n
  8. \n
  9. people get very angry when phone calls do not work. the same ancestral instincts that make voice our best tool to communicate makes users react very badly when something goes wrong.\n
  10. of course not the only ones\n
  11. \n
  12. \n
  13. of course unit testing and TDD have another million good reasons\n
  14. of course unit testing and TDD have another million good reasons\n
  15. of course unit testing and TDD have another million good reasons\n
  16. of course unit testing and TDD have another million good reasons\n
  17. \n
  18. \n
  19. \n
  20. \n
  21. configure RSpec in spec_helper as usual. Guard is recommended too.\n
  22. configure RSpec in spec_helper as usual. Guard is recommended too.\n
  23. configure RSpec in spec_helper as usual. Guard is recommended too.\n
  24. kept it as simple as possible. how many in the audience are familiar with rspec?\n
  25. how many are familiar with adhearsion 2 controllers? explain if not many\n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. let&amp;#x2019;s see what we know about sipp\n
  36. let&amp;#x2019;s see what we know about sipp\n
  37. \n
  38. Command line does not fit on screen.\n
  39. \n
  40. \n
  41. \n
  42. Ahn can also be a client\nSuitable for anything but load testing Adhearsion itself\n
  43. \n
  44. \n
  45. otherwise you end up like the girl above\n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n