Monday, 20 June 2016

Testing LifeCycle in the Telecom Industry

The Test Lifecycle in the telecom industry is similar to that of any other industry but with a stress on details. Here is how the test lifecycle looks like along with the test artifacts.
Telecom Testing Stage
Test artifacts
  • Business View
  • Requirement based test artifacts
  • Feasibility based artifacts
  • Standard and policy identification based test artifacts
  • Operation and maintenance considerations related test artifacts
  • System/ Architecture
  • System test artifacts (Security, Installation)
  • Test artifacts for virtual prototype
  • Special system testing artifacts ( interoperability, disaster recovery)
  • Implementation
  • Unit test artifacts
  • Integration test artifacts
  • Quality and performance artifacts
  • Regression, load testing, sanity, etc.
  • Deployment
  • Acceptance test artifacts
  • Integration test artifacts
  • Quality and performance artifacts
  • Functional test artifacts
  • Alpha/Beta test artifacts

Types of Testing Performed on Telecom Software

  • Interconnection Testing
  • Conformance Testing
  • IVR Testing
  • Performance Testing
  • Security Testing
  • Interoperability Testing
  • Protocol Testing
  • Functional Testing
  • Automation Testing

Sample TestCases for Telecom Testing

In Telecom Testing, one must consider testing following
Various Telecom Testing
Testing activities in Telecom
Billing System
  • Verify, the telephone number of the customer, is registered under telecom operator
  • Verify whether number is still working
  • Verify the number entered is valid, and it is 10 digit number
  • Verify the number is not blocked due to some reasons
  • Verify if the number has any outstanding bills, if exist, display it on screen
  • Verify the number has all previous accounts or bills cleared
  • Verify the system enables statement generation as per customer requirement
  • Verify the system has recorded number of calls accurately
  • Verify the plan chosen by the customer displays on the billing system
  • Verify the total amount billed is accurate and mapped to the service offered
Application Testing
  • Protocols, signaling, field testing for IOT
  • Usage and functional testing for core mobile handset applications like call, SMS, transfer/hold, etc.
  • Testing of various applications like finance, sports and location based services, etc. OSS-BSS testing
OSS-BSS Testing
  • Billing, customer case, interconnect billing, order and fraud management, revenue assurance
  • Network management, mediation, provisioning, etc.
  • EAI, CRM & ERP, data warehousing, etc.
Conformance Testing
  • Electrical interface compatibility
  • Conformance of protocol
  • Conformance of transport layers
IVR Testing
  • Interactive test scenarios
  • Detection of voice energy
  • Broadband audio tones
  • Extensive conditional branching sequences
  • DTMF Entries
Summary
The telecom service is a very broad field consists of various component including cables, networks, signals, protocols, etc. and their testing requires broad range of testing techniques, so the choice of testing techniques and strategy highly depends on what component of telecom is tested.
The test requirement, scope, test scenarios, testing techniques, testing tools, etc. varies with the type of testing involves, it can be protocol testing for VoIP or wireless device testing for CDMA. The tutorial gives basic but complete overview of how telecom testing can be performed and discuss various prospects that are crucial for telecom testing.

Testing Telecom Application with Sample Testcases

Since the shift of telecom sector to computer network and digital medium, telecommunication sector has undergone a major software transformation. Telecom started depending on the various types of software components to deliver many services like routing and switching, VoIP broadband access, etc. Hence, that telecom testing has become an inevitable process.
In this tutorial, we will learn-

What is Domain in Testing?

Domain is nothing but the industry for which the software testing project is created. When we talk about software project or development, this term is often referred. For example, Insurance domain, Banking domain, Retail Domain, Telecom Domain, etc.

Why Domain Knowledge Matters?

Domain knowledge is quintessential for testing any software product, and it has its own benefits like

Business Processes in Telecom Industry

For telecom testing end-to-end service verification is important. To ensure efficient testing a good understanding of different Business process is a must.
You need to understand each stage of service deliverability before drafting the test cases.
Telecom services are either based on a business support system that includes IVR's, Call Centers, generating invoices, etc. or an operation support system that includes routers, switches, cell towers, etc.
The following table shows what activities are performed at different levels
Telecom DepartmentTelecom Activities
Pre-sales
  • It handles all the sales information like discounts, services, promos, etc.
Ordering
  • Applying for a new connection or disconnecting a connection
Provisioning
  • This division deals with the physical connection between customers and TSP ( Telecom Service Provider)
Billing
  • Under this division, all billing work is done
Service Assurance
  • In case of any failure, this division corrects the problem
Inventory Systems
  • It is the repository of all information
Tracking
  • This division tracks the ordering system and the status of an order

Typical Telecom Business Process

Following is a typical business process in the Telecom Industry.

Types of Protocols used in Telecom Industry

Here the popular protocols used in the Telecom industry
  • VoIP technologies: VoIP, IMS, MPLS, ISDN, PSTN
  • Signaling and Protocols: SIP, ISDN, Codecs, H.323
  • Wireless technologies: GPRS, CDMA, GSM, UMTS
  • Network Management: SNMP
  • Layer 2 Protocols: ARP, STP, L2TP, PPP
  • Layer 3 protocols/routing: ICMP, BGP, ISIS, MPLS
  • Infrastructure/Security: ATM, TCP/IP, LAN/VLAN, SSH
You can learn more about Protocol Testing here

Tools for protocol testing

Tools for Protocol Testing

Lets discuss the most important testing tools used to verify protocols

Scapy For Packet Crafting

Scapy is a powerful interactive packet manipulation program. It enable you to
  • Create packets
  • Decode packets on the network
  • Capture packets and analyze them
  • Inject packets into the network
So, basically scapy mainly does two things: receiving answers and sending packets. You define the packets, it sends them, receives answers, match requests with answers and returns a list of packet couples and a list of unmatched packets.
It can also handle other things as well like trace-routing, unit tests, attacks or network discovery, developing new protocols, probing, etc.
Scapy enable us to write a python script that allow us to perform a task like sending and receiving packets or sniffing packets. For example, scapy can sniff the data packet by using python script. The command to open the getdit entered in the editor
#gedit scapysniff.py
#!/usr/bin/env python
from scapy.all import*
a= sniff(count=10)
a.nsummary()
save, and change the mode of the file into an executable form
#chmod+x scapysniff.py
# ./scaotsbuff.py
It will sniff 10 packets and soon as it has sniffed 10 packets it will print the summary. Scapy also as an array of command for sending and receiving packets at the same time
Download Scapy

Wireshark Tools For Analysis

Tools used for protocol testing- WireShark . It allows to capture packets in real time and display them in human readable form. It allows you to dig deep into the network traffic and inspect individual packets by using color coding and filters.
Wireshark captures packets that helps to determine when the session is getting established, when the exact data travel was initiated and how much data is sent each time, etc.
Wireshark has a set of rich features which includes
  • Thorough inspection of hundreds of protocols, more being added all the time
  • Live capture and offline analysis
  • Rich VoIP analysis
  • Standard three pane packed browser
  • Runs on multi-platforms like Windows, Linux, OSX and so on
  • Captured network data can be browsed via a GUI
  • Decryption support many protocols like IPsec, ISAKMP, SSL/TLS
  • Live data can be read from Ethernet, ATM, Bluetooth, USB, token etc.
  • Output can be exported to CSV, XML, plain text, etc.
Download Wireshark

TTCN

TCCN is a standard testing language for defining test scenario and their implementation for protocol testing. A TCCN test suite contains many test cases written in the TTCN programming language and it is used for testing reactive systems or behavioral testing.
For example, a coffee vending machine that gives you coffee on inserting a dollar coin but does not respond if anything less than dollar in inserted into it. To program such machines TCCN3 language is used. In order to make coffee machine responds when inserting a coin we have to write TCCN-3 component that behaves as a coffee machine. It allow us to run our test before actual coffee machine is available as a product. Once it is done we will connect the TCCN3 test suite with the external device.
The test system emits stimuli (dollar coin) and receives responses (coffee). The stimuli adapter obtains stimuli from the test system and passes them to the system under test. The response adapter waits for responses of the system under test and passes them to the test system.
TCCN3 can be used in various fields like
  • Mobile communications (LTE, WIMAX, 3G etc)
  • Broadband technologies (ATM,DSL)
  • Middleware Platforms (Webservices, CORBA etc)
  • Internet Protocol ( SIP, IMS, IPv6)
  • Smart Cards
  • Automative (AutoSAR, MOST, CAN)
In TCCN we can define
  • Test Suites
  • Test Cases
  • Test Steps
  • Declare Variables
  • Declare Timers
  • Create PDUs etc.
TCCN can be integrated with types systems of other languages like ASN.1, XML , C/ C++ . TCCN3 core language exists in text format apart from other format like tabular, graphical and presentation.

Sample Test Cases for Protocol Testing of Network Devices

Test NameTest Cases
  1. 1VLAN on 1 Switch
  • Build two different VLANs. Check the visibility between hosts on different VLANs
  1. 3Symmatric VLANs on 1 switch
  • Create three different asymmetric VLANs. Check the visibility between hosts
  1. Spanning Tree: Root Path Cost Variation
  • Test how the Root Path Cost changes after a topology variation
  1. Spanning Tree: Port Blocking
  • Check how spanning tree protocol avoids formation of cycles in the network, blocking redundant links, in presence of VLANs too
  1. Different Root Bridge for Different MSTI
  • Show that each MSTI can have different Root Bridge
  1. Visibility between different STP Regions
  • With same VLANs check visibility between different STP regions
  1. Telephone switch Performance
  • Generate 1000 telephone calls and check whether the telephone switch still operates or its performance degrades
  1. Negative test for device
  • Enter the incorrect key and check the user for authentication. It should not allow user to access
  1. Line speed
  • Check the device operating at 10Gbps speed, utilizing all the available bandwidth to handle incoming traffic
  1. Protocol conversation rate
  • Track a TCP conversation between two devices and verify that each device engaged in a correct behavior
  1. Response time for session initiation
  • Measure the response time of a device to an invite request for session initiation

Protocol Testing

What is Protocol in a software industry?

When computer communicates with each other, there is a common set of rules and conditions that each computer has to follow. In other words, protocols determine how data are transmitted between computing devices and over networks.
Protocols are classified into two categories routed protocols and a routing protocols
  • Routed Protocols: Routed protocols can be used to send the user data from one network to another network. It carries user traffic like e-mails, web-traffic, file transfers, etc. Routed protocols are IP, IPX, and AppleTalk.
  • Routing Protocols: Routing protocols are network protocols that determine routes for routers. It is only used between routers. For example RIP, IGRP, EIGRP, etc.
In simple terms, router is like a bus used for transportation while routing protocols are signals on the road.
Based on the type of communication different protocols are used.
In this tutorial we will learn

Types of computer protocols

Types of ProtocolsPurpose of Protocols
TCP/IP It is used to send information in small packets over Internet
UDP/ ICMPIt is used to send small amount of information in data-packets over internet
POP3 and SMTPIt is used for sending and receiving mail
Hypertext Transfer ProtocolIt is used to transfer HTML page in encrypted form to provide security to sensitive data
FTP It is used for transporting files over a network from one node to another
* TCP/IP- Transmission Control Protocol/ Internet protocol, UDP / ICMP- User Datagram Protocol/Internet Control Message Protocol, POP3/SMTP- Post Office Protocol / Simple Mail Transfer Protocol, HTTP- Hyper Text Transfer Protocol, FTP- File Transfer Protocol

Different types of network Protocols (L2 and L3)

The OSI model has total 7 layer of network communication, in which layer 2 and layer 3 are very crucial.
  • Layer 2: It is a data link layer. Mac address, Ethernet, Token Ring, and Frame Relay are all examples of Data link layer.
  • Layer 3: It is a network layer that determines the best available path in the network for communication. IP address is an example of layer3.

What is Protocol Testing?

Protocol testing is a generic term used by companies working in the communication industry for testing different protocols in domains of Switching, Wireless, VoIP, Routing, Switching, etc.
Companies like CISCO, JUNIPER, ALCATEL produce networking devices like routers, modems, wireless access points, etc. that use different protocols for communication, for example, CISCO uses EIGRP, OSPF, etc.
Protocol testing is nothing but checking whether EIGRP (Enhanced Interior Gateway Routing Protocol) or OSPF (Open Shortest Path First) or any other protocol is working as per respective standard.

Protocol Testing Process

  • For protocol testing, you need protocol analyzer and simulator
  • Protocol analyzer ensures proper decoding along with call and session analysis. While simulator simulates various entities of networking element
  • Usually a protocol testing is carried out by DUT (device under test) to other devices like switches and routers and configuring protocol in it
  • Thereafter checking the packet structure of the packets send by the devices
  • It checks scalability, performance, protocol algorithm etc. of the device by using tools like lxNetworks, Scapy and Wireshark

Testing Types for Protocol Testing

Protocol testing includes testing of functionality, performance, protocol stack, interoperability, etc. During protocol testing basically three checks is done.
  • Correctness: Do we receive packet X when we expected
  • Latency: How long does a packet take to transit the system
  • Bandwidth: How many packets we can send per second
Protocol testing can be segregated into two categories. Stress and Reliability Tests and Functional Tests. Stress and Reliability tests cover load testing, stress testing, performance testing, etc. While functional testing includes negative testing, conformance testing, interoperability testing, etc.
  • Conformance Testing: The protocols implemented on products are tested for adherence like IEEE, RFC etc.
  • Interoperability Testing: The interoperability for different vendors are tested. This testing is done after conformance testing is done on the appropriate platform
  • Network feature Testing: The features on networking products are tested for functionality with reference to the design document. For example features can be port-security on a switch, ACL on a router etc.