Automated Test Framework for SIP Elements SIP Protocol Compliance - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

Automated Test Framework for SIP Elements SIP Protocol Compliance

Description:

Automated Test Framework for SIP Elements SIP Protocol Compliance Motivation SIP is complex Many distributed components Features interact Extreme Programming Frequent ... – PowerPoint PPT presentation

Number of Views:91
Avg rating:3.0/5.0
Slides: 11
Provided by: resiprocat
Category:

less

Transcript and Presenter's Notes

Title: Automated Test Framework for SIP Elements SIP Protocol Compliance


1
Automated Test Framework for SIP ElementsSIP
Protocol Compliance
2
Motivation
  • SIP is complex
  • Many distributed components
  • Features interact
  • Extreme Programming
  • Frequent integration / releases
  • Continuous / Automated testing
  • SIP is open many 3rd party components

3
Goals of the Framework
  • Rapid test execution / verification
  • Test protocol compliance
  • Support rapid production of test suites
  • Translation from calls flows to executable
  • Robust to variation in timing/parallelism
  • Incorporate provisioning
  • Programmer friendly
  • Can be completely automated
  • Open to manual endpoint operation
  • Tests can be realized by non-programmers

4
Features
  • Automated
  • Write tests quickly
  • Parallel events
  • Easy to elaborate
  • Provisioning
  • Embedded Proxy
  • Negative tests
  • Retransmissions
  • Useful feedback on failure
  • Full compliance with 3261 and many drafts
  • UDP,TCP,TLS
  • S/MIME
  • Portable to other stacks

5
Sequence Notation
6
Sequence Notation
7
Simple Example
WarningLog(ltlt"!testRegisterBasic!")
TestUser jason(Uri("sipjason_at_localhost"),
"jason", "jason") Seq(jason.registerUser(60,
jason.getDefaultContacts()),
jason.expect(REGISTER/407,from(proxy),WaitForRespo
nse,jason.digestRespond()), jason.expect(REGIST
ER/200, from(proxy), WaitForResponse,
jason.noAction()), WaitForEndOfTest) ExecuteSe
quences()
8
Primitives
  • Expect Actions
  • invite, subscribe, ring, ring183, ack
  • ackReferred, bye, ok, cancel
  • send404, send486, send487, send202, etc.
  • notify200, send100, digestRespond, etc.
  • reinvite, note, inviteReferReplaces, pause,Chain
  • Provisioning
  • Endpoints,
  • Hunt Groups, etc.
  • Forwarding rules
  • Dial Plans
  • Companies
  • Actions
  • register, invite, notify, subscribe, Chain
  • Predicates
  • from, messageType, timely, Chain

9
Primitives Contd.
  • Custom actions
  • Parameter validation
  • Extended header validation
  • Conditioners
  • Insert/modify parameters and headers on the fly
  • Free-form messages
  • For doing torture tests
  • Message retransmissions

10
Development Process
  • Build up tests against known bugs, tricky cases
  • Write a test before developing a new feature
  • Build up library of actions, predicates
  • Translate RFC call flows
  • Add an automated test whenever a bug is found
    then fix the bug.
  • Programmers run automated tests everyday
Write a Comment
User Comments (0)
About PowerShow.com