From f1a0cedd3a0b170cbf04589348ef20741014e97c Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Thu, 12 Apr 2018 15:33:48 +0200 Subject: osmodevcon2018 osmo-ttcn3 testsuites --- .../osmodevcon2018-ttcn3_test_suites.html | 4503 ++++++++++++++++++++ 1 file changed, 4503 insertions(+) create mode 100644 2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.html (limited to '2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.html') diff --git a/2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.html b/2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.html new file mode 100644 index 0000000..d4947c7 --- /dev/null +++ b/2018/osmodevcon2018-ttcn3_test_suites/osmodevcon2018-ttcn3_test_suites.html @@ -0,0 +1,4503 @@ + + + + +Osmocom TTCN-3 Test Suites + + + + + + + + +
+

Osmocom TTCN-3 Test Suites

+
+
    +
  • + +developed in 2017+2018 + +
  • +
  • + +compiled using Eclipse TITAN + +
      +
    • + +uses just a command-line compiler + Makefiles + +
    • +
    • + +no IDE needed at all, don’t let Eclipse fool you + +
    • +
    +
  • +
  • + +containerized in Docker + +
  • +
  • + +executed by Jenkins CI + +
  • +
+
+
+
+

Terminology

+
+
+
+ATS +
+
+

+Abstract Test Suite +

+
+
+MTC +
+
+

+Main Test Component +

+
+
+PTC +
+
+

+Parallel Test Component +

+
+
+IUT +
+
+

+Implementation Under Test +

+
+
+
+
+
+

Test Suite Philosophy

+
+
    +
  • + +test one network element (our IUT) + +
  • +
  • + +test external behavior (3GPP and non-3GPP) + +
  • +
  • + +emulate entire environment from TTCN-3 + +
  • +
  • + +don’t reuse Osmocom C-code protocol implementations in the tests + +
  • +
  • + +test against independent TTCN-3 implementations! + +
  • +
+
+
+
+

What to test?

+
+
    +
  • + +successful cases + +
  • +
  • + +erroneous cases (no answer, NACK, …) + +
      +
    • + +many difficult to reproduce with real phones/devices + +
    • +
    +
  • +
  • + +load / resource exhaustion + +
  • +
  • + +spec compliance + +
  • +
  • + +focus on functionality actually relevant to IUT + +
  • +
+
+
+
+

Why TTCN-3 + TITAN

+
+
    +
  • + +TTCN-3 specifically designed for telecom protocol testing + +
  • +
  • + +TITAN team released many telecom protocols in TTCN-3, such as + +
      +
    • + +BSSAP, L3 (RR/MM/CC), SMS (CP/RP/TP), SS, M3UA, SCCP, GTP, NS, BSSGP, … + +
    • +
    • + +shortens our test development cycle + +
    • +
    • + +permits us to test against known working industry implementations + +
    • +
    +
  • +
+
+
+
+

Test suites for Osmocom CNI components

+
+
    +
  • + +osmo-bts + +
  • +
  • + +osmo-bsc + +
  • +
  • + +osmo-msc + +
  • +
  • + +osmo-mgw + +
  • +
  • + +osmo-hlr + +
  • +
  • + +osmo-sip-connector + +
  • +
  • + +osmo-sgsn + +
  • +
  • + +osmo-ggsn + +
  • +
+
+
+
+

Test suites in progress

+
+
    +
  • + +osmo-pcu + +
  • +
  • + +osmo-bsc_nat + +
  • +
+
+
+
+

BTS_Tests.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +A-bis side: RSL (emulates BSC-side server) + +
    • +
    • + +Um side: L1CTL to control MS + +
    • +
    • + +PCU side: pcu_socket + +
    • +
    +
  • +
+
+
+osmodevcon2018-ttcn3_test_suites__1.png +
+
+
+
+
+

BSC_Tests.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +A-bis side: RSL (emulates BTS-side client) + +
    • +
    • + +A-side: BSSAP/SCCP/M3UA (emulates MSC-side) + +
    • +
    • + +MGW side: MGCP (emulates MGW side) + +
    • +
    +
  • +
+
+
+osmodevcon2018-ttcn3_test_suites__2.png +
+
+
+
+
+

MSC_Tests.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +A: BSSAP/SCCP/M3UA (emulates BSC-side) + +
    • +
    • + +MNCC: MNCC/unix-domain (emulates ext. MNCC side) + +
    • +
    • + +MGW: MGCP (emulates MGW side) + +
    • +
    • + +GSUP (impllements HLR side) + +
    • +
    +
  • +
+
+
+osmodevcon2018-ttcn3_test_suites__3.png +
+
+
+
+
+

MGCP_Test.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +MGCP (emulates call agent) + +
    • +
    • + +RTP (stream source/sink) + +
    • +
    +
  • +
+
+
+
+

HLR_Tests.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +GSUP (emulates VLR/SGSN side) + +
    • +
    +
  • +
+
+
+
+

SIP_Tests.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +MNCC (emulates MSC side) + +
    • +
    • + +SIP (emulates SIP switch) + +
    • +
    +
  • +
+
+
+
+

SGSN_Tests.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +Gb (emulates PCU side NS/BSSGP + MS) + +
    • +
    • + +GSUP (emulates HLR) + +
    • +
    +
  • +
+
+
+
+

GGSN_Tests.ttcn

+
+
    +
  • + +external interfaces + +
      +
    • + +Gp: GTP (emulates SGSN) + +
    • +
    • + +Gi: IP (emulates Internet) + +
    • +
    +
  • +
+
+
+
+

Dockerized Setup

+
+
    +
  • + +one process per container + +
  • +
  • + +packages either + +
      +
    • + +IUT (e.g. osmo-bsc) + +
    • +
    • + +ATS (compiled docker test suite) + +
    • +
    • + +other utility (e.g. trxcon or osmo-bts-omldummy) + +
    • +
    +
  • +
  • + +why? + +
      +
    • + +no need for local ip/network configuration + +
    • +
    • + +standardized / packaged setup on every machine + +
    • +
    • + +run older/newer versions of ATS against older/newer IUT + +
    • +
    +
  • +
+
+
+
+

Jenkins CI Execution

+
+
    +
  1. + +update docker-playground.git + +
      +
    1. + +contains Dockerfile for ATS + IUT + +
    2. +
    +
  2. +
  3. + +rebuild IUT container[s] (e.g. osmo-bts-master) + +
      +
    1. + +git magic ensures re-build only if osmo-bts.git master changed + +
    2. +
    +
  4. +
  5. + +rebuild ATS container (e.g. ttcn3-bts-test) + +
      +
    1. + +git magic ensures re-build only if osmo-ttcn3-hacks.git master changed + +
    2. +
    +
  6. +
  7. + +run docker-playground/ttcn3-bts-test/jenkins.sh + +
      +
    1. + +creates docker network + +
    2. +
    3. + +starts IUT + ATS docker containers + +
    4. +
    5. + +collects test results + +
    6. +
    +
  8. +
+
+
+
+

Jenkins CI Reporting

+
+
    +
  • + +junit-xml generation + +
  • +
  • + +store artefacts + +
      +
    • + +pcap file of every test case + +
    • +
    • + +ATS log file (TTCN-3 testsuite) + +
    • +
    • + +IUT log file[s] (osmo-*.log) + +
    • +
    • + +IUT config file[s] (osmo-*.cfg) + +
    • +
    +
  • +
  • + +see https://jenkins.osmocom.org/jenkins/view/TTCN3/ + +
  • +
+
+
+
+

Further Reading

+ +
+
+

EOF

+
+

End of File

+
+
+ + -- cgit v1.2.3