Download presentation
Presentation is loading. Please wait.
Published byChristal Terry Modified over 9 years ago
1
Automated Test Framework for SIP Elements SIP Protocol Compliance
2
2 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
3
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
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
5 Sequence Notation
6
6
7
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
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
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
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.