1 / 10

Automated Test Framework for SIP Elements SIP Protocol Compliance

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.

orson-case
Télécharger la présentation

Automated Test Framework for SIP Elements SIP Protocol Compliance

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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

  5. Sequence Notation

  6. Sequence Notation

  7. Simple Example WarningLog(<<"*!testRegisterBasic!*"); TestUser jason(Uri("sip:jason@localhost"), "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();

  8. 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

  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

More Related