Automated test framework for sip elements sip protocol compliance
Download
1 / 10

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


  • 83 Views
  • Uploaded on

Automated Test Framework for SIP Elements SIP Protocol Compliance. Motivation. SIP is complex Many distributed components Features interact Extreme Programming Frequent integration / releases Continuous / Automated testing SIP is open – many 3 rd party components. Goals of the Framework.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Automated Test Framework for SIP Elements SIP Protocol Compliance' - orson-case


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Motivation
Motivation

  • SIP is complex

  • Many distributed components

  • Features interact

  • Extreme Programming

    • Frequent integration / releases

    • Continuous / Automated testing

  • SIP is open – many 3rd party components


Goals of the framework
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


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

Features




Simple example
Simple Example

WarningLog(<<"*!testRegisterBasic!*");

TestUser jason(Uri("sip:[email protected]"), "jason", "jason");

Seq(jason.registerUser(60, jason.getDefaultContacts()),

jason.expect(REGISTER/407,from(proxy),WaitForResponse,jason.digestRespond()),

jason.expect(REGISTER/200, from(proxy), WaitForResponse, jason.noAction()),

WaitForEndOfTest);

ExecuteSequences();


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

Primitives


Primitives contd
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


Development process
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


ad