Home
        Functional Regression Testing and Test Automation in a 3G
         Contents
1.    99  only one IuCS and IuPS interface were possible to be handled  Until  Release 5  which has an architecture that is mostly like the architecture used today   the CN consisted of one Mobile Switching Center Visitor Location Register  one  Gateway MSC  one Home Location Register  HLR   one Service Control Point   SCP   and one Serving GPRS Support Node  SGSN  and a Gateway GPRS Support  Node  GGSN   This original architecture of Release    99 is depicted in Figure 2 4        Data and control  Control             PSTN ISDN        IP NETWORKS    Figure 2 4  Release    99 UMTS Core Network architecture    The biggest changes that took place between Release 99 and Release 5 are the  division of MSC into MSC server and MGW  as well as dividing GMSC to GMSC  server and MGW  Also the first phase of IP Multimedia Sub system  IMS   functionality was added for enabling the delivery of    Internet services    over GPRS   Anyhow  this    vision    was later updated by requiring support of also other networks     such as WLAN  CDMA2000 and fixed line   4     2 3 1  Network elements in CN  The full architecture of Release 5 UMTS CN is shown in Figure 2 5  with the    simplification that Home Subscriber Server  HSS  is shown as an independent item    without having all the connections to other elements in the CN     The MSC or GMSC server is responsible for the control functionality of MSC or  GMSC  respectively  One MSC GMSC server can control multiple MGW   s  which  allows better scal
2.    Chapter 2  UMTS architecture    UMTS is one of the third generation  3G  mobile telecommunications technologies   specified by 3GPP  and it   s part of the ITU IMT 2000 family of 3G standards   Compared to its predecessor  GPRS   2 5G      UMTS is much  about up to 50     faster in data transfer  both uplink and downlink  which is needed to enable for  example high quality images and videos to be transmitted and received in the  wireless  mobile networks  and to provide an Internet connection with higher data  rates  UMTS uses WCDMA as its channel access method  and it supports up to  maximum theoretical data transfer rates of 21 Mbit s  with HSDPA    1    2  Preface     This chapter is an overview of the system architecture of UMTS networks  including  the roles of logical network elements and interfaces in a general level  A   the phases  of the evolution of 3G  Release    99     Release 7  will not be gone through  instead on  what the architecture looks like now will be concentrated on  as well as what it is  capable of and how it works  These are explained in order to ensure that the  functionality and environment of IPA2800 platform  which is described in Chapter 3   would be easier to understand  Especially the roles of RNC and MGW are the most    interesting ones     2 1  Systemarchitecture  The UMTS system architecture is close to the earlier  well known architectures used    in first and especially second generation systems  Functionally  the radio network  eleme
3.    an PB W N     PR    N a    14  14  15  19  21    25  25  26  33  36    42  42  48  51    64  64  70  72  73  75    79  80    80  82    Chapter 1  Introduction    1 1  Background    This thesis work is about lessons learned and problems found during a test  automation and continuous integration project in the complex world of network  element testing  In this process  new functional testing and regression testing tools    were implemented and taken into use     In general the target of testing of this kind is that whenever changes are made in  some part of a large piece of software  it must be made sure that the software can still  be used correctly  all the actions that a user makes and all the functions of the  platform that worked earlier  still work after the changes  The term functional testing  in this work is generally better known in literature as integration or acceptance  testing  test a functionality of a part of the system or in other words  test that  all  the  wanted functions work correctly when various program blocks work together  The  whole system is anyhow not tested in the process of this research     we are just  concentrating on individual sub systems  so that one network element works    correctly as its own  individual system     The network element platform under testing is called JPA2800  provided by Nokia  Siemens Networks  This platform is a very large piece of software that is developed  all the time  around the world  IPA2800 is used in both mu
4.    or connected to another virtual leg  From the call control    23    point of view  virtual legs are seen as normal legs  so they can be connected to other    legs  tones can be applied normally  etc     connection points         leg connector       Figure 3 6  Two legs connected  3 4 2  Logical service concept  Call resource management may also have logical services  which are abstractions of  single services with no starting point  Such services in IPA2800 are Macro Diversity  Combining  MDC  and Conference Bridge  MDC is a RNC related user and control  plane function that combines the signals from a mobile station and chooses the best  composition of guality parameters  for improving the guality of a call without  increasing the transmission power of the mobile station  Logical services are  reserved automatically by CRH when they are needed  for example when a third    subscriber is added to a call     3 4 3  Subnets  Subnets in RNC   s are for enabling non real time  NRT  data traffic  Basically  this    means that there must exist GTP subnets inside the element  which are ATM cross   connections between GTP unit s    EIPU s and DMPG   s  to enable IP traffic  IuPS   between SGSN and RNC  Subnets are created in a system restart  not anymore when  the first leg is created  as mentioned e g  in  10    and released only in unit system  restarts  Subnets in MGW s  which were Virtual Channel Connection  VCC   networks for IPoA traffic  are not used anymore with the new hard
5.   COMTENTS EEE EE E E EEE io m       isi   e  k  m  nmt    Chapter 1  INEPOAUCEI OM aisc 8sccsedidsaasseavennes aa aaa aiat a aia ei    1 1  Background   1 2  Problem description  1 3  Focus   1 4   Research methods  1 5  Structure    Chapter 2  UMTS AreAiteCturercss s essisschacasacevaave sheet   hla nahda ten   NEE ek AN KATANUN TUSKAA    2 1    System architecture  2 2  UTRAN architecture  2 3  UMTS core network architecture    Chapter 3  IPA2800 Platform          cccccccscccssseccsseccsssessseecssesessatecseeesssseesssneeees    3 1  Background  DX200   3 2     IPA2800 architecture   3 3  Availability and reliability  3 4  Call Management domain    Chapter 4  Functional and regression testing in IPA2800 platform    4 1  Integration and acceptance testing   4 2  Functional testing in IPA2800 platform   4 3  FT software tools used in Call Management  4 4      Regression testing in IPA2800    Chapter 5  The FRT and CI project of Call Management               cccseeeeeees    5 1  Test automation  5 2      Continuous integration  5 3  The automated FRT and CI project of Call Management    Chapter 6  Lessons learned from the project              uuuuusnsnn ninen    6 1    Automating FT cases  6 2      Results and analysis  6 3  What went wrong   6 4  What next    6 5      Future visions    Chapter 7  CONCIUSIONS wiissiccesteccccduncdadeatextrevdeadontastasecdeectectiaeestiieeasave ii    AAKA E EEE EN AEE E   l  k        Literature  Expert interviews    ESEO I E E E EEE EEE EE E 
6.   about which this whole thesis    work is about  This topic is described in more detail in Chapter 5     Anyway  a feature team called A team has started to run Call Management   s test  cases with also DB   s  They still have been of a weak quality usually  even though  they should be unit and DA RT tested correctly and their maturity is assumed to be  of a good level  Still  there often are some problems with basic calls  but perhaps the  biggest problem is with new features  which are added into DB   s  but which don   t  work correctly yet  or which are still incompatible with some parts of the rest of the  software  Some individual faulty features might cause even 50   of all of the cases  failing  even though these are some separate functions  Also  this feature team has  had problems with their regression testing environment  working on their DB  projects  SVN  version control  connections  tool problems  just to mention a few   There still exist a lot of problems and it   s definitely hard to try to fight them all at the    same time   Tur09     The management keeps asking every now and then  why isn   t Call Management  running its test set with DB   s  despite it was the order already about a year ago  If  some numbers tell that the maturity of the software is good  based on some unit tests    and internal RT of some areas  doesn   t mean that all the program blocks still work    40    correctly when executing FT elsewhere  throughout the platform  But  now when  C
7.   also hardware is getting faster all the time and this kind of bottlenecks will be    partially resolved by just newer technology in the future     6 5 2  The future of functional regression testing  The ideas described in the previous section would lead to a situation where the FT    test cases could be executed a lot faster  in some cases  no unit resets etc   in just a  blink of an eye  and there would always be an environment available for everyone   by simply creating one virtually for one   s own needs  If the testing would be very  fast and there would always be an environment available  the FRT part of CI could  be done  theoretically  as often as wanted  This would mean  for example  that the  situation would be the same as with PRB compilation and unit testing projects  only    when changes are made in the software  the tests will be executed     78    Also  the trend has lately been focusing more and more into testing the    actual  working     the functionalities  instead of having the focus in the beginning  the unit  tests  This is a generally known problem  and discussed also in literature  25  p  82    Focusing on System test Automation and Not Automating Unit tests   Anyway  the  focus should  and most likely will  be shifted towards the beginning of the actual  testing  to left in e g  Figure 4 4      More and more effort is put to unit testing all the time  and also very useful tools  have been implemented and taken into use lately  tools that measure the 
8.   and the use of resources should probably be reconsidered     64    Chapter 6  Lessons learned from the project    There are quite a lot of tips and tricks that were found useful during this project  as  well as problems and pitfalls that should be avoided in both automating the test cases  as well as configuring and maintaining the whole automated CI projects  This chapter    is about the discoveries  the good and the bad practices found during the project     6 1  Automating FT cases  Making FT test cases fully automatic isn   t a task as easy as it sounds  especially in    case of automating old  manual test cases  Some of these points are applicable in  different kinds of testing and with different software tools  but some of them are  more programming language specific  because of the nature of Hipla macros is kind    of unique after all        Old manual cases    in this context mean tests that might for example ask some  variables during the test execution  or have infinite pauses  which the user may  interrupt whenever he has completed some needed tasks that have to be done before  the next phase of the test  This kind of tasks could be for example checking some  logs for certain errors  changing unit states  or starting more calls in case that the  existing ones are not enough  or just timing some action correctly  which    must    be  done by the user  Because there existed no such thing as fully automatic testing  earlier and the testing was done manually  there w
9.   capable of establishing hundreds of calls in just one second  Basically  the calls can  be divided into two resource models  two sided calls and multisided calls  A two   sided call means the traditional type of calls  with up to five    sides     incoming   outgoing  pre allocated IN and OUT  and secondary IN   This model is used in RNC   Multisided calls instead are for call conference purposes  multiparty   where there  are no    sides    in the calls  but each leg can have multiple services  tones   announcements etc    and where almost any kind of topology is possible between the    legs  This model is used only in MGW   s     3 4 1  Leg and virtual leg concepts  A leg is an abstraction of the real resources  where the details are hidden from call    resource management  it only knows the type of a leg  e g  AAL2  TDM  RTP IP   IuPS   its identifiers and the connection point  The leg concept is used to simplify the  logic in CRH     the logic is not leg type dependent  The connection principle of legs  is very flexible  any type of leg or service can be connected to any type  Legs and  services have special connection points  which can be either termination points or  DSP services  The connection between two legs is called a  eg connector  This is    visualized in Figure 3 6     By virtual legs is meant internal or temporary terminations in MGW   s  Virtual legs  can be converted into tones or other similar services  realized   overwritten with    normal legs  replaced
10.   drive  HDS or WDU  in which the program itself is located     The Signal Processing Units  SPU  enable digital signal processing tasks  such as  speech encoding decoding and echo cancellation  These units also vary depending on  whether the network element is MGW or RNC  DMCU   s in RNC   s and TCU   s in  MGW   s  which both contain several Digital Signaling Processors  DSP      The system must also have some network interface units  often called Enhanced  Interface Protocol Unit  EIPU  or Network Processing Unit  NPU  for connecting  other types of data transmission methods  such as STM 1  EI  or Gigabit Ethernet   and protocol stacks  IPv4  IPv6  to the system   8     16       PSTN                                      IWF   A  Ater  8 STM 1 0C 3 Nb  TDM   Nb Mb  2 Gigabit Ethernet lu   CIP EIPU     Fss      Nb      ATM lu    Nb             Control interface  towards MSS   O amp M interface  towards NetAct                                     E1 T1UT1 PSTN     TDM IWF  A  Ater    Nb             4 E1 T1 IT1 lu  ATM IMA Nb                                     Up to 1 65 Up to 160      Gbit s per Mbit s per  port port                      Figure 3 1  Logical network element view of MGW  8     NPS1 P           Figure 3 2  Logical network element view of RNC  8     Some units of older hardware have been removed from the architectures of the latest  releases  and they are crossed over in these figures  This kind of hardware is still  supported in the latest releases  but their ba
11.   t fail again  if the other problem is    resolved     The external factors are probably the most annoying ones     it is known that the test  cases would pass correctly  but they are not because of some  sometimes mysterious   external reason  When testing in big organizations and large software  various tools  are used together  as well as various network connections  and after all it is pretty  hard to get them all work correctly together  all the time  They can be informed about  the problem  if it is known what is the cause or where does the problem lie  But  unfortunately  these often are things that can   t be affected easily  or just by reporting    of them to someone     The easiest and often most foolish errors lie in the test cases themselves  Fortunately  these bugs are often as easy to correct as they were to implement  Of course there are  different types of test case faults  possibly requiring even a total refactoring of a    whole test suite  We   ll get back to this kind of problems in section 6 1 2     But  the most wanted  the actual reason for why regression testing is done at all  are  the real defects found in the software  After a failing test case has been executed  again and it is found that the problem still persists  the reason and the defective part  of software must be found  In some cases  for example calls of some certain type  may be failing because of an already familiar error code that might easily lead to the  right track when trying to cat
12.  Confidential NOKIA    10   2005 Nokia     V1 Filename ppt yyyy mm dd  Initials Connecting People    mui                                           v                            Figure 5 1  Nokia s product CI infrastructure  27   5 2 1  Continuous Integration server  CI server is a computer that runs some CI software in it and  for example  runs an  integration build whenever changes in software are committed to some certain    version control repository     The most known CI server tool is probably an open source software tool called  CruiseControl  CC   28   which is a Java based  extensible framework for creating  custom continuous build processes  Although CC is written in Java  it is used on an  extensible variety of projects  for example Ant  Maven and Rake builds are  supported  of which Ant is used at the moment at NSN  CC is used widely at NSN     all around the world     Another  lately implemented CI server tool called Hudson  29  is raising its head  globally  As CruiseControl  Hudson is also Java based free software  Hudson looks  nice  the icons used instead of the traditional green    pass    and red    fail    colors are  really illustrative  e g  different weather signs for illustrating the near history of the  succeeding of a project  Probably the biggest differences compared to CC are    anyway in configuring and adding new projects  as well as configuring the software    51    itself  these tasks are made very easy to do  by simply clicking a few clicks   Cr
13.  FAIL    12    state   FOUND PASSFAIL  elif state    FOUND PASSFAIL   if not re search    Cell    PASSIFAIL    12      state   FOUND EMPTY       if state    FOUND EMPTY   style   style fail if status     FAIL  else style pass  print    lt Cell ss StyleID      style      gt  lt Data       ss Type  String  gt     status     lt  Data gt  lt  Cell gt     state   DONE    print  12   1     name  status            else   print   Logic error    system exit   1        
14.  In practice  functional testing of IPA2800 platform is using the MML and service  terminal connections via Telnet  and giving MML or service terminal commands  which execute the wanted tasks  The commands can look quite difficult to  understand for people who aren   t familiar with the system  a service terminal  command could be for example Z3RTSC ICSU 0 102  100 100 2  which starts  dynamic mass traffic to be running in unit ICSU 0 with wanted delay and length  parameters  also routing  codec  bit rate and other traffic parameters are given before    this      Real  full network elements are not used so much in testing in this phase  because  they are very expensive  and all their requirements  e g  capacity  aren   t even needed  in these    small    tests  That s why there exist test environments  or test benches   which are simplified versions of real network elements  they have the same  functionality  but they re much smaller and they have less Plug In Units of each kind   e g  two Signal Processing Units instead of 30   All the units needed for different    features are available anyway     Different kinds of software tools can be used for FT  but the simplest way is to take a  Telnet connection to a test bench and write the commands to the terminal window   Anyway  because the use cases often reguire even hundreds of commands  macros  are usually used  test cases   Before any    real     decent FT software tools existed  this  was done simply by copy pasting the com
15.  Interface   Man Machine Language   Mobile services Switching Center   Media Gateway Control Function   Multimedia Gateway   Multimedia Resource Function   Multiplexing Unit   Network Element Management Unit   Next Generation Networks   Network Processing Unit   Nokia Siemens Networks   On Line Call Monitoring   Operation and Maintenance Server   Operation and Maintenance Unit   A software package of some Common Build of IPA2800 that is  installed to a network element    Plug In Unit   Program Block   Packet Switched   Public Switched Telephone Network   Research and Development   Research and Development and Testing   Radio Access Bearer  a bearer service that the access stratum provides  to the non access stratum for the transfer of user data between a mobile  station and the CN    Radio Access Network   RAN Application Part  a RAN signaling protocol that consists of  mechanisms that handle all the procedures between the CN and the  RAN    Radio Network Controller   Radio Network Sub system       Round RobinAn order  in which the last who got the turn  moves into the end of the    RSMU  RT  RTP    gueue   Resource and Switch Management Unit  Regression Testing   Real Time Transport Protocol    SCP  SCTP    SEB  SFU  SGSN  SPU  SRNC  SYB  SyVe  SVN  TCU  Telnet    Test Bench    Test Suite    TDM  UDP   UE  USIM  UMTS  UTRAN  V Model    Waterfall    VANU  VLR  WCDMA  WLAN    Service Control Point   Stream Control Transmission Protocol  application level datagram  transfer pro
16.  Jyri  HiBot TWiki  Web document   Internal document  2008   Referred   17 11 2009  Available   http   wikis inside nokiasiemensnetworks com bin view Hipla HiBot       Duvall  Paul  amp  Matyas  Steve  amp  Glover  Andrew  Continuous Integration  Improving    Software Ouality and Reducing Risk  Page 4  2007  ISBN 978 0 321 33638 5    Nokia  Build CI System  Web document   Internal document  2005   Referred   19 11 2009  Available   http   wikis inside nokiasiemensnetworks com bin viewfile IPAColInProject ProductCI        rev 1  filename Build CI System ppt             Nokia Siemens Networks  Costs of faults found in different phases  Internal document     2008     Fewster  Mark  amp  Graham  Dorothy  Software Test Automation  Addison Wesley   Pages 9 10  1999  ISBN 0 201 33140 3    Nguyen  Hung  amp  Hackett  Michael  amp  Whitlock  Brent  Happy About Global Software  Test Automation  2006 Happy About  ISBN 1 60005 011 5    Dustin  Elfriede  amp  Garret  Thom  amp  Gauf  Bernie  Implementing Automated Software  Testing  Addison  Wesley  2009  ISBN 0 321 58051 6    Fowler  Martin  Continuous Integration  Web document   2006   Referred   26 11 2009  Available  http   martinfowler com articles continuousIntegration html       Nokia  Product CI introduction  Web document   Internal document  2005   Referred   26 11 2009  Available   http   wikis inside nokiasiemensnetworks com bin viewfile IPAColInProject ProductCI        rev 1 filename Product CI introduction ppt        28      
17.  This is how the situation has  changed at the target company lately  when test automation has been learned    how to be used properly     47    3  Low test automation coverage  When asked how much of the test cases are  actually automated  most organizations will report figures in a range of 20 30    or even less  This relates closely to the amount of work that the test  automation process actually takes  besides keeping test automation up to date  whenever the system changes  This low coverage is generally perceived as  disappointing by management  particularly when a lot of time and resources  are put into investigations and the actual automation work  and expectations  have been very high  At the target organization  this problem has been tackled  quite well  and the automation percentage is close to 100   today     test  automation has been taken seriously enough into account already from the    beginning     4  Poor methods and disappointing quality of tests  Usually bad automation  framework or architecture leads to these problems and the methods have a  poor level of reusability  In this kind of situation  the costs of developing and  maintaining the whole test automation process and its scripts will result in  higher overall costs  when either new tests must be planned again and again   or the old ones have to be redesigned for new situations  Sometimes  problematic situations are met  where the automation process itself becomes  very difficult  When lots of resource
18.  UTRAN architecture  UTRAN consists of one or more Radio Network Sub systems  RNS   which consist    of one or more Node B   s  known as Base Stations in the architectures of earlier  generations  and a RNC  This is described in Figure 2 2  as well as UTRAN   s most    important interfaces     Node B performs the air interface L1 processing and some basic Radio Resource  Management operations such as power control  Actually  the term    Node B    was  originally meant to be just a working name during the standardization process  but it    was never changed after all     RNC is the network element that controls the radio resources of UTRAN  It is a    corresponding element to what a Base Station Controller is in GSM networks  being    responsible for the Node B   s in its area  RNC   s are described in more details in    section 2 2 3              UTRAN       Figure 2 2  UTRAN architecture    The interfaces that are not concentrated on so much in this work  but which are also  shown in Figure 2 1  are Cu  which is an electrical interface between the USIM  smartcard and the Mobile Equipment  ME   and Uu  the  WCDMA  radio interface   Uu is the interface that is used for the UE to access the fixed parts of the system  in  other words the first radio interface that is met when creating a 3G connection from a    user terminal  Tub  Iur and Iu CS PS  interfaces are described in the next section     2 2 1  Tub  Iur  and Iu interfaces  The interface between a Node B and a RNC is call
19.  and Macro Diversity Combining Unit   Drift RNC   Digital Signal Processor   A Nokia   s network element concept originally designed for FNC   s   later and nowadays used in network elements of elder generation  mobile telecommunication technologies    Enhanced Interface Protocol Unit   Fixed Network Switching Center   Frame Protocol   Feature Requirement Specification   Functional Regression Testing   Functional testing   GSM EDGE Radio Access Network   Gateway GPRS Support node   Gateway MSC   General Packet Radio System   Global System for Mobile communications   GPRS Tunneling Protocol   File Transfer Protocol   HIPLA Robot   HIT Platform   Holistic Integration Tester   Home Location Register   High Speed Downlink Packet Access  WCDMA key feature that  provides high data rate transmission in a CDMA downlink to support  multimedia services HSS Home Subscriber Server    ICSU  IMS   IP   IPA  IPA2800    IpaMml  IPoA  ISDN  ISU  ME  MMI  MML  MSC  MGCF  MGW  MRF  MXU  NEMU  NGN  NPU  NSN  OLCM  OMS  OMU  Package       PIU  PRB   PS  PSTN  R amp D  R amp D amp T  RAB    RANAP    RNC  RNS    Interface Control and Signaling Unit   IP Multimedia Sub system   Internet Protocol   Refers to the organization that works on the IPA2800 platform   A DX200 based 3G network element platform of Nokia Siemens  Networks   An internal Python keyword library used with Robot framework   IP over ATM   Integrated Services Digital Network   Interface Signaling Unit   Mobile Eguipment   Man Machine
20.  automation and continuous integration     80    References  Literature     1  Tindal  Suzanne  Telstra boosts Next G to 21Mbps  Web document   ZDNet Australia   2008   Referred  1 11 2009  Available   http   www zdnet com au news communications soa Telstra boosts Next G to   21Mbps 0 130061791 339293706 00 htm            2  Holma  Harri  amp  Toskala  Antti  WCDMA for UMTS  Radio Access For Third  Generation Mobile Communications  Wiley  2004  ISBN 0 470 87096 6     3  Karvo  Jouni  Lecture material of S 38 3194  Wireless networks  TKK  2007     4  3GPP Technical Specification 23 228 IP Multimedia Subsystem  IMS   Stage 2  2006     5  3GPP Technical Specification 23 002 Network Architecture  Version 5 5 0  January  2002     6  Nokia Networks Oy  RNC architecture and functionality     Nokia RNC Overview     Internal document 2004    7  Silander  Simo  DX Aapinen  Johdatus DX 200  ohjelmistoty  h  n  Nokia  1999     8  Nokia Siemens Networks  IPA2800  Platform architecture specification  55555  for  All  Web document   2007  Available  https   sharenet   ims inside nokiasiemensnetworks com livelink livelink func 1l1 amp objId 397184779 amp o  bjAction Open amp viewT ype 1  amp nexturl  2Flivelink 2Flivelink 3Ffunc 3DI11 260  bjild 3D397177479 260bj Action3DBrowse 26viewType 3DI1              9  Honkanen  Mika  Huoltop    telaajennus AAL2 virtuaalikanavakytkent  jen  p    tepisteiden tarkkailuun  Graduate study  Stadia  2003   Referred  8 11 2009   Available  http   www mika ho
21.  benefit that was gained from this project is a pretty stabile     working CI environment for Call Management   s functional regression testing  which  obviously finds real software faults  These faults are now very much easier to be  found and followed  because most of the test cases are usually passing as they should      in case of a deficiency appears in the system  it will get caught very quickly  This is  the essential purpose that regression testing aims to and now it is finally possible to  execute the functional regression testing in that way  If took over a year  from  starting to design HiBot  to get it actually working together with the CI environment   but it really was worth it  Some things were still left open  and this still isn   t the ideal  situation from the fully automatic regression testing point of view  There was a  meeting inside Call Management domain to discuss about these issues and it was left  for the author to bring some solutions in this thesis work  These issues and possible    solutions are discussed in section 6 5     Also the test cases themselves were fixed  as well as numerous software bugs that  appeared during this project  especially when implementing new features  testing  them  Backlog Item Testing  BIT   and adding them to the test set  All the data was  collected from the first FRT project running in Call Management   s CI server  and the  results are shown in Figure 6 1  The green bars indicate an average value of each  month  of 
22.  cases of some project were executed in another project   s environment  in  which they are impossible to be executed correctly  This feature took its own time to  get it working properly  and what was irritating was that this kind of faults also    happened only occasionally and it was very hard to find the reason for this at first     The management heard about a concept of JPA reporting server that had been taken  into use elsewhere in IPA  which was designed for easy viewing of the test results of  different development areas  Call Management decided also to start using it  since  the concept sounded good  In principle  one might think about this as a simple  operation of sending the number of passed and failed cases  with some kind of a tag  of whose results they are  to the reporting server  via FTP   which publishes all the  results  arranged by the test case owner  and draws some chart and shows the history  of the results  This really wasn   t the case     about a dozen tags were mandatory   which must had been included in the test suites  that the results were visible  It  would   ve been okay if the tags had to be added to the test suites just once  but no  the  mandatory ones changed every now and then  in addition to the ones that had to be  modified for example whenever starting to use a newer Common Build  After all  the  great idea of the easy to use tool for management level for viewing the results of  their responsible area  was turned into a documentation a
23.  colleagues and other personnel here  at NSN  The literature part is mostly about the network elements in UMTS and their  roles  IPA2800 architecture  different types and methods of testing  including  functional testing and regression testing  test automation and continuous integration   I   ve drawn most of the figures in this thesis work by myself with Adobe Photoshop    7 0 and all those that I haven   t  have separate references in their captions     The case study is based on the results of a FRT part of a Continuous Integration    project that has been under development for about one and a half years now at Call    Management domain in Nokia Siemens Networks  and now the project finally starts    to pay itself back     1 5  Structure  In the first actual part of the work  a general look on call connecting is taken and the    roles of UMTS network elements are explained in order to get a clear view what the  work is actually all about  where and for what kind of purposes is the platform    actually used     Next  we   ll get deeper inside IPA2800 platform and the Call Management domain   what its task is and what is implemented and tested here  This is followed by a  literature study about functional  integration  and acceptance testing  leading to a  description how this was done earlier in IPA  We ll also look at the different phases    of software testing in IPA and see why each of them is important     After that  a brief description is given about the functional te
24.  fixing the existing critical problems   The pass rate of June isn   t very high yet  but more successful    no crashing   executions were done than ever before  This was the time the author as a test  coordinator  as well as the whole team started really putting some effort on the  maturity and completeness of the test cases     and July instead was a success  the pass  rate got about two times higher than what it was before  and still more test cases were    added into the test set all the time  The results kept climbing higher and higher and    72    by the end of September 2009  this project finally met all its requirements     barely  before the final deadline for this  the last execution of September 2009 included a  total of 191 test cases  of which 181 passed  This means a maturity of greater than 95    with a completeness of 100    which were the exact requirements for reaching the     P6    milestone  These results couldn   t have been achieved without a decent tool  a  decent environment  and someone really putting effort into taking care of these test    cases  or in other words  the test coordinator     6 3  What went wrong   A lot of things went wrong during this project  which definitely should have been    done in another way  At first  the lack of resources put into this work     for the most  of the project  one man was responsible for configuring the CI server  the FT testing  tool  the reporting of the results  and discovering the faults  in addition to th
25.  how this was done  earlier inside JPA  especially inside Call Management  and why it needed to be  changed  how the process has changed until this moment  and some ideas and  speculation are given on what the process will possibly look like in the future  what  would the ideal situation be like and what are the main problems and bottlenecks that    are blocking the way of getting there     Mostly we will focus on the change that was made when new tools were taken into  use  key problems and their possible solutions  what should   ve been done in a  different way  what does the current situation look like  what should it actually look    like and how can that be achieved     The goal of this work is to give a clear guideline on how a test automation process of  regression testing should be done  what kind of pitfalls there might appear and which  mistakes can be quite easily avoided  when the problems are recognized early  enough  These mistakes were once done and the problems recognized  and therefore  this documentation might become useful when there comes similar test automation  projects in the future  or when regression testing is wanted to be improved actually    anywhere  where a large piece of software is being implemented     1 4  Research methods  Both literature and case studies are used in this work  A lot of the content is based on    the things learned during both the author   s studies at TKK and the work at NSN   Some facts are also based on expert interviews 
26.  manager  A    conference  20 11 2009     83    Appendix A    import sys  import re  import fileinput    if len sys argv   lt  3   print  usage  python     sys argv 0      inputfile outputfile    sys exit  1     inputnamerestring      test  name    P lt name gt          inputstatusrestring      status  status    P lt status gt  PASS FAIL        inputnamere   re compile inputnamerestring     inputstatusre   re compile inputstatusrestring     infile   open sys argv 2    style pass  style fail           pre  fre   re compile    Cell  ss StyleID    P lt s gt s d     PASS       re compile    Cell  ss StyleID    P lt s gt sVd     FAIL      for 1 in infile   if len style pass   lt  1 or len style fail   lt  1   pm   pre match 1   if pm is not None   style pass   pm group  s    fm   fre match 1   if fm is not None   style fail   fm group  s    if len style pass   gt  0 and len style fail   gt  0   break    infile   open sys argv 1   name  status           for 1 in infile   if len name   lt  1   m   inputnamere match  1   if mis not None   name   m group  name   lower    elif len status   lt  1   m   inputstatusre match 1   if mis not None   status   m group  status    fnd  dw2n  w2n   False  False  False  NOT FOUND NAME  FOUND NAME  FOUND PASSFAIL  FOUND EMPTY  DONE   range  5   state   NOT FOUND NAME  for 12 in fileinput input sys argv 2   inplace 1    if state    NOT FOUND NAME   if name in 12 lower     state   FOUND NAME       elif state    FOUND NAME   if re search    Cell   PASS
27.  mean for example waiting for some action to happen  and do the next  required actions just at the right moment  Well  these can easily be automated by    polling the situation frequently enough and acting at the right moment     One very big issue that was faced during this project was forever loops  As in Hipla     loops are implemented by simply using basic like GOTO  and GO BACK TO     66    commands  which enable jumping to a certain place  a row that includes a wanted    tag  in the macro  The following case works as an example    Step 1  Restart a functional unit   Step 2  Check if it   s up and running again   Step 3  If not  sleep a few seconds and GO BACK TO step 2    Lots of functions of this type existed in the test cases  It really wasn   t taken into  account that what if there appears some software or hardware error and the situation  will never be like the one assumed in Step 3  For example the unit simply won   t get  up because it is broken  Or another real life example is that a macro polls and waits  for Owner Id  section 4 2 4 2  to change  but something has gone wrong and it will  never change again  This leads to a forever loop  and the author corrected a huge  amount of cases of this kind  by simply adding some counter indexes to the IF  clauses  that do an action for example like    Jf this has been done 200 times already   raise an error and get out of the loop      Even in places where faults should be  impossible to happen  this kind of conditions 
28.  only for  the active units  and a spare unit can replace any active unit in the group  This also  means that the switchover is slower than in the previous case  because it requires    warming  cold standby      SN  redundancy means load sharing  There are no spare units  but a group of units  acts as a resource pool  from where the resources can be picked  If a few units are  disabled  the whole group can still perform its functions  The method for selecting  the unit from the pool varies  it can be based for example on least loaded principle     or just round robin  For example DSP resources are used from DSP pools     The availability of the functional units that are managed by the recovery system is  controlled with unit states  Functional unit state consists of two parts  main state and  sub state  The main state tells the activeness of the unit  is it in    normal     active state   is it a standby unit  or if it   s not working at all  for example  The most common states  are Working  WO   Spare  SP   Blocked  BL   Test  TE  and Separated  SE   The  sub state instead tells  after a restart  whether the unit has achieved full functionality   if it   s totally out of use  or hardware doesn   t exist at all  The most common sub states  are Executing  EX   Restarting  RE   Updating  UP   Idle  ID   Out of use  OU   and  No hardware  NH   The main state and sub state form the actual unit state together  If  a functional  active  unit is for example in its normal state  it i
29.  or service terminal commands  so knowledge about them is reguired for being  able to implement the macros  What these macros do  is basically functional   integration  testing of one network element  which was described in Chapter 4  HIT  macros can also be interactive  by e g  asking some variables during the test case  execution  or freezing the execution totally until the user wants to continue it  called       pause 0         These clumsy HIT macros are nowadays almost totally replaced by more intelligent   easier and or more efficient tools and languages  but HIT itself is still in a very wide  use     used as an easy  guick and versatile Telnet client for handling multiple  connections to the same test environment  different service terminal connections  at  the same time  The connections are used for manually executing some tests  creating  or removing needed configurations  handling unit states  and other simple operations  which would not be reasonable to be executed by macros or scripts  In addition  other  tools such as Hipla  the next section  have been implemented on top of HIT  which    are still in guite a wide use in certain domains of IPA     34    4 3 2  HIT Platform  Hipla   Hipla was implemented on top of HIT  for enabling easier writing of more flexible    test cases  that can still be ran on top of the old HIT  Hipla is implemented as a series  of HIT macros  which form Hipla   s own    programming language     which is quite    similar to Basic languag
30.  passes and fails of    all the individual test cases are very easily readable and understandable     4 3 3 2  HiBot  The problem with Hipla was that the    report     the output  called    T30      of the    executed test cases was very hard to read because it was just a simple text file with  only the executed commands and printouts in it  If several  even hundreds of test  cases are executed with Hipla  there still is just one text file     with possibly even  hundreds of thousands of lines  and the separation of failed cases is guite  uncomfortable  Another problem is that Hipla is used almost solely here in Espoo    and people using Robot have been unable to execute Call Management s Hipla cases     In the summer of 2008  the development of a Python based Hipla     HiBot  Hipla  Robot      started  Basically this means that all the HIT code of Hipla was first    36    translated into Python code  and then some of the implementation and Robot    interfaces had to be programmed separately   19     As a result  there now are these    run_hipla_case    Python keywords  by which Hipla  cases can be executed as such inside the Robot framework     and the nice and clear  html format output reports are gotten after the execution  It is also possible now to  run both Robot and Hipla test cases in the same test suite  Also other tools  scripts   and services designed for Robot can now be used with Hipla cases  for example for    IPA reporting server use  which is described more in
31.  section 5 3     4 4  Regression testing in IPA2800    4 4 1  The definition of regression testing  Regression testing is any kind of software testing  which seeks to uncover software    regressions  Such regressions occur whenever some software functionality  that was  previously working correctly  stops working as intended  Typically regressions occur  as a consequence of program changes  and experience has shown that it is very    common that faults of this kind do appear   12     In practice  regression testing usually means either testing manually  that  functionalities  which were working before a software change  are still working  or  running a set of existing test cases that used to pass before making the changes   Besides literature  regression testing does find faults quite often in practice too and  this means a simple fact     the implementing and testing of a new feature isn   t done  carefully enough  But after all  we   re just humans  In some cases  where the  regression test set is not so slow or difficult to execute  the finding of potential faults  is actually left to the hands of regression testing  This could anyway be also a good  practice  if and only if the test set is broad enough  In this case  the regression testing  done inside some Development Area  DA   is often not wide enough and the code  with defects goes to every part of the software development  which easily leads to  additional costs and using of resources in the form of investigating thi
32.  some not so relevant commands  before the  environment and the framework work correctly  In case of HiBot  if the  Telnet connection problems  even though they were occasional  but not  rare   would   ve been resolved before implementing and correcting all the  possible commands and features  the project would ve got to this point  about in a half of the time it took now  it   s difficult to test a    fixed    functio     nality  if the whole program doesn   t work     2  Close all external problems away and out of sight  if possible  In this case   the IPA reporting server works as a fine example  multiple man weeks of  work were put into its problems  instead of getting the FT tool really  working  The pitfall was that this was supposed to be a simple  easy task  a  task once done  working correctly almost without maintenance  It really    wasn   t     3  If possible  instead of adding old test cases that probably had originally  been tested only independently  write totally new  better tests that have a  decent suite setup  suite teardown  and they are free of    features    that lead  to a crash or getting stuck  such as forever loops  The test cases should be  able to be executed in any situation  no matter if some previous test has  failed  Hints to resolving this kind of problems  and good practices of    implementing test cases were defined in section 6 1     6 4  What next     There still are some things that need to be improved  or which contain deficiencies   Ther
33.  test automation from literature  23  are given below  for getting some idea  of what test automation is all about  what it was originally designed for  and why it is    used so widely around the world     At first the most obvious task  especially in an environment where many program  blocks are modified frequently  running existing  regression  tests on a new version    of the program  The effort that the execution of a test set requires should be    43    minimized  if a test set already exists  which has been automated for being executed  with an earlier version of the program  the effort for selecting a set of tests and    starting their execution should be a job of just a few minutes of manual effort     Secondly  more tests can be executed more often with test automation  This simple  fact is a very big reason for automating the testing  More tests can be ran in less time   which makes it possible to run those tests more often  which leads to a greater    confidence in the system     What about running a test that simulates the input of 200 online users at the same  time  It may be difficult  but not impossible  to perform this manually  but by  automated tests  this kind of situation can be simulated very efficiently  So  the third  key point is that it might be even impossible to test some situations manually  and  this is where test automation comes in  Also some aspects that wouldn   t be noticed  by a real test user  can be seen by an automated test  For example s
34.  to other units  PRB   s   and possibly also giving a wanted response to the  test point unit  without having the functionality implemented in an interfacing PRB  yet  The manual part of these is replacing the existing    real    versions of the PRB   s    with these test images  and restarting some functional units or the whole system     Why is this manual then  It really isn   t a big task to automate the copying  sending  and deletion of some files via FTP  and especially restarting some units or the whole  system  Well  the point is rather doing this manually because of the fear of failures  when changing the image files  because this would possibly lead to the rest of the test  cases failing  But anyway  these could be automated  whenever wanted  and proper    checks made also  that everything would go as it was planned     It is discovered that the only types of actual manual test cases are the ones that  require hardware modifications  These are the only type of tests  with which the  author hasn   t been able to come up with a solution for the automation problem  This  kind of hardware modifications could be for example disconnecting some plug   cable  or physical unit during a test case  to test some kind of fault recovery actions  for example  For example  if a protected  2N  functional unit that is holding a call is  disconnected  its pair unit should take its place  without the call itself even notifying  the change  Of course also these could be automated  but i
35. 29      30      31      32     82    Sourceforge net  CruiseControl Home  Web document   2008   Referred  26 11 2009     Available  http   cruisecontrol sourceforge net        Kawaguchi  Kohsuke  Hudson CI  Web document   2009   Referred  26 11 2009   Available  http   hudson ci org        Kuokkala  Juha  HitPythonTranslator  Web document   Internal document  2008    Referred  26 11 2009  Available   http   wikis inside nokiasiemensnetworks com bin view Hipla HitP ythonTranslator       Nokia Siemens Networks  Cb aarseb mgw ft HiBot project of CRH   s CruiseControl   Web document   Internal document  2009   Referred  29 11 2009  Available   http   10 144 18 31 8080 dashboard tab build detail cb aarseb mgw ft HiBot       Aulanko  Anu  EE RDOX  Web document   Internal document  2009   Referred   28 11 2009  Available   https   confluence inside nokiasiemensnetworks com display EE EE RDOX       Expert interviews     Kor09      Til09      Tur09      Hup09      Kuo08      CRH09     Korpinen  Jaakko  Engineer  SW design  Call Res amp Routing  FI  11 11 2009     Tilander  Sami  Product Manager  Product Arch amp Mgmt FI  Several conversations    during November 2009     Turunen  Katri  Senior Specialist  SW  DSP ResourceMgmt FI  16 11 2009     Huppunen  Marko  Specialist  SW design  Call Res amp Routing FI  16 11 2009     Kuokkala  Juha  Main responsible for Hipla and HiBot software  Call Res amp Routing  FI  August 2008   Call Resource Handling team  Engineers  specialists and a line
36. B   s are starting to be on a good level  moving to using DB   s will be possible soon   But there still exist problems to win  such as the difficulty of installing new build    packages     One of the big problems with moving RT to Daily Builds has been the installing of  new packages  which should be done all the time when new DB   s reach a maturity  level good enough  The installation has been done manually  and the installation  itself often fails  If everything goes right  installing a new package takes about two  hours  one for the actual installation  and one for activating licenses  creating  configurations and doing patches  and of course configuring all the test automation  tools to use this new package  Also  when the installation happens to fail  it must be  started from scratch again  which takes even more extra time  This is a process that  definitely should be automated  if it is really wanted to move to using daily builds  or  else more resources are needed     someone to do this as his job  Well  while writing  this and really recognizing this problem  the author took the automation challenge   This automatic package installation and configuration system is not in use yet  but it    will be soon  More about this in section 6 4    4 4 3  Functional regression testing traditionally in IPA2800  This section is about regression testing in practice in IPA R amp D and Call    Management domain  To understand the differences in practice  which this FRT and    Conti
37. Core Network  usually with both MGW  earlier  MSC   and SGSN     Unlike in GSM systems  where Base Station Controllers  BSC  were connected to  each other only via Mobile Switching Centers  MSC   the RNC   s in UTRAN have  also direct connections  Also  in UMTS architecture s   the transcoding unit is moved  to the Core Network  instead of doing this kind of media stream translations in RAN     where this was done earlier   3  p  46     A RNC that is controlling a Node B is called the Controlling RNC  CRNC  of the  Node B  It is responsible for load and congestion control of the cells in its area  and it  also executes code allocation and admission control of new radio links which are    established in those cells     In case of a mobile UTRAN connection  which is using resources from two or more  RNS   s  the involved RNC   s have two separate logical roles  Serving RNC  SRNC   and Drift RNC  DRNC   which are shown in Figure 2 3  In this figure  a soft  handover is made  the SRNC still holds the Iu interface after the handover  but it now    uses resources from the new Node B only  in another RNC   s  DRNC  control area     The SRNC for a mobile is the RNC that is responsible for both the Iu link for the  user   s data transport and the corresponding RAN Application Part  RANAP   signaling between itself and the Core Network  It performs L2 processing of the data  to from the radio interface  The SRNC also takes care of basic Radio Resource  Management operations  such as ha
38. HELSINKI UNIVERSITY OF TECHNOLOGY  Department of Communications and Networking    Communications Laboratory    Jyri Ilama    Functional regression testing and test automation in a 3G  network element platform environment    Master s Thesis    Espoo  January 18  2010    Supervisor  Professor Jyri H  m  l  inen  D Sc    Instructor  Jari Simolin  M Sc    HELSINKI UNIVERSITY OF TECHNOLOGY ABSTRACT OF MASTER   S    THESIS  Department of Communications and Networking    Date  Pages  Title of thesis    Functional regression testing and test automation in a 3G network element  platform environment       Professorship Professorship Code  Communications S 72    Supervisor  Instructor    This study is about lessons learned in automating the functional regression testing of a  complex 3G network element platform that has very strict requirements of fault tolerance   This test automation process contains automating functional testing test cases as well as  automating the whole regression testing  ending in using a continuous integration server     Lots of things went wrong and should have been done otherwise during this project that  contained the implementation of a new functional testing tool  taking it into use as a part of  our continuous integration strategy and making the regression testing fully automatic   giving reasonable  clear and illustrative results that would lead to a better quality of the  whole software  Lots of lessons were learned and all of these are documented here  
39. SDN  which are accessed via MGW s  or MSC and GMSC  IuPS  instead is for connecting to external PS networks  such as the Internet  which is  connected to CN via SGSN and GGSN  Iu is also an open interface  and it handles    switching  routing and service control     There is also an additional third interface  Iu Broadcast  IuBC   which can be used to  connect UTRAN to the broadcast domain of CN  but we   re not interested in that    interface in this work     2 2 2  IP Transport in UTRAN  Although ATM was the transport technology in the first release of UTRAN  it was    clear from the beginning that the increasing popularity of IP technology will lead to a  greater demand for this type of protocols  and another option had to be designed also     IP transport was introduced in the specification of Release 5     The frames of User plane Frame Protocol  FP  can also be conveyed over UDP IP  protocols on Iur and Iub  and even over RTP UDP IP protocols in IuCS interface  in  addition to the originally defined option of carrying AAL2 ATM  Also  an option of  using SCTP directly below the application part is introduced  Anyway  the protocols    10    used to transfer the IP frames are unspecified  for leaving more options for the  manufacturers and for not limiting the use of the interfaces of the lowest layers in    operator networks     2 2 3  Radio Network Controller  As mentioned earlier  RNC is responsible for control of all the radio resources in    UTRAN  It interfaces with 
40. TDM case  E  MRE owner id change namic load   remote TDM case                                                                                                MRE0402  MXU warming with static load   MRE0402A  MXU warming with dynamic load   93  MRE0403  CACU Warming  SP CACU restart without leg creations   94  MRE0404  CACU Warming  SP CACU restart with static calls    95  MRE0405  CACU Warming  SP CACU restart with static   dynamic leg creations   MRE0502  Administrative state of VCLtp is LOCKED                                                  MGW VIRT DAT  50182T08   MVI0201  Replace virtual leg  M10301  Realize virtual leg  Virtual connection  no virtual leg                       Figure 5 2  An Excel sheet of the individual test case results of a project    This script was found very useful  and it has really helped in finding critical  problems concerning test cases of certain projects  especially when there is only little  time and resources available for investigating all the results of all the projects  It was  also originally designed  that there should also be some kind of    error codes     indicating into which kind of a problem did a single case fail  was it for example a  CruiseControl problem  a HiBot problem  a test case bug  or a real software bug   This would   ve been a good idea  but it would have required a lot of additional   manual work to add those codes  which would   ve probably ended in waste of    resources again  so it was decided to not start doing 
41. ability of the network  The user data goes via a MGW  whose main    function is to provide UMTS functionality for the CS core  It is the endpoint for the    13    ATM transmission from to UTRAN  and it performs the actual switching of user data  and network interworking processing  such as echo cancellation and speech  encoding decoding  So  MGW is actually used as a    translation device    that converts   transcodes  digital media streams between different kinds of telecommunications  networks such as PSTN  SS7  and Radio Access Networks of Next Generation  Networks  GSM GPRS UMTS   MGW   s enable multimedia communications across  NGN   s over multiple transport protocols such as ATM and IP     Data and control  Control       PSTN ISDN               IP NETWORKS    IMS Functionality       Figure 2 5  Release 5 UMTS CN architecture  SGSN and GGSN have remained almost the same from the early Release 99 and  they cover similar functions as MSC but for packet data  including VLR type of  functionality  and they also connect the Packet Switched CN to other external    networks   5    6     14    Chapter 3  IPA2800 Platform    This chapter covers the basic functionalities and the architecture of IPA2800  platform  as well as the strict requirements that the platform has  The role of Call  Management domain is looked at a more detailed level  because of understanding the  essential purpose of this domain as well as its responsible functionalities  which were    also tested during t
42. actual  quality of the code whenever a build is made  in form of e g  complexity  duplexity   or copy paste detecting  This will forcedly lead to better quality of the code  which  means that there won   t most likely be as much defects in the software anymore as    there is at the moment     With both the increased amount of effort put into unit testing and with the help of all  these useful tools  the trend will lead to better working software  in which functional  testing won   t find so much defects anymore  This means that the relative significance  of FRT will reduce from what it is today     where defects are found all the time with  Call Management   s FRT projects  At latest at this point  executing the FRT test cases  would be done only in case of changes in the software or in the test cases themselves   But after all  because functional testing is the actual  final using of the whole system     it isn   t possible to leave it totally away  anyway     79    Chapter 7  Conclusions    Automating test cases  especially automating a test suite  is definitely not a simple  task  Automating a test set  making the whole regression testing process automated is  a very complex task that requires lots of people  tools  computers  and network  connections working tightly together  This is what we are working on  and this is    what we have already partially achieved  thanks to this project     This project was a great success despite all the faced problem  the goal was achieve
43. amiliar with these systems and learned how to configure them also    without help  but this took its own time of course     These projects for configuring the environment for FRT were found to be critical   because of the fact that the same environments were used at daytime for other tasks  such as implementing and testing new features  among other backlog related tasks   Very often some test versions of some PRB   s were left in the environment or there  were some hanging resources left from the daily testing  which both lead to failing of  the FRT test cases executed nightly  The solution for this was to always create a  separate copy of the software package which is used only for CruiseControl  purposes  and implement a macro and a project  which change these packages active  always before running the actual FT projects  Proper configuring of the    environments  as well as the projects themselves  is a very important task     Since the author  as a summer trainee  was the one responsible for the FRT part of CI  in practice and the one who went through the FRT execution results daily  the author    accidently took the role of the test coordinator of his requirement area during the    57    winter  This was not planned  it just happened because no one else had as much  knowledge as the author had about which test cases are actually executing  which  cases are failing  where does the trend of results lead to  when to add new cases to  automatic FRT  when to start using new r
44. andle the reguirements of telecommunication systems of the third generation  This  was the need that started the developing of IPA2800     a DX200 based system  which    is much more efficient and clearer of its architecture than its predecessor was  But     15    IPA2800 is not a substitute for DX200  it works in parallel with these old systems   hand in hand  offering new resources and possibilities that are needed by the third    generation systems     3 2  IPA2800 architecture  IPA2800 was designed to be much simpler than DX200 from the architectural point    of view  Block diagrams of the latest releases of IPA2800 are represented in Figure    3 1  MGW  and Figure 3 2  RNC      The most relevant units  which can be found from both figures  are ATM  Multiplexing Unit  MXU  and ATM Switching Fabric Unit  SFU   The multiplexers  forward and adapt traffic of slower transmission speeds coming from outside to the    SFU  which connects the inter computer ATM connections to each other     The control functions are different kinds of computers  which take care of general   internal controlling tasks and signaling to other network elements  Units of this kind  are ISU  CACU and VANU in MGW   s  ICSU and RSMU in RNC   s  and OMU in  both of them  The Operation and Maintenance Unit  OMU  is a very important unit   which acts as a user interface between the user  operator  and the network element   as well as handling of alarms in different situations  OMU has also a separate hard  
45. as a huge amount of test cases of  this kind in Call Management  This part isn   t very applicable for e g  Robot cases      which must be made automatic already in the beginning  But what is applicable for  any kinds of test automation  is the principle of a generic structure  if the situation   the environment for example goes through some minor changes  this won   t either  affect the test case at all  or the case is easily modifiable to work with the new system  also  Hard coded values for example  in most cases  are a good example of very bad  test implementation  the case works this time  but if the system  the huge software   changes a bit  the case won   t work anymore  In some cases  as in the bundled NCID  cases  section 4 2 4 5   the values don   t even need to be hard coded  but if some other  functionality changes a bit  the tests will fail  This mistake was mostly caused    because of the poorly implemented configuration  or not even poorly  but without    65    obeying the modularity principle  the amount of the created bundled NCID   s was  actually the boundary limit below which these tests wouldn   t work in the future  because another  later implemented functionality would have required just one more  NCID to work correctly  to get those NCID   s distributed correctly to different  functional units working as a resource pool  If it would   ve been easy to add the    missing NCID to the configuration  this would   ve been done a long time ago     Also  very 
46. avoided by executing decent  teardowns after the test cases  For example  at the end of running a test suite  a  teardown case should be added that makes sure that everything is as it was before  executing the case  there is nothing extra left from the previous test case and nothing  mandatory is missing from the configuration  Also  simple checks and corrective  operations should be done already in the end of single test cases for avoiding this  kind of problems  as well as getting defects caught  In this case  these teardowns  were almost totally left out of the tests  because they really weren   t originally    designed to be executed consecutively and automatically     In some situations  the teardowns may be very hard to get working as they should   For example  when a certain configuration  which in addition is almost always  normally created in the test environment  is used for 200 test cases  but there is one  test suite containing tens of test cases  which requires removing the basic    configuration totally and creating a new one  Which ones should be executed first     We didn   t think about this kind of problems in the beginning  Bundled NCID cases   section 4 2 4 5  are a test suite of this kind  requiring a totally different  configuration from what is normally used in the test environment  Originally  these    were treated as    manual cases     because of the possible problems with removing and    69    creating the configurations  The author automated these 
47. by creating several smaller tasks  which are attempted  to get done during a sprint  A scrum is a daily meeting  which should last for no more  than 15 minutes  and is usually performed without chairs  Every team member takes  his her turn one after another  to tell what he she has done since the last meeting  has  he she faced any problems  and what will he she do next  At the end of the sprint  a  sprint review is held and the new functionalities and features  which the backlog  items hold  are demonstrated to the product owner  The product owner decides if    they are correct and done  or if there still is some work to do to get the tasks finished      lt I    every 24         Scrum  15 minute daily meeting   Teams member respond to basics   1  What did you do since last Scrum  Meeting    2  Do you have any obstacles   Sprint Backlog  Backlog 3  What will you do before next  Feature s  items 30 days   meeting     assigned expanded  to sprint a team    7    Product Backlog     Prioritized product features desired by the customer        Ma       N ew functionality  is demonstrated  at end of sprint       Figure 4 1  The basic idea of Scrum  13   4 2 2  Definition of functional testing  The processes demonstrated in this section  excluding the FT process model of  Waterfall  are shown as they are done in practice     not based on any written material   just my own handwriting based on learned practices in different domains at Nokia    Siemens Networks     As described in the 
48. ch the defective program block  It   s best to first check if  some new software corrections concerning this program block have been uploaded to    the test environment after the previous execution of this project  The uploading of the    61    corrections is also done automatically every evening  if new corrections for the used  environments have been published  In this case     the guilty    is found  but still it is  needed to collect some more information  as well as in case of still not knowing who  is responsible for this problem  Usually some computer logs are written when an  error appears  or possibly even alarms  section 3 3  fault management architecture    At this point  usually someone in the responsible domain knows at least what this  error is about  or even what  or which PRB  might cause it  If not  more information  is needed  and the test case is executed again with message monitoring activated  this  collects all the wanted actual messages that are sent between different program  blocks  to the hard disk of the test environment  Usually some messages are captured  as default  and they can be sent to the person or group who is responsible for the  piece of software that probably is defected  Often  especially if the PRB is outside  one   s own DA  all the information that is needed for resolving the cause of the  problem isn   t known  but it is always comfortable to deliver at least some essential  information  even it is known that they will ask for more 
49. ctually being concentrated on at the moment at Call Management  because even the  CB   s have often been of quite a poor quality level  even though they have been  getting better all the time  The goal has been for over a year now to move the  regression testing solely to using DB   s  and there has actually been many attempts to    do this  but there has been a few major problems     39    At first  as mentioned  even the CB   s  at the moment they are frozen and testing can  be started  have been in a poor condition  lots of corrections have been needed that  they would have worked at all  Then what about Daily Builds  Even the creation of  the basic configuration and the most essential  establishing basic calls  have often  kept failing  especially with early DB   s  Secondly  the author   s opinion is that before  it is possible to move to running the regression testing with DB   s  the maturity of  CB   s must achieve good enough level first  e g  the maturity of all test cases should  be greater than 95    Now  when there still exists a lot to correct and finding defects  are found in CB   s all the time  this is not the right time for that change  again  this is  the last point to correct those defects without lots and lots of extra expenses  But  the  situation is looking very much brighter than for example a year ago  when even the  CB   s we   re hopeless in the beginning  The Continuous Integration projects and  Functional Regression Testing can be thanked for this
50. d   as well as all the required milestones concerning the maturity and the completeness  of the functional regression testing of Call Management  Although big problems  were faced because of the poor use and focusing of resources  this was a very  educative story  we learned our lessons and now  when publishing this work   someone else might find these tips and tricks useful too  for avoiding the major    pitfalls and mistakes in this kind of test automation projects     The functional regression testing part of Call Management   s continuous integration  is on a good basis at the moment  but there still are things to be done for enhancing  the quality  reliability  and the level of automation  Even the focus of the testing will  change a bit  starting from this moment  from using Common Builds to using Daily  Builds in the automated testing  which has been the target for a long  long time  already  The focus will most likely still move closer to the actual programming     bit  by bit  and unit testing will partially supersede the needs of executing the FRT    continuously  on a daily basis     Things will become easier and more automated in the future  and most of the faults  will probably inform about their existence by themselves  which helps the daily  investigating of the problems a lot  Tools are becoming more and more intelligent  as  well as the test cases themselves     we still have a lot to learn to achieve the ideal    situation of testing  and especially  of test
51. d and how they were actually executed  But something that didn   t really  encourage for taking this project was Kuokkala   s words  concerning a data update  functionality  during the last days of the summer     That will probably be an infinite  swamp to get it working      Kuo08   Despite those not so supportive words  the tool  got working as it was designed  in only about few weeks  By this is meant that some   simple Hipla cases were possible to be executed using HiBot  but most of the    functionalities still weren   t implemented or were very buggy     In the beginning of January 2009  after the critical  major deficiencies were found  and fixed and the most relevant features finally started to work  it was decided to  start using HiBot in Call Management   s automated regression testing     in the  CruiseControl of Call Resource Handling team  This was designed to both find more  defects and possibly unimplemented functions in HiBot when running all kinds of FT    test cases with it  as well as finding real software faults in the IPA2800 platform    54    later  This CI with HiBot pilot project was a big success  as defects in HiBot code  were found all the time  When it worked properly  HiBot was discovered to be a very  good and powerful tool for FRT in the CI concept  More and more test cases were  added to the FT project in CruiseControl  and finding all the bugs and missing  functionalities in the software was really focused on  Also some other teams inside  Cal
52. de  changes to their code  and they don   t have an adequate test set to test whether the  changes have broken something else  When their changes are frozen and become  available for everybody  these possible defects are found anyway  and even quite  quickly  but the so called    easy    faults should be tested  found  and corrected already  in the DA RT phase of the responsible domain     The author  as a representative of the Continuous Integration generation  is still  wondering about how things could have been working so well before decent  regression testing had been applied  On the other hand  by that time the software  itself wasn   t as large and complex as it is today  but the programming was probably  also done more carefully     exactly because of the lack of regression testing  capabilities  Nowadays the situation is that if one implements a correction with a bug  in it today  it might have been found already tomorrow by someone else  in another  domain  The attitude towards proper DA RT may have changed a bit  because CB  testing also finds these defects very quickly  so it    doesn   t matter so much    even if  there were some minor defects  for example  Also again  we   re only humans  and  often when e g  doing a correction to some case  which must be done quickly and in a  hurry  it isn   t even possible to test the whole software again after the change is made   and the defect might appear in some place that was totally unexpected at the moment    of implem
53. e actual    work  the backlog tasks and fixing the actual test cases     It must be understood that testing isn   t the most important task that needs to be done   but it really should be among the most important ones instead  it really needs  resources and effort to be put into it  As depicted in section 5 1 3  R amp D amp T should be  done instead of just R amp D  It is difficult  when there exist so much problems  for  example customer faults have a very high priority of fixing  as well as some critical  other faults found in the software  Even these are often done by    just one hand      because of the hurry  especially when the end of a sprint starts to approach  when all    backlog items are needed to get done     This is a major problem     the system has gone so deep into this Scrum mode  that the  daily things and problems that come from    outside this mode    often aren   t able to be  managed at all  Of course it is difficult to prioritize this kind of things  but this really  is one thing that should be thought about again  and stepped in by the higher level  management  especially during these difficult times of recession  when using of    every single resource must be considered exactly     Of course there are also some concrete points which should be done in a different    way     73    1  Focus on the essential  critical features functionality  Focus on these until  they work correctly and try to avoid getting deep in fixing some minor  features  for example
54. e was a meeting among CRH  CRH09  designated for this thesis work  to find  out what is still missing and what would people want Call Management   s FRT to be  like     The first point is obvious  FRT should be reliable and automatic  There still are    problems every now and then with CruiseControl and other related software  like the    74    version control system that is used at NSN  or simply in some network connections   When the whole system is as big as in the case of this work  various different tools   software  servers and connections must be used  and this will always be a problem to  get them all working together  A project that is starting at the moment is moving all  the FRT projects from CruiseControl to Hudson  because of possibly more reliable  use  and easier configuring and maintaining of them  It is possible  even likely that  the CI server related problems would be solved by changing the tool  and it definitely  is worth giving a try  At the moment  a pilot project is already running in Hudson     still with no problems at all  so this looks like a working solution     What about fully automatic then  Exploring the results will always be partly manual   but this is one point that could be developed more  A very good proposal was a  feature to be implemented into HiBot  which would show the actual commands that  have failed in certain test cases  for easier and faster top level exploring of the  results  So  opening the whole report of hundreds of test ca
55. e was the quality     the maturity of DB   s     which  seems to start being on a good level at the moment  Actually  a new tool for     automatic    installation of  newest  DB   s has been implemented lately here  in  Espoo  There still are some bugs in it related to finding the newest Daily Build by  itself and installing it fully automatically  But  at least the tool seems to work fine  with a pre defined build  so the author took the challenge to implement an automatic  version of configuring the environment totally  to a ready for testing point  This may  mean activating licenses  doing patches in files  uploading some images via FTP to  the test bench  depending on the network element type  and of course creating the  configuration that were are using here in CRH  With good specifications  these  scripts were implemented in a few days and now it is possible to install a Daily Build  and configure it totally ready for testing  by just clicking the project execution button  in CruiseControl  The next task is to really move the testing to DB   s and still create  new scripts for CruiseControl   Hudson  because of the results being sent to the JPA  reporting server  would otherwise go wrong because of an incorrect file name  if the    name would   ve not been changed manually always when changing the build in use     After all  it was quite surprising that these actually were the only ideas for  developing Call Management   s FRT further  Lots of suggestions of making chan
56. ed Iub  UMTS is the first    commercial mobile telephony system in which this interface between the controller  and the Base Station is standardized as a fully open interface  This means more  options for the manufacturers of these elements  which easily leads to improved  competition in this quite a narrow market  It is also likely that new manufacturers    will sooner or later enter the market concentrating exclusively on Node B   s   2  p     78  This hasn   t happened yet anyway  at least on large markets  and probably even    won   t before the economic recession is over     The other important interface inside UTRAN is Iur  which is also an open interface   Although the role of Iur was originally mostly for allowing soft handovers between  RNC   s from different manufacturers  it also supports other services such as SRNC  relocation  inter RNC packet paging  support of protocol errors and support of inter   RNC cell and UTRAN registration area updates  support of dedicated and common    channel traffics  and support for Global Resource Management     Iu instead is the interface from UTRAN towards the CN  for example connecting a  RNC to a MGW  It might be either Packet Switched  IuPS  or Circuit Switched   IuCS   depending on which part of the CN the RNC is connected to  as was shown  in Figure 2 1  The division depends on the requirements for the data  whether it   s  real time  CS  or non real time  PS   IuCS is used for accessing external networks  such as PSTN and I
57. eleases  and so on  The role and the typical    day of a test coordinator are described in section 5 3 3     By this time  it was almost summer again  and there still were lots of problems with  HiBot  mainly concerning timeouts in connections  echo errors when reading outputs   and prompt detection problems  Finally  the man who originally implemented the  Telnet connection handling functions of HiBot came back to work and started  working on these problems  It would finally be possible to execute FRT with HiBot  in Call Management   s CI environment  focusing on the actual CI tasks  to find and    fix defects in IPA2800 platform     At that moment  the lately named test coordinator finally had time to focus on other  things also  such as developing the quality of the testing in practice and maintaining  the completeness and maturity levels high enough  Where the reporting server shows  only the history of daily passes and fails for manager purposes  the CRH team came  up with an idea of showing the history of all the individual test cases in an Excel  based table  All the FRT cases were listed already in an Excel sheet  so the basic  information was already available  The script for adding the results to this sheet was  quite simple to be implemented with Python  when the specifications were clear   This script  Appendix A  searches the individual test case status from Robot   s XML  format report  based on the name of the test case  then examines if the Excel sheet  contai
58. entation     42    Chapter 5  The FRT and CI project of Call  Management    This chapter is the most significant part of this research  all the information given in  the previous chapters are now described in action  We ll start with a literature study  about test automation  continuous integration  and continuous integration server    tools     The project of fully automated FRT is described in section 5 3  what was it like in the  beginning  what were the biggest problems  how were they planned to be solved and  how this actually happened  or were the problems even solved  Some very good    practices were found and these are also covered here     In section 5 3 3  the actual work of the person responsible for his area   s FRT is  described     that the tests are executed correctly  that the automated testing works and  in case of problems  e g  defects found  that he informs about these problems to the    responsible person or group     5 1  Test automation  This section is mostly a literature study about test automation  in addition to    speculation about the practices at NSN  We   ll take a look of the benefits and  drawbacks of both manual testing and test automation  for giving some motivation    and background information for the whole test automation project     5 1 1  Why to automate   The traditional idea of test automation is to enable some tasks to be performed in a    much more efficient way     which could be even impossible in manual testing  Some  benefits of
59. es     The macros are very easy and quick to be implemented  the executable MML and  service terminal commands can be written as such to the text     DAT     file  instead of  some required overhead  as this has to be done in HIT macros  Also simple loops   scanning the outputs  saving variables and their handling  such a string or arithmetic  operations can be done with quick and easy to implement commands  Hipla   s  strengths  compared to HIT macros  are definitely its flexible and quick macro    implementing  the result is less lines of code in less time  with more functions   17     4 3 3  HiBot and Robot Framework  4 3 3 1  Robot Framework  Even though Robot Framework is not really used in Call Management domain  it is  introduced here because Hibot     which is used instead     runs on top of Robot    Framework     The most significant difference between Robot Framework  usually called just  Robot  and other FT software used at NSN is that Robot is open source software  It   s  released under Apache License 2 0 and its copyrights are owned and the  development is supported by NSN anyway  Robot is also designed for fully  automatic testing and one can   t actually see the execution of the test cases while their  being executed  only the pass fail status of each  After the test case execution  an    xml html based output is generated     Robot is said to be a generic  keyword driven test automation framework for  acceptance level testing and Acceptance Test Driven Develo
60. even decades  and everything has    worked fine     Well   people in Call Management domain actually still use the old Hipla for writing  and executing the test cases  but the automatic regression testing  including  those test cases  is executed with HiBot  This was a good solution for actually  ignoring the problem at all  the senior people could continue writing their test  cases in the way they   re used to     the new system just executes these tests    inside another framework     Besides these problems  an unfortunate fact is that the efforts of automated software  testing still fail for various reasons  Convincing the management about the  importance of testing is a huge problem  as well as getting more attention generally  to the  regression  testing itself  This is a big problem in the target company  as well  as globally  most reports and articles on technology advances cover only R amp D  and  are not related to testing in any way  Instead of this  more focus should be put into  research and development and test  R amp D amp T   for example concentrating on    how  should this great technology be tested     since the testing itself may have a big impact  on the success of the implementation  or also the failure of a company   s perceived  quality  Although the testing itself has become more important than ever  innovation  does not seem to consider the related  required testing technologies in any way   25     Chapter 4     5 2  Continuous integration  Continuous 
61. form of pronto corrections  when faults are  found  These corrections are often quite critical and must be uploaded into the test    environments for all the functionalities to work   21     Before moving new program code to DA RT  the program blocks are unit tested   which means verifying that the code itself works as a single unit  This is actually the  first phase of testing  After this  the code is added into a build and it gets    integration  tested    among other units  first in DA RT  which checks that other responsible  functionalities of the area still work correctly  and then in CB testing  so that other  parties can also verify that nothing has been broken and that everything still works    fine elsewhere in the software  The next phases are Performance Testing  PET  and    38    System Verification  SyVe   where the real platform is tested in a real environment  that contains all the needed network elements  instead of testing only individual  elements like this is done in CB testing  This is the final testing phase before  releasing the product  Testing in the CB phase is very important  the Common Build  phase is the last opportunity to find and fix defects with decent costs  as can be seen    in Figure 4 4     Costs of faults found in different phases       Unit DA CB PET Customer  Testing RT Testing SyVe  Figure 4 4  Costs of faults found in different phases  modified from  22   The term CB here contains both DB and the actual CB testing  The latter one is  a
62. ges  to unit tests  unit testing tools and their environments came instead  from the  automation point of view  This would probably be a good problem to be solved by     for example another thesis worker     6 5  Future visions  This section gives  possibly even a bit utopistic  view to what functional regression    testing might look like in the future and what would the ideal situation be like  We ll  look about the trend  what does it look like and where will it probably lead us to   Some general level suggestions are given on how this could possibly be achieved     some day     76    6 5 1  The future of functional testing  There are two major problems concerning today   s functional testing  The first is the    lack of test environments  teams would need their own  dedicated test environments   Even the test benches are quite expensive  so this would mean a lot of investments   The second is the fact that running functional tests is very slow  it takes from a few  milliseconds to seconds to run tens or even hundreds of unit tests  but several hours    to execute a set of FT test cases     6 5 1 1  Virtual test environments  It really isn   t impossible to simulate a test environment  containing all the hardware    and software  by using solely software  Simulation of all the interfaces of a single  program block was already made possible several years ago by a concept called  RDOX  32   RDOX was originally designed for modular testing of a certain program  block  by simu
63. he saving of  resources and time  and also leading to an increased confidence in the system   because it simply is tested more deeply and more often than in case of manual    testing     Of course these mentioned points are just from a general  top level point of view   When going deeper into the subject  there are different levels of test automation  for  example by semi automatic testing is usually meant automated tests  but whose  execution is started manually  Instead  full automation means that the execution also  starts automatically  which is described more in the Continuous Integration topic  in    section 5 2     5 1 2  Pitfalls of manual testing  Let   s take another point of view  why not to do it manually  even though manual    testing has been the cornerstone of software testing for decades  We   ll look at what  the major pitfalls of manual testing are  which should be avoided if possible  Five  statements are represented here  which are said  24  Chapter 3  to be the most  significant drawbacks of manual testing  This gives even more motivation for    automating the testing  fully     1  Manual testing is slow and costly  It takes a long time to complete the tests  because the testing is often very labor intensive  Of course this problem can  be tackled by increasing the headcount  but this increases labor costs as well    as communication costs  which doesn   t sound like a good option     2  Manual tests don   t scale well  As the complexity of the software i
64. hey are today     This was just a top level  general description of what CI actually refers to  In  practice  especially in case of a large piece of software  this often is a very complex  process  including various different phases of different kinds of testing  different  servers for certain tasks such as version control  data bases  test automation and some  processes related to functions of certain tools  Let s take Nokia   s original product CI  infrastructure as an example  which is shown in Figure 5 1  In this figure  SWBT     Software Build Testing  means basically functional  regression  testing     The big picture of continuous integration in IPA means usually all the phases  the  whole structure of the software engineering practices  which were briefly described  in section 4 4 2  including all the different testing phases  as well as implementation    and integration  ending to a final product that can be shipped to a customer     50    Product CI Infrastructure    p pp     lt  5 i  poner eer nerneserssannans cece  gt  Test Benches    Generate  Feedback  Mechanism un Test  Poll I  Schedule k SWBT   N  a      Feedback Generate    Mechanism SYN  Test trigger Test Automation    Kon CI Server H  Dae taser build EE    Announce Changes Poll schedule    J Poll dj run J build  M i n  Developer   N Si ChoSEE  Codebase  SVN  SVN  DMX trigger SYN  Daily build PDE Update  BeTools wild  SPM ClearCase  aa CENV Update   fia E  20 Program Build     Data Build d  DMXSEE    Company
65. hich I was involved earlier when still    working for Nokia Siemens Networks     I would also like to thank Jari Simolin  my instructor and former manager at NSN   who gave me quite free hands with this thesis work  trusting on my own competence  on this topic  Also the whole Call Resource Handling team was very supportive  whenever I had any kinds of problems  as well as our Product Manager Sami  Tilander  from whom it seems to be impossible to ask a question without getting an  immediate answer  The whole Call Resource Handling team has also made a very  good job working on these FRT projects  finding and correcting the faults  which was    a big part of achieving results this good     thanks to you  gentlemen     Espoo  January 13  2010    Jyri Ilama    Abbreviations and explanations    3G  A2SP  AAL2  AARSEB  ATM  BSC  CACU  CB   CC   CI   CM  CN   CS  CRH  CRNC  CSCF  DA  DB  DMCU  DRNC  DSP  DX200    EIPU  FNC   FP   FRS  FRT   FT  GERAN  GGSN  GMSC  GPRS  GSM  GTP  FTP  HiBot  HIPLA  HIT  HLR  HSDPA    Third Generation  of mobile telecommunication technologies   AAL2 Switching Processor   ATM Adaptation Layer type 2   Adaptation and Resource Management SEB   Asynchronous Transfer Mode   Base Station Controller   Control and Administrative Computer Unit   Common Build   CruiseControl   Continuous Integration   Call Management   Core Network   Circuit Switched   Call Resource Handling   Controlling RNC   Call State Control Function   Development Area   Daily Build   Data
66. his project     3 1  Background  DX200    Nokia Siemens Networks continues the work that its predecessor  Nokia Networks   did earlier as a developer of network elements  A network element is a complex  network of inter connected computer units  The system consists of various computers  with different tasks of their own  communicating with each other via message    connections     To enable real time communication  the network elements must be capable of  performing real time tasks  whenever a service reguest arrives  the system has to be  capable of performing the needed tasks in just a few seconds  including the sending  of an answer to the reguesting party  This is made possible by three fundamental  mechanisms  using of main memory  concurrency  and a fast message connection  A  main memory based system means that all the information is available in a fast main  memory in each unit  Concurrency in this case means that multiple tasks can be    executed in parallel by different computer units and processes     In early 70   s  the research and development process of DX200 started at Nokia  Networks and the first customer deliveries took place in the year 1980  in the form of  a Fixed Network Switching Centre  FNC   Later  multiple DX200 based products  have been developed  such as MSC  HLR and BSC   7     Anyhow  the capacity and performance of the old DX200 started to become obsolete  before the turn of millennium  and it was discovered that this system won t be able to  h
67. how many test cases were passed daily  The red bars indicate  naturally   the number of failed cases  and these together form the total count of test cases  running in the test set  at the end of each month  The numbers in the orange stars    above every bar are the best individual executions of each month  meaning passed    71    test cases compared to total amount of test cases  These results are calculated from  the individual  daily reports of CRH   s MGW project running in the CruiseControl   31   which was the actual pilot for using HiBot in CI              160      140         120 W Failed test cases       100   i m Passed test cases    80   Best individual execution       60         40      20          Jan 09 Feb  March Apr  May Jun  Jul 09 Aug  Sep   09 09 09 09 09 09 09          Figure 6 1  The progression of the FRT CI project chronologically    In the beginning of January 2009  this MGW project started running with only a few  test cases in it  to get the project and CruiseControl configured properly  so that the  tests are even possible to be executed  Lots of time and effort were put into  configuring this project  in addition to debugging HiBot itself all the time  But  by  the end of January  there were already 58 test cases in the test set  As can be seen  from the figure  the project was a great success and kept going better and better all  the time  Some significant milestones are June 2009  during which the main  responsible for HiBot came back and started
68. ike  This might lead to  uncertainty  which might make test automation a risky investment  This  problem is quite interesting  because test automation was designed to reduce  uncertainty in the test results  With a lack of visibility  the actual value of test  automation is questionable  The author   s opinion is that the best solution for  tackling this problem is an official test coordinator for each testing    development area  who knows where the testing is going and heading  and  who reports this information further  in addition to automatic reporting  This    concept is described more in section 5 3 3     Poor scalability and maintainability  If not implemented properly  test  automation might solve the problem of manual test execution  but it might  also bring new problems  e g  with maintainability  Maintainability is one the  oldest challenges of test automation  with which various companies are still  struggling today  The technologies  appearance and behavior of the systems  under testing  tend to change frequently even though that was not expected  originally  and the changes often appear with a very little warning in advance   In these cases  test automation must be re designed  and if generic and  modular test cases are not used  this might lead to a whole new testing  strategy  When the staff gets more experienced with test automation and it  has been used for a longer time  new cases will be a lot easier to add or  modify  because of the modularity everywhere 
69. information  This kind of  information would be nice to know  for saving time and resources  already before  contacting the responsible people  and could be shared in for example wikis of each  area  This information might be something like giving information about which    commands must be given in case of a certain error     The person or team responsible for some PRB should know what the messages are  designed to look like and usually it is quite easy to go through these messages of a  faulty test case to see what actually goes wrong  to perceive in which function the  defect really lies  Some people are able to just look through the messages in plain  text format  which means nothing but hexadecimals  but this requires a very long  background and wide knowledge of the PRB  Usually people use different software  tools for reading the messages in a format nicer for the human eye  where the  different parts of the messages are explained in plain English  and where it is much  more easier to outline bigger entities of the messages  or where all the messages may    be sorted e g  chronologically or by the name of the message     62    After the reason causing the problem has been resolved  and new software  corrections are made  a test version of the PRB is sent to the ones who found the  problem  The failing test is executed again and checked if the correction works or  not  This test version is still used in that environment and the DA   s FRT test set is  executed with it  
70. is a concept related to this topic   when an Owner Id changes  the hanging resources are cleared  Blocking of units is  also tested  so that new calls can   t be started using the blocked unit  but the existing  calls remain connected until they are finished  state transition BL EX   gt  BL ID      These are the main principles for functional testing of recovery actions     4 2 4 3  Capacity and performance cases  Capacity and performance also have requirements that must remain above certain    limits  Capacity is tested by simply creating as much mass traffic  different cases  include different kinds of calls  as possible  until the DSP or RSMU CACU loads get  too heavy and new call creations start failing  Performance instead  is tested by    creating and releasing masses of calls rapidly     4 2 4 4  Multiparty and On Line Call Monitoring cases  MGW   These services are only available in MGW environments  The multiparty feature     conference calls  is basically a logical service that enables multiple subscribers to be  connected to the same call  OLCM instead is for use of authorities  for call  monitoring e g  in case of a crime is investigated  Multiple parties can also be    monitoring the same call or different sides of it     4 2 4 5  Bundled N CID cases  RNC   N CID   s are connections that consist of several AAL2 type channels  which are    configured to the network element to enable traffic between endpoints  Bundled N   CID   s are groups of N CID   s  which are 
71. is shown    in Figure 4 3        Figure 4 3  Agile FT process model  in practice     As a basis for the planning there usually exists a Feature Reguirement Specification   FRS   At this point  one can assume that the implementation of the feature has been  planned already  and implemented already or being implemented at the same time as    the FT cases  The planning itself is a guite short meeting inside the team  in this    29    phase the feature itself should be clear and understood  so the test cases shouldn   t be  too hard to be implemented  No documentation or reviewing of the    test plan    are  needed  something might be drawn on paper just for clarifying the case  If new cases  are needed for an old feature  the    planning    is in practice just deciding who writes    these new test cases  if the feature  and the old cases  are clear     Usually the strategy of implementing the test cases at the same time with the actual  implementation of a new feature is used  so the FT cases should be quite ready at the  same time as the actual programming is done  When done in this way  when e g   some final outputs can   t be seen before the code implementation is done  minor  changes might have to be made to the FT cases afterwards also  The implementing  and executing was put in the same phase  because often some parts of the macro are  executed before the whole test case is ready  e g  some sub case  a function or a  method that is called from another case  that is not par
72. ks  What about the other problem  the duration of functional tests  The biggest reasons    for why this can   t be done any faster are the sensitivity of the Telnet connections   and the slowness of certain hardware operations  If the unit test point of view is taken  again  they are fast to be executed because of why   Because they are always done  locally  It really wouldn   t be impossibly to operate functional testing also locally      inside a test environment  So  if the testing tools would be possible to be ran inside  the environments  all the sensitive operations  such as reading outputs correctly and  waiting for prompts to be found  could be done e g  a hundred times faster  If for  example Python could be installed into the test environments  this would lead to    major benefits     Some of the hardware operations are not possible to be quickened  For example in  unit restarts  there really is no useless waiting  it just takes a long time for the units to  get up  to load all the programs and to synchronize with a possible spare unit also   One option would be  using the simulation described in the previous section  to  enhance the speed by software  But  this wouldn   t be a good option  because that  wouldn   t be possible to do in the real environments anyway  and the simulated  situation wouldn   t be realistic  In some cases  this could help anyway  if for example  the restart itself isn   t tested in that case  but some of its effects are instead  Of course 
73. l Management were interested in this new software and started their own pilots   This lead to even more manual work with HiBot because those teams used lots of  Hipla functionalities     which weren t in use at all in CRH     that didn   t work either   Actually  almost every single Hipla command had at least some kind of a bug in it   and they all had to be fixed one after another  Also  when adding old Hipla test cases  that might have had some functions related to manual testing  such as asking for  inputs during the execution  had to be automated  Some cases were also designed to  be executed individually and had some problems for example by leaving hanging  resources in the system  because of the missing decent teardowns of the cases  which  always affects the following cases in a consecutive execution  Also  some test cases  are very hard to be torn down properly in case of failures  and special conditions   such as thinking about the text execution order  must be given for these tests  Making  the test cases really automatic and compatible with all the other cases isn   t the    simplest task  This automation process is described more in section 6 1     The tool got better little by little and got more correctly working functionalities all  the time  but more critical problems were found every now and then     which  sometimes lead into crashes of the whole system  or just abnormal activity of the  software  which lead to failing test cases  which furthermore lead to l
74. lating the Operating and Maintenance Unit  OMU  of a network  element by software  running on a normal Linux PC  All the interfaces to other  PRB   s were simulated  it only had to be defined what will    the other PRB    answer in  different situations  and then module tests could be done together with a functional  testing tool  This so called modular testing was done after unit testing the PRB  but  before the actual functional testing  for being sure that the interfaces with other  PRB   s worked  Nowadays  modular testing isn   t done at all anymore  since this     phase    would require a lot of resources  again  and the benefits wouldn   t be that  significant anyway  Regular FT does test these interfaces  and now  when most of    them are already tested and working  modular testing really isn   t needed anymore     If this can be done  why wouldn   t it be possible to simulate the whole environment   There actually have been some attempts to do this  but they have unfortunately failed  sooner or later  In theory it would be possible to have a situation  where one could  just create his her own test bench by clicking a few buttons  choosing what kind of  unit configuration he she would like to have  and which images of program blocks  would be used  No need for expensive hardware or worrying about if there exists  enough time for executing the tests  before another user has to start his her testing     using that environment     77    6 5 1 2  Eliminating the bottlenec
75. ltimedia gateways  MGW   and radio network controllers  RNC   which are 34 Generation  3G  network  elements  used in Universal Mobile Telecommunications System  UMTS  network  architectures for enabling high speed mobile traffic between base stations  Node B s     and the core network     1 2  Problem description  Network element environments are very sensitive  the elements are not just any    computers that can be restarted whenever wanted     they have strict limitations of  allowed downtime and stability  huge amounts of money can be lost in case of  failures  when for example an operator is unable to connect the calls of its customers    and the existing ones are dropped  Therefore the testing in this kind of environment    must be done very carefully  a lot of effort is put into it and this always takes  resources away from the actual research and development of the system  This is  where test automation comes in        let the computer do the working when no one else  is doing it     The problem is that even it is called test automation  someone still has to  maintain it and explore its results manually  and often the resources allocated for this  kind of work are too small  especially when testing the old functionalities  instead of    implementing and testing new ones     This work gives hints  tips and motivation for a test automation process     why  regression testing should be fully automated  and how  not  to do the process  what  kind of changes must be made a
76. m where to start the testing    and where to end  the lowest or the highest level components first     Acceptance testing in so called traditional disciplines  such as engineering  is black   box testing performed on a system with for example software and lots of mechanical  parts  prior to the delivery of the system  Some other names found in literature for  this are functional testing  black box testing  release acceptance  OA testing   application testing  confidence testing  final testing  validation testing  or factory    acceptance testing  In software development  acceptance testing is usually    26    distinguished into two parts  one done by the system developer and one by the  customer  User Acceptance Testing    12  p  24 25     As can be seen  there was functional testing in this list  but this still is quite not the  corresponding term to the functional testing of this work  this is only one part of the  whole system  even though this one part  a network element  is a complex    system     of its own  and the system itself is verified  SyVe  later on the testing process   Generally  acceptance testing means running a suite of tests on the completed  system  In acceptance testing  as well as in our functional testing  each individual  test  known as a case  should test one feature of the system  and will result in a  boolean outcome  a pass or a fail  with no degree of success or failure  The test  environment in acceptance testing should be as close to the antici
77. mands from a text file to the command  prompt  Nowadays  the macros are executed with different kinds of software tools  that can include more or less programming  which makes the macros more flexible  for generic use  easier to read and follow  variables  keywords   and even shorter  than just giving all the commands  loops   Different software tools for functional    testing are represented in section 4 3     31    4 2 4  Functional testing in Call Management domain  Tasks and responsibilities of Call Management domain were described earlier in    section 3 4  Next we   ll take a more detailed look at what kind of functionalities are  actually implemented and tested here  Besides these mentioned case types  there are  several test suites concerning functions of some individual features  related mostly to  load sharing type of functions  Creation and deletion of GTP subnets  which were  described in section 3 4 3  are also tested by e g  restarting units  and checking that    the subnets get released and re created correctly     4 2 4 1  Call cases  Basically  the most important test cases to succeed are the call cases in both RNC    and MGW environments  If some of these cases fail  some leg type or some service  won   t probably work  Every use case and every possible combination of different  legs must be tested  A configuration  routes  endpoints  signaling links etc   is  always created to the test benches to match the corresponding network element  environment  and nat
78. n one or two cabinets  and a MGW might consist  of even three of them  Some Plug In Units  PIU  can be seen in the figure in each  row   rack    or  subrack      some of them size of one and some size of two slots  PIU  is the physical card  computer unit  of a functional unit and it contains different  kinds of processors for different usages and different network interfaces  ports  for  its respective use  Every PIU contains an Ethernet port  to which a PC  usually via a  router  can be connected for a direct connection to this exact computer unit  This is    used for creating Service Terminal connections  which are described in section 4 2 3     The evolution has also lead to the smaller physical size of network elements  the old  DX200 based network elements were significantly bigger than IPA2800 network  elements are today  The drawback with reducing size  in addition to increased  processing power  is the heat generated by the plug in units  which leads to early  aging of the whole product  Therefore a more efficient cooling system had to be    developed for this kind of eguipment   9  p  6     18                      ee ule    PORTE Ee       Figure 3 3  An IPA2800 based one cabinet network element  10     3 2 2  Software architecture  The IPA2800 software itself is the same in both RNC and MGW environments  The    operating systems of the computer units on top of which the software runs are either    DMxX or Chorus     The whole IPA organization can be divided either i
79. ncreases   the complexity of the testing problem increases even exponentially  leading to  exponential amount of wasted time  Also  even with these increases in time  and costs  the test coverage will most likely go down  along with the growing    complexity     45    3  Manual testing is not consistent or repeatable  Of course  variations of the  tests are essential when testing the system  Different users may do the testing  differing slightly from each other  which might lead to different results of the  tests  This is also definitely an unwanted feature  if two executions can   t be    made identically     4  Lack of training is a common problem  although not unique to manual testing   Of course training is needed in both automated and manual testing  A trainee  for example isn   t capable of executing some testing tasks that are easy for a  senior engineer  Anyway  automatic tests that are implemented by an    experienced person can be executed by anyone with only a little training     5  Testing is difficult to manage  In testing  there probably exists more  uncertainty and more unknowns than in the code development itself  There  must exist a sufficient structure in testing  or otherwise it will be difficult to  manage  Let   s take an example of a project whose schedule starts to slip  as  the software testing is done manually  it will take even more time  more  resources  and the whole project will slip even more from its schedule  It is  also said that a delay in ge
80. nd statistics tool  in addition  to the original meaning  and they kept requiring more and more information about    the executed cases     this kind of information really isn   t interesting for the managers     56    This really took a big effort to get it working  and especially to maintain it there too        which was again time and resources taken away from HiBot development     When trying to focus on HiBot problems  there still were occasional problems with  the CruiseControl itself too  such as memory problems  when several CruiseControls   which held several simultaneous projects  were running on a single CI server  There  were also problems with the configurations of the projects     sometimes the projects  started the execution by themselves  which really wasn   t supposed  or sometimes  they were not running at all  Another problem was that some projects can   t be built at  the same time  for example projects configuring the test environments     including  changing the target package to the correct one and doing system restarts     must be  executed before the actual tests can be executed  There was actually only one   external person who was familiar with configuring the projects in the beginning  and  as one might guess  he was also very busy because of several    customers    with the  same kind of problems all around the company  It was very harmful  that when  HiBot would have possibly worked correctly  the environment didn   t  Later  the  author became f
81. nd what must be avoided when automating these  tests  starting from fully manual testing  proceeding to the semi automatic phase  where automatic scripts or macros  that must be executed manually  are used  ending  in a fully automated testing system where the test cases are always executed when  needed or wanted     without the need of a user starting the test case execution    manually  This process is described in Figure 1 1     Manual   Semi automatic m Fully automated  functional testing functional testing functional testing      a script or macro   continuous integration   execution can be whenever wanted  the  started by a user scripts or macros are     can be used for executed  regression testing   no user actions reguired     basically automatic  Functional Regression  Testing  FRT       a user tests the  platform by using it       Figure 1 1  Automation process of functional testing  1 3  Focus  The domain in which this test automation  continuous integration  and functional  regression testing project took place is Call Management  mostly in Call Resource  Handling sub domain  which are domains under the R amp D of IPA2800  to be more  specific  This research will not pay attention to what testing tools and methods are  used in other areas inside the company  with the exception of describing the different  phases of testing  to clarify the whole development and testing process of the    software     This work describes the functional and regression testing process 
82. ndover decisions  mapping of Radio Access  Bearer  RAB  parameters into air interface transport channel parameters  and outer    loop power control   2  pp  79 80     11       Figure 2 3  An inter RNC soft handover    The DRNC is any other RNC than the SRNC  which controls the cells used by a  mobile  In a handover process  UTRAN takes care of moving a UE to a new radio  connection  If a UE is transferred to a cell which has a different CRNC  this CRNC  becomes the UE   s new DRNC that allocates UE a bearer request of SRNC  Changing  the role of the SRNC to a different RNC  in case of e g  moving to another MGW   s  area  is called SRNC Relocation  3  p  28   which is also a task that Call Management    domain is responsible for  and into which we ll get back in section 4 2 4     2 3  UMTS core network architecture  Traditionally the tasks of Core Networks can be categorized mainly in the following    functions  aggregation of service provider networks  user authentication  call    switching and control  charging  and just being gateways to other  external networks     Even though there were quite big changes in the radio access evolution  the radio  interface was changed to WCDMA  since traditional GSM networks  the CN of  UMTS did not face such big changes  especially in the first release  The structure  was inherited from the GSM core network  and UTRAN  as well as GERAN  based    radio access network was connected to a similar Core Network as earlier     12    In Release 
83. nkanen net whoami notes InsTyo pdf        10  Nokia Siemens Networks  IPA2800 Packet Platform Architecture  Internal document   2007    11  Kantola  Raimo  S 38 3115 Signaling Protocols     Lecture Notes     Lecture 1 Web    document   Page 14  2009   Referred  10 11 2009   Available   https   noppa tkk fi noppa kurssi s 38 3115 luennot notes 1 pdf        12  Miller  Frederic  amp  Vandome  Agnes  amp  McBrewster  John  Software Testing   Alphascript publishing  2009  ISBN 978 613 0 03119 0     13  Lassenius  Casper  T   76 3601     Introduction to Software Engineering     Agile  software development  Web document   2009   Referred  12 11 2009  Available   https   noppa tkk fi noppa kurssi t 76 3601 luennot lecture slides 3 pdf        14  Alden  Bj  rn  Testisovellusten tuottaminen telev  litysj  rjestelm  n sis  isten palvelujen  testaustarpeisiin  Thesis work  TKK  1999      15      16      17      18      19      20      21      22      23      24      25      26      27     81    Ovaskainen  Henry  Yhteyden hyv  ksynt    ominaisuuden toimintotestaus Nokian 3G   j  rjestelm  alustassa  Graduate study  EVTEK  2002     Nokia Siemens Networks  HIT user s guide  Version 2 x  Internal document  2008     Kuokkala  Juha  Hipla user   s manual  Internal document  Version 2 9 0  2008     Nokia Siemens Networks  Robotframework     A keyword driven test automation  framework  Web document   2009   Referred  17 11 2009  Available   http   code google com p robotframework        Ilama 
84. ns the same name in string format  and adds a green PASS or a red FAIL text  to a correct cell  An Excel sheet containing this kind of information is very  illustrative  and if some test case keeps failing continuously  it can be seen very    easily from this even with only a quick look  as can be seen in Figure 5 2     58    aS TT AUT AV AY TAZ  8B OB   BE         ee      2 mowresreases nt onal  aa jan Jaa ef    59 MGW PERF DAT  60  MPF1020  Mass MOVE with owner id change for 37 lur lur calls   67  MPF2002  Maximum simultaneous lu lu  No DSP  call setups    MPF2003  Maximum simultaneous lu lu call setups  With DSP serv adding    MPF2004  Maximum simultaneous lu lu c                                                                   6 setups with DSP  64 2 vaximum simultaneous lu A call  lt   65  MPr2       66  n          65 simultaneous Nb IP  Nkb IP  call setups  EIPU   69 h imum capacity of static A A calls   70  U performance          71   72 MGW RECOVERY ACT DAT  50182T81 1    MRE0201  CACU switchover  4  MREO202  C  switchover with traffic   MREO203  MXU switchover  76  MREO204  MXU switchover with traffic  77  MRE0205  ISU switchover  chover with traffic  switchover with maximum amount of RM2 hands  U faulty switchover   2SU restart executed  AUASI EMBS restart executed  IPU restart executed  non redundant unit   B4  MRE0308  ISU restart executed  G5  MRE0309  TCU restart executed  86  MRE0310  ISU owner id change  Of  MREO330  ISU owner id change  static load   remote 
85. nto system domains  e g  System  Start up  SS   Capacity and Performance  CP   Security  SE  etc   or into functional  domains such as Call Management  CM  and Traffic  amp  Transport  TT   The latter  dividing is generally the more used one  and it is used in this research also  The  functional domain based division also describes the part of software with which the  functional domain works  because these functional domains are also top level    features     From the software implementation point of view  the software can be divided to  Systems  SYS   and further to System blocks  SYB   Service blocks  SEB   and  Program blocks  PRB   as shown in Figure 3 4        Chapter 3  IPA2800 Platform    19       Figure 3 4  Software block architecture    Usually one team  one sub domain under a functional domain  is working on one  SEB  containing a few PRB   s  so the partitioning can be done quite linearly  For  example Call Resource Handling  CRH   works on AARSEB  Adaptation and  Resource Management SEB   and Routing and Analysis works on RTASEB   Routing Analyses SEB   Both of these teams belong under Call Management  functional domain  and SEB   s can also be categorized under their corresponding  functional domains  e g  AARSEB in Call Management   This can be quite confusing  sometimes  because the teams are often referred to as their respective SEB   s  but  there might also be just a small part of a team working on some SEB  Also  SEB   s  are usually located in a few diffe
86. nts can be grouped into UMTS Terrestrial Radio Access network  UTRAN    which takes care of all radio related functionality  and the Core Network  CN    whose responsibility is mainly switching and routing calls and data connections to  other  external networks   2  p  75  Besides these  User Equipment  UE   which  interfaces with the radio interface  is an important part of the system  to make a call  connection process complete  there must be a device that the user uses for creating  the connection  The whole system  composed by UE  UTRAN  and CN  is  represented in Figure 2 1  except the elements of IP Multimedia Sub system  IMS   functionality that enables a standardized approach for IP based service provisioning    via PS domain  which is not covered in this thesis work         DOTT    n q   lc     in m CT  NODE B    1 y    JA we    EXTERNAL     UTRAI   T E CNJ NETWORKS    Figure 2 1  UMTS network architecture    Initially  in Release 99  only one MSC and one SGSN could have been connected to  a RNC  or in other words a RNC could have had only one IuPS and one IuCS  interface  This limitation was overcame in Release 5 when the Iu flex concept was  introduced  The concept allows now to have multiple IuPS and IuCS interfaces with  the core network  which is a much better option because of the possibility of load  sharing between the CN nodes and for anchoring the responsible network element of    CN in case of a SRNC relocation  which is explained in section 2 2 3     2 2 
87. nuous Integration project has brought  a brief look into the history is taken     At the time when HIT macros or plain Telnet connections were still used for testing   which was mostly during the time of DX200  one could say that    real    FRT didn   t  actually exist  Nowadays  people could think that how did they actually even get  along without decent regression testing  all around the software  Of course all the    functionalities were regression tested  but this could have taken its own time     When changes were made to the code  the regression testing was usually executed by  simply either giving some MML commands manually to test whether they still work     or by copy pasting a list of commands  which were held in text files  This was the    41    situation before the time of HIT  which allowed the use of real macros     the use of  actual test cases  A certain test set existed inside each group  team  or domain  which  was executed when changes were made to relevant program blocks  By that time  the  test set wasn   t very extensive  and faults could not be found as quickly as they are  found today     some minor faults or defects could have existed somewhere deep in  the program  and were only found in some unusual cases  e g  some fault recovery    actions  where one fault lead to another   Hup09     Little by little  the test set became larger and a more extensive  adequate test set was  ready  It can still be quite annoying sometimes  when e g  some group has ma
88. of the fault must be clear  The process is shown in    Figure 3 5        Figure 3 5  Fault management architecture    Supervision of both hardware and the processes must be done all the time  meaning  continuous checking and testing for detecting irregularities  If faults are found  the  alarm system is informed  which identifies the faulty unit and informs the operator  If  recovery is necessary  the alarm system notices it  The recovery system instead  eliminates the escalation of a fault by isolating the faulty unit  and maintains system  performance by taking a spare unit into use  After that  the diagnostics are made  the  cause of the fault is located more accurately and the operator is informed about this     Diagnostics also informs the recovery system if the unit may be taken back into use     3 3 1  Recovery and redundancy  The target of the recovery system is to eliminate faults by isolating a faulty unit     Therefore there must exist redundant units for backing up the active ones all the time     All units are not redundant  but in practice almost all of them are     2N redundancy  also known as duplication  means that there is one spare unit  designated for each unit  Software in these units must be kept synchronized all the    time  hot standby   to enable fast switchovers in case of failures     21    N 1 redundancy  also known as replacement  means that there are one or more units  designated to be the spare units for a group of units  Resources are allocated
89. omething that  should appear on the screen doesn   t  the user won   t know to wait for it  but an    automated test notices this immediately     The use of resources is a very remarkable point for the whole company and lots of  resources can be saved by using test automation  Let   s take a task of entering some  kind of same test inputs repeatedly as an example  this is a boring task for a user  and  he might do mistakes just because the lack of morale for the task  or because he   s just  a human  A greater accuracy is given by automating this kind of tests and these    persons are also now free to do something more useful     The repeatability of the tests is improved significantly when using test automation   the tests are repeated exactly in the same way every time  or at least their inputs    Timing might be in a big role in some cases  which might be difficult to be executed    accurately enough when testing manually     The automated test cases may of course be reused when implemented once  Every  time they are executed  a lot of time and resources are saved  even if the    implementation phase of the tests might take longer than just running a test    44    manually  the automated tests usually start to pay themselves back in the long run   Also  the same tests can often be executed for example with different hardware    configurations  which is an advantage concerning both repeatability and reuse     After all  the biggest advantage of test automation seems to be t
90. ots of other  failing cases  These problems were mostly caused by the Telnet connections  the  poor Python implementation of HiBot for handling the connections  This lead to  waste of time and resources  when those failed test cases had to be executed over and  over again  just for getting the true results of some tested functionalities  Anyway   these problems were of random nature  so the bugs were hard to find and it was hard  to concentrate on them     in addition to the still quite poor skill level of Python    programming of the author     55    There were also some limitations when using Hipla in the CI projects  which was  seen as a good opportunity for implementing the missing features into HiBot  A  major advantage when using HiBot in the CI projects  which was implemented  is the  possibility of running several projects at the same time in parallel  There are different  test environments for the FT of both the network elements  RNC and MGW   and for  testing with different releases of the builds  If all the test cases of all these projects  had to be executed consecutively  there wouldn   t be enough hours in a night  it  would take about 19 hours at the moment to run all the test cases of the current FRT  projects consecutively  As with new features usually  they aren   t working perfectly at  the first executions  This brought more problems and even more waste of resources   when sometimes the projects got mixed with each other  meaning that for example  the test
91. pated user   s  environment as possible  the test environments used at NSN are explained more in  section 4 2 3  Acceptance testing is also clarified more for case of agile software  development methodologies  which is also used at NSN  Scrum mode   It is  described that acceptance testing in agile software development refers to functional  testing of a user story  executed by the software development team during the  implementation phase  and these are also often used as regression tests  section 4 4 1   prior to a product release  12  p  30   This also matches the case of this work  perfectly  if user stories are just changed to use cases  which don   t necessarily    originate from customers     4 2  Functional testing in IPA2800 platform    4 2 1  A brief introduction to Scrum  This introductory part is about explaining an agile software development method    called Scrum  which is used at the target company  All the different phases  like  reviews and retrospectives  are not described here     we   re just focusing on the basic     top level idea of Scrum instead  like how tasks and items get done etc     The description of one sprint is given in Figure 4 1  A sprint is a time interval of  usually one month  where certain items should get completed  These items are    selected from the product backlog  which the product owner holds  The items are    27    called backlog items  and the ones assigned for each sprint  form the sprint backlog   The team itself expands these 
92. pitfalls  to avoid and good practices to obey  as well as focusing on the essential things in this kind  of a project     as well as in the implementation of any software as big as this is     Keywords    Functional testing  regression testing  test automation  continuous integration  3G  IPA2800          TEKNILLINEN KORKEAKOULU DIPLOMITYON TIIVISTELM      Tietoliikenne  ja tietoverkkotekniikan laitos    Paivays  Jyri Ilama 18  Tammikuuta 2010  Sivumaara    Toiminnallisuuden regressiotestaaminen ja testiautomaatio 3G     Tyon nimi    verkkoelementtialustaymp  rist  ss      Professuuri  Tietoliikennetekniikka       Valvoja  Professori Jyri H  m  l  inen  TkT    Ohjaaja  Jari Simolin  FK    T  m   tutkimus kertoo asioista  joita opittiin monimutkaisen 3G verkkoelementtialustan   jolla on hyvin tiukat vikasietovaatimukset  toiminnallisuuden regressiotestaamisen  automatisoinnissa  T  m   testiautomaatioprosessi sis  lt     sek   toimintotestauksen testi   tapausten ett   koko niiden regressiotestaamisen automatisoinnin  p    tyen jatkuvan  integraation palvelimen k  ytt    n  Moni asia tehtiin v    rin t  m  n projektin aikana  ja n  m    asiat olisi ehdottomasti pit  nyt tehd   toisin  Projekti sis  lsi uuden toimintotestausty  kalun  toteuttamisen ja sen k  ytt    noton osana jatkuvan integraation suunnitelmaamme  sek      regressiotestauksen t  yden automatisoinnin  antaen selkeit   ja havainnollisia tuloksia  jotka    lopulta johtavat koko alustan parempaan laatuun  Paljon a
93. pment  ATDD   The  tabular syntax for creating test cases is easy to use and its testing capabilities can be    extended by test libraries implemented by either Python or Java  Users can create    35    their own keywords either totally by themselves or by modifying them from the    existing ones   18     It is true that the    creating of test cases    is easy  but this actually means just creating  the test suites  If one isn   t familiar with Python programming  creating the keywords  becomes a major obstacle  even though Python is quite easy to learn and simple to  use as a programming language  In the beginning  when the keyword libraries of  IpaMml were very limited  the users had to create almost all the keywords by  themselves  which was probably the biggest challenge and the only reason why  Robot wasn   t taken into use everywhere  When there were the quite nicely working  Hipla cases and there really wasn   t time and resources for learning a totally new  programming language  some areas of NSN in Espoo continued using the old  practices     as people in Call Management still mostly do     Robot is not used here   Also  people are used to seeing the test case execution all the time  as when running    cases with HIT or Hipla     Anyway  the strengths of Robot are definitely its efficiency and flexibility     of  course because it uses a    real    programming language     and the html format output  reports that are very clear  marked with different colors  and the
94. poor implementations were found in many places in the test cases  for  example by assuming that a certain printout of a command remains the same forever   A macro can scan the printout and read e g  characters 2 4 from line number 3  A  better way to implement this would anyway be searching for a known string  a tag   which possibly won   t change  and count the line and place  amount of words  away  from it  and do the scanning there  When using this kind of certain tags  and scanning  the whole words instead of characters  the test case is also a lot easier to understand  and change afterwards  if needed  Also  if the scanned word is for example the name  of a functional unit     even the name would change to a longer one  the test case    would still work when done in this way     It was earlier said that in some cases  some tasks    must    be done by the user  for  example to time certain actions correctly  This was inside quotation marks  because  this was originally the easy way  especially when people were not so familiar with     real    test automation  Almost all cases of this kind are anyhow possible to be  automated by reading some values and acting differently in different situations  It  was originally easy to just read some wanted value of a printout by human eye and  give it as an input for the next function  The infinite pauses     pause 0   s     all had to be  eliminated and the functions be implemented in another  automatic way  The timing  instead  might
95. previous section  functional testing is black box testing of    functionalities in a pass or fail methodology  done as an integration testing style of    28    an activity  not for the complete system as in acceptance testing  In IPA2800  a  feature  whose functionality is tested   is a functional entity that is visible for a user  of the system  The features are implemented using internal services provided by  program blocks  The features usually consider software and hardware working    together   14  p  23     From the traditional software development point of view  using V model or  Waterfall model  functional testing could also be done in a quite difficult way  This  would include a lot of documentation  Waterfall   as well as redundant planning and  reviewing  preliminary testing and final testing   15  pp  38 39  At least on paper   this sounds like a complex process  which develops a lot of extra overhead  The FT  process of this previously used model  from about the turn of the millennium  is    shown in Figure 4 2   EXECUTE  PRELIMINARY FT EXECUTE F  FINAL FT R  CREATE FINAL    Figure 4 2  The old FT process model  modified from  15         At least nowadays when Scrum mode is used  in practice the preliminary phase can  be forgotten  and the three separate reviews shown in this old model can be replaced  by just one  final review  The three main phases of FT in practice are now  Planning   implementing and executing the test cases  and a final review  This process 
96. rdinator informs his team  how  the test executions have gone and what kind of possible problems there are  Also  the  test coordinators are responsible for informing the persons responsible for the testing    of the whole release about the situation and problems  which is usually done weekly     After all  all this requires quite a lot work  for both the test coordinator and the team   The problem is that keeping the FRT in a wanted quality level is always left behind  other things  usually backlog tasks  because this is a separate part of all the other    R amp D tasks  This leads to the problem of concentrating  the resources  on the right    63    things  The top level management does want very good quality  but they often aren   t  aware of the resources that a decent  regression  testing would require  really  adjusting the focus sometimes onto the old functionality  instead of only focusing on  new features and their testing  As a suggestion to this problem  a good proposal  would be  possibly even organization wide  F RT sprints every now and then  in  which these tasks and all the projects running in CI servers  would be taken into a  good maturity level before designing  implementing  and testing all the new  functionalities again  Also  if the test coordinator is someone  who is responsible for  also the CI server and the testing tool  in addition to doing backlog tasks and  implementing test cases for new features  this simply is too much to take for one    person
97. rent computer units  for example PRB   s of  AARSEB exist in ISU ICSU and CACU RSMU  but some SEB   s are also present in  all units  for example AAPSEB  AAL Protocols    10  Part I     3 3  Availability and reliability    A very important point about network elements is that they are not just any kind of  computers that can be restarted whenever wanted  Network elements have very high  fault tolerance requirements in general  because of their real time nature  meaning  that they must be in active state all the time  waiting for inputs  calls  and being able  to answer to them  It is required in ITU T standards  and by operators   that a  switching system has a downtime of less than about two minutes per year  This is  also known as    the five nines availability performance     the probability of failure    less than 0 99999    11  p  14     20    A full system restart of an element takes nowadays easily more than ten minutes  so  this is not an option  Even restarts of some critical units take more than this required  two minutes  Recovery in case of any failure is an important task  in both hardware  and software faults  Redundancy  section 3 3 1  of hardware helps to tackle this  problem  but this means that because the system must be very fault tolerant  the   functional  testing of the program in all kinds of situations must be done very    carefully     Anyway  faults do always exist and appear every now and then  Because every fault  must be analyzed well  the origin 
98. s  translated into Python language by a translator  30   which was implemented by Juha    53    Kuokkala  a person who was  and still is  the main responsible for both Hipla and  HiBot software  The responsible would leave the company again after the summer   and not come back until the next summer  as he always does  In August 2008  when  the Hipla and HiBot responsible left again  the translator was ready and the code was  translated into Python  but the code of HiBot still required a lot of manual job  It  simply is impossible to translate all kinds of functions automatically  such as IF  clauses  which can take so called by reference arguments as their inputs in HIT code   which is not supported in Python  Also  as Hipla used HIT   s Telnet connection  features  this needed to be implemented separately  which Kuokkala made in a hurry     and got the connections working mostly before he left     This was the point where the author  as a summer trainee with almost no knowledge  of Python programming at all  started to work with implementing and developing  HiBot  The only advantage of taking the author into this project was the fact that he  had at least some experience on the actual Robot framework and some close   personal contacts to people that use Robot and Python all the time  which could help  in case of problems  Kuokkala instead was very familiar with Python programming   but he didn   t have any experience on Robot  for example how the test suites were  implemente
99. s are put into tackling the automation  problem  there might be no time to make more and better tests instead which   after all  leads to a disappointing quality of the tests  This is a typical problem  in the beginning of moving from manual testing to test automation  but the  situation will most likely get better even sooner than what might have been  expected in the beginning  Some problems of this kind have been faced also  during this particular test automation project  and these are described more in    section 5 3     5  Technology vs  people issue  When searching for    the perfect tool    for test  automation  one may find out that there actually isn   t a tool available that  would meet all his her needs  It is also possible that the tool that would    otherwise be the best for solving the problem is too expensive to purchase    48    and deploy  compared to the benefits that it would provide for the company   It can also be difficult to convince the management that this really would  provide benefits  because these often are big investments after all  In addition  to just purchasing a new tool  it needs lots of training for the staff  and it  might be difficult to encourage the motivation of learning something totally  new  people are afraid of bad results  and that they will be blamed for the  mess  By the author   s experience  the resistance for change is always a big  problem  especially with senior experts  who have been working in a certain  way for years or 
100. s in state WO EX   Other possible states are for example SP UP  BL ID  SE OU  and SE NH  There is  also an additional field called unit info  which tells for example in which phase of a    restart the unit is   10  Part III     3 4  Call Management domain  We ll take a deeper look into Call Management domain to clarify the tasks and    responsibilities that are implemented and tested here  This is just a general overview     the actual functionality and responsibilities are described more in Chapter 4     Call Management domain is responsible for  as the name already says  all call related    operations  from resource configuration to resource allocation  Call Management is    22    the main interface for Call Control applications  This functional domain can be  divided further into three sub domains  Call resource handling domain  which will  mostly be focused on in this thesis work   Routing and analysis domain  and Signal  processing resource management and services domain  In section 3 3 the recovery  actions were discussed  and even though the actual recovering is not among CM   s  responsibilities  the call related actions during the recovery are  for example when a  unit fails while handling some call resources  it must be taken care that the call will    not drop if a stand by unit exists for that specific unit     Call Resource Handling  CRH  handles the needed software to setup and release  switching resources for calls  The nature of CRH is very dynamic  IPA2800 is
101. s in this situation   would usually take the first option  If  these were the only choices  the software engineers or the testers would probably go  for the second option  because they want that their statistics look as good     green      as possible  even though their tests aren   t covering all the needed functionalities  but    what is very hard to be seen by the management     Both of the options are good for some situations  but probably mixing of them would  be the best way to do this  First  one should make sure that the test cases are free of  forever loops  crashes  destroying the configuration  and other lethal effects  All the  cases should be gone through and these points secured  This shouldn   t require too  much effort  The cases shouldn   t be executed again and again manually  correcting    them every now and then  the automatic testing can take care of that when the staff    70    isn   t even working  so now these tests can to the FRT test set  if it   s looking good  enough before adding these  meaning that there aren   t like half of the cases failing   Now it   s easy to track those cases  by executing them all at a time and seeing the  possible errors and faults  Now they can  hopefully  be corrected easily  If the  situation is very bad  as said that for example half of the cases are already failing   these cases shouldn   t be added at all  there are enough problems already with the    existing ones     6 2  Results and analysis  At first  the actual
102. s like in IPA  what is done in practice   and what kind of functionalities are in Call Management s responsibility area  Also   the most important functional testing tools used are described  But at first  as   functional testing is generally not known as functional testing in literature  we ll take    a look at other  more general terms with similar meanings     4 1  Integration and acceptance testing  Integration testing  sometimes called Integration and Testing or I amp T  is basically a    phase or an activity in which parts of software are combined together and tested  that  they work also as a group  Usually  unit testing is done for the different parts  then  integration testing for small groups of units that interface with each other  and finally    the whole system is tested  in some kind of a system testing verification phase     Integration testing  as well as the functional testing done inside NSN  is so called  black box testing  meaning that the user can t really see inside the program  he only  sees the user interface  inputs  and outputs     using the program should not reguire  any knowledge of the inner design code or logic  The purpose of integration testing is  to verify performance  reliability and functional reguirements  placed on major  design items  groups of units or assemblages   Different types of integration testing  approaches are for example Big Bang  Top down and Bottom Up  or Sandwich  testing  of which each just takes a different approach fro
103. s new problem  somewhere  possibly at the other side of the globe  This problem is discussed more in    the next section     37    4 4 2  Test phases and different builds     A build is much more than a compile  a build may consist of compilation  testing     inspection  and deployment among other things  A build acts as the process for  putting source code together and verifying that the software works as a cohesive    unit         Martin Fowler  20     Usually  a build means the compilation and testing of some unit or program block  In  this section  builds refer to Daily Builds  DB   which were originally designed to be  released once a day  and Common Builds  CB   which are released  frozen  about  once a month  DB   s and CB   s are compilations of the whole IPA2800 software put    together     The software is developed all the time and these builds consist of verified  unit  and or DA RT  Regression Testing inside a Development Area  tested program  blocks working together  Because changes to the code are made all the time  daily  builds are needed to be released very often  Common builds are frozen about once a  month  or actually once a sprint  The dates  before which all the code  all the new  functionality  must be ready and frozen are pre determined  CCL  Service Block  Code Control List  day is followed by ECL  Environment Control List  day  after  which a new CB will be released  Next DB   s will be based on this CB  Anyway   changes to CB   s are made weekly in 
104. ses wouldn   t be needed to  only for example check if this case still fails because of the same reason  Actually   this kind of a feature is already implemented into the new version of Robot  framework  but the problem with this is that it prints  in addition to the failed  command  the whole output of the command that might be dozens of lines in each  single failing command in each test case  so this definitely isn   t    compatible    with  HiBot  Also  instead of printing the failed commands to the command prompt  where  the execution is usually shown and where Robot does this printing  this could be  exported to a certain text file for example  The question is that is it really wanted that  the results must be checked separately from several places  Another similar point is  related to the test cases themselves  in case of failure  the failing test case should  always give clear information of what went wrong and collect all the needed  debugging data  This is quite a big job to be added into the hundreds of old test cases     but a very good point to keep in mind when writing new macros     Another point of automation is the problem of installing and configuring new CB   s   which was already discussed briefly in section 4 4 2  The difficulty and complexity    of installing and configuring the builds is the next big reason for why the tests aren   t    75    being executed with Daily Builds and why Common Builds are still in use in the  FRT  Previously  the biggest issu
105. should be added  because also    the  impossible ones    may become possible some time  It   s not a big problem if one gets  stuck into this kind of a loop when executing a single case manually  but if the whole  project execution gets failed because of this kind of faults  over and over again  it   s    not very nice not being able to get the results at all     Even the tests are going to be automatic  someone most likely has to read   understand  make minor changes  or even refactor them some time later  It is not very  nice  in addition to some hard coded values everywhere around the test  if there  doesn   t exist enough documentation  comments etc  information about the logic and  the functionality  The script should be made understandable even for someone who  wouldn   t understand anything about its actual functionality  Also  the potential later   to be changed variables should be kept in one place if possible  for example in the  beginning of the test case or test suite  so that they are easy to be modified    afterwards  Of course this is not possible always  but give it a try     67    6 1 1  Manual cases  do they exist   There still exist some    manual    cases in the test set of CRH  What is meant by these    manual cases is tests that require some test images of certain program blocks   versions that include some testing functionalities which are not used    in the real  world     This kind of an example are test points  which simulate some message  interfaces
106. sic functionality is moved into newer   more advanced units  Also  there has earlier been the possibility of using Network    Element Management Unit  NEMU   which offers a graphical Windows 2000 based       Chapter 3  IPA2800 Platform    17    user interface for managing the network element  Physically NEMU is a separate  computer that can be connected to a network element with an Ethernet connection  In  his thesis work  Mika Honkanen claimed  9  p  5  that NEMU might replace the  MML connection totally in the future  but this is absolutely not the case  it was an  additional tool for network operators for managing their network elements on a  higher level  with which tasks that were not even possible to do with the traditional  MML connection  could   ve been done  NEMU was just a separate tool that could be  used for monitoring the network activity  Anyway  the NEMU concept doesn   t even  exist anymore in the latest architectures  but instead Operation and Maintenance  Server  OMS   a Linux based computer  is replacing NEMU in RNC   s  It provides  the same functionality as NEMU did earlier  for example configuration and  performance management  supervision  recovery  and fault management  Anyway   these won   t ever replace MML but instead  a higher level software tool that uses    MML  could replace the traditional use of MML  some day     3 2 1  Hardware  Figure 3 3 shows what an IPA2800 based network element with one cabinet looks    like physically  A RNC can contai
107. sioita opittiin ja ne on esitetty  t  ss   ty  ss    sek   sudenkuoppia  joita tulee v  ltt     ett   hyvi   k  yt  nt  j    joita tulisi  noudattaa  kuin my  s oleellisiin asioihin keskittymist   t  llaisessa projektissa     niin kuin  mit   tahansa n  in laajaa ohjelmistoa tuotettaessa     Avainsanat    Toimintotestaus  regressiotestaus  testiautomaatio  jatkuva integraatio  3G  IPA2800       Preface    This Master   s Thesis is a research about a test automation and continuous integration  project at the Call Management domain of Nokia Siemens Networks  The idea for  this project came because of the unsuccessful attempts to execute the functional  regression testing part of our continuous integration strategy with a quality   traceability and maintainability good enough  beginning with the implementation of a    new software tool for functional testing     I was involved in this project already from the software implementation phase   ascending to the role of a test coordinator of our requirement area  because of all the    knowledge and required information gained about our testing during this project     In the beginning of fall 2009  there was great uncertainty whether I would get this  thesis worker job at all  I would like to give my biggest compliments to Marko  Klemetti  my current team leader at Eficode Oy  who made this all possible  In  practice  even though I moved into another company   s pay lists  I got the chance to  continue working on the same project in w
108. sting tools that are used  at NSN and inside Call Management domain and which will be referred to later   Next  when all terms and tools are becoming quite clear  well move on to regression  testing and test automation  a literature study first  then the IPA2800 case     how this  was done earlier  traditionally  how we have moved on to this point with Continuous  Integration and CruiseControl and what are the benefits of those  what kind of  problems have been met  how should the automating of the tests be done  and what  kinds of things must be considered when working on these subjects  Also     the  typical day of a test coordinator    is described  what it looks like in our environment  at the moment  Chapter 5 and Chapter 6 are the actual research and actions part of    this thesis work  in what this whole work is based on     Sections 6 4 and 6 5 form the last part of the actual research  investigating about the  near and the far future of functional regression testing  continuous integration and  test automation  The latter is about the future of both functional and regression  testing in our environment  where are we going and what will the situation probably  look like some day  What are the trends and how could we make our FRT even more    efficient and easier than what it is today  Or is it even needed anymore if the code    itself will be    perfect    in that phase  thanks to all the quality enhancing tools that are    being published more and more all the time  
109. t of the feature itself  but is  useful when testing it  such as reading unit states  of the functional units of the    network element  from a printout and saving them into variables     The final review is related mostly to new features  The functionality of a new feature  is demonstrated to the product owner in a sprint review  if this feature  backlog item   is done  The product owner checks if the feature has all the wanted functionality  specified in the FRS and decides whether the team gets the backlog task done or not   However  if there is uncertainty about the test cases even in case of old features  they  can be reviewed with a person or group to make sure that the test case does what it    should be doing  and everything goes right     4 2 3  What in practice  The service terminals of computer units of a network element form the most    important outer interface for testing  Internal actions of the computer units can be  investigated and controlled via a service terminal connection  as well as doing  mandatory setup actions for the testing  The service terminal connection is a user  interface designed for system experts  The other important outer interface for testing  is the MML  Man Machine Language  connection of the MMI system  Man Machine    Interface   with which the commands implemented in MML programs  program    30    blocks of the system  are executed  The MMI system and the MML programs    together form a user interface for the operator   14  pp  25    
110. t would require another    piece of hardware  which would for example disconnect the plug  but that   s another    story     6 1 2  Automating the whole test set  Well  now we   ve gone through things to keep in mind when thinking of a single test    case  but what kind of things must be considered when running hundreds of tests  consecutively  If one case fails because of an error  it really should not affect the    following ones  which are not related to that test in any way  Sometimes this might    68    be a very difficult task to handle  but in some cases it really won   t require much  effort to make sure that error situations are handled properly  Of course defects of  this kind must be found also and it must be kept in mind that for example just  restarting the system always after some case leaves something inappropriate in the  environment is not a good option  if the case that finds the defect is not failing  because of this problem  Therefore  proper checks at the end of the test cases must be    made     All possible error situations must be taken into account  and the required recovery  actions executed  for example in case of removing of some resource fails  some  hanging resources might be left in the environment  or the configuration  routes   NCID   s  etc   might be left broken  Nowadays  the actual hanging resources are  automatically cleared after a certain time out by changing the owner id  but this was  just an example and this kind of problems must be 
111. tasks and added them into  the beginning and the end of the test suite  but the problem wasn   t solved that easily   At first  these cases were executed about in the middle of the project  and everything  went fine until there started to appear problems with creating or removing the  configurations  This leads to an incorrectly configured environment for all the tests  that are executed after removing one configuration and creating another  which lead  to failing of almost all the cases  because for example basic calls can   t be connected  anymore in the same way  So  if there are difficult cases that are potential    system    breakers     these test should always be executed as the last ones     6 1 3  Adding old test cases  maturity vs  completeness  Maturity means the simple status of passes compared to the total amount of test    cases  For example if 95 test cases of a total of 100 are passing  the maturity is 95     Instead  if only 90 cases of 100 are included in the regression test set  the    completeness is 90       When thinking about a situation where there exists dozens of old test cases  but  which haven   t been executed for years and which most likely won   t work anymore   even though the functionalities of them still possibly work  or at least should  Those  old cases can either be added to the test set or they can be corrected first and made  sure that they work before adding them  The people responsible for the whole testing  of a product  or release  a
112. technically means something that  once started  never stops  However     this would mean that a build runs all the time  which is not the case  In the    49    Continuous Integration context  continuous is more like continual  a process that  continually runs  polling for changes from e g  a version control repository  and    whenever changes are discovered  a build script is executed   20     Continuous integration  CT  instead is a practice of software development  where the  members of a team integrate their work very frequently  usually at least daily   leading to multiple integrations per day  Whenever an integration is made  it is  verified by an automated build  which includes testing  to detect possible integration  errors as quickly as possible  CI assumes a high degree of tests that are automated  into the software  se f testing code   It is often found that this kind of an approach  leads to significantly reduced integration problems  which leads to faster cohesive  software development   26  This self testing code approach hasn t been taken into  use at NSN  at least yet  Anyway  it sounds like a good practice and definitely should  be given a try in the future  The problem is that some parts of the code are  unfortunately of very old design and it could be hard to take a totally different  implementation point of view in this phase  but the author s view is that whenever a  totally new system will be designed  the approaches will be guite different from what    t
113. the FT tests really didn   t give any payback and those  attempts ended in failures  It would have required at least a whole day to go through  the enormous reports of even hundreds of thousands of lines of plain text  to get any  useful information about what was changed in the program code and what which    cases were failing     Anyway  this kind of practice was done for over a year  until a new software tool for  functional testing was designed  HiBot  section 4 3 3 2   which would help to  overcome this kind of problems  Another solution would have been moving from  Hipla to Robot framework  section 4 3 3 1  when it was starting to show its  strengths  but the engineers who had been working for almost ten years with HIT and  Hipla macros wouldn   t have been satisfied  the world of Robot is totally different  and much more complex than what had been used to  and it also would have required  lots of training     and there simply wasn   t time and resources for that  By starting to  use HiBot  all the old Hipla test cases were possible to be executed in a new way  a  fully automated way  which gives a clear  illustrative report of the results     where all  the failed cases can be distinguished and inspected easily and quickly  After all  this  was the best possible solution to the problem  but lots of problems were faced during    the implementation and the actual commissioning of this FT tool     At first  during the summer of 2008  all the old HIT based code of Hipla wa
114. thers and there are also external factors that  affect the testing  such as problems with network connections or problems with the  software tools used  In the beginning of this project in Call Management  more than  half of the cases were failing  so there was quite a lot of work when going through all  the failed ones  But since this project has been a great success  now only few of them  are failing  even though the total amount of test cases has increased significantly  Of  course it might be hard to determine whether some case is failing only occasionally if  it hasn   t failed before  or if this fault is a permanent one  Therefore  the cases failing  because of unknown reasons are often executed again in the morning     this usually  won   t take long  because the amount of them is normally quite small  Also  when    executing a certain test case again individually  it turns out if the nightly failure was    60    possibly only because of some previously executed faulty case  which has to be    corrected     The problems of random nature are the most difficult ones  If they won   t appear  every time  the situation might be very hard to reach again     which means it is very  difficult to find the cause of the problem  and even harder to find the possible  solution  These tests must be taken under supervision and wait if the faults appear  again  Sometimes  the problem might have been caused by an occasional problem in  some other test case  so this particular case won 
115. this task     5 3 3  The typical day of a test coordinator  This section describes how the tests and their succeeding are actually monitored and    how defects are possibly found in the code in practice  This is described because of  understanding where to the project described in the previous section has lead the    testing inside Call Management domain  how much of the work is actually    59    automated  what still needs manual working  and what kinds of things might still    need changes     As told in the previous section  the FRT projects are executed every night  This is not  done at daytime because each of the projects last from six to seven hours and there  exists only a limited amount of test environments     so it is quite logical to execute    these tests by night  when no one else is  hopefully  using the environments     In the morning  the test coordinator goes through the projects one by one  inspecting  which cases have failed and for what reasons  There are four different types of failure    causes   1  A potential real defect in the latest changes of the software code  2  An existing  occasional problem appearing every now and then  3  External problems  problems with network connections or software tools  4  An error ina test case itself    In an ideal situation  all of the test cases would normally succeed  and failures would  only appear in case of real defects in the code  This is not the case in practice  some  test cases tend to fail more often than o
116. time and waiting for changes  in some part of the software     a trigger that starts a build  that may consist of  compilation and or unit testing  or just running functional regression tests  All the  actual code of the software  as well as the test cases  are held in a version control  system  which enables multiple persons to develop the software at the same time by    updating and committing the changes to from a version control repository     Since there are hundreds of FRT test cases and it takes a very long time to execute  them all  it is not possible in practice to run them whenever changes are made    somewhere  These builds are scheduled instead  simply meaning that they have a    52    pre defined test execution schedule  which was also shown in Figure 5 1  The  schedule means usually running the tests daily or weekly  in this case the FT projects    are always executed every night     5 3 2  The progress of the project chronologically  Starting to execute the FRT tests automatically was a very significant milestone in    the history of IPA  As said in section 4 4 3  the regression testing was traditionally  done manually  executing a few test cases or even by just giving the needed MML  commands in a test environment  after changes were made in the program code  By  the time when CI servers were taken into use for the first time  there were some  automatic Hipla  section 4 3 2  test cases  but because of the huge size of the plain  text format reports  executing 
117. to see if something else has been broken by this correction  If this  leads to some other problems  this same sequence of operations is done again  It  often takes a few iterations before the first problem gets fixed  but    little bug fixes       of this kind don   t tend to break anything else usually     If the amount of the failing cases is very big for some reason  and in the worst case   in all of the different ongoing projects too  some tools for helping the analyzing are  very handy  for example the script for keeping track of the status history of  individual cases  which was represented in the previous section  This kind of tools  often help in conceptualizing the big picture or some smaller entities  for example  certain types of tests failing more often than others  Also  the test coordinator is not   or should not be  responsible for resolving and correcting all the problems     that   s  why there is the team around him her  who often are more familiar with certain  functions or PRB   s than the coordinator  The test coordinator should just be aware of  the situation  problems and corrections of his her responsible area  and inform the  responsible people for the defective code or delegate the problems to people who are  the most familiar with them  as well as take care that milestones  usually concerning  completeness and or maturity of a certain level in some release before the deadline     are reached     At some point  usually in a daily Scrum   the test coo
118. tocol which operates on top of an unreliable routed packet   switched network such as IP    Service Block   ATM Switching Fabric Unit   Serving GPRS Support node   Signal Processing Unit   Serving RNC   System Block   System Verification   Subversion  A version control system used in the company   Transcoding Unit   An IP connection  which allows logging into a remote host  acting as a  normal terminal user    A test environment that simulates a network element  Test benches are  smaller in size  they have less PIU   s  but they contain all the  functionalities of real network elements    A collection of several individual test cases and their setups and  teardowns    Time Division Multiplexing   User Datagram Protocol   User Equipment   UMTS Subscriber Identity Module   Universal Mobile Telecommunications System   UMTS Radio Access Network   A systems development model designed to simplify the understanding  of the complexity associated with developing systems   A software engineering model in which the progress is seen as flowing  steadily downwards  Four phases  Requirements  Design   Implementation  Verification and Maintenance  Lots of planning and  lots of documentation are required    Voice Announcement Unit   Visitor Location Register   Wideband Code Division Multiple Access   Wireless Local Area Network    Table of contents    PALLEI      eRe ee oe SO WR SO  Abbreviations and explanations           cccssccessscccesssssececssseceecsseeeeeecseeeeceessaaeeeeees  TableOf
119. tting the software from the developers to the testers  will lead to wasted resources  This is true  but can   t be applied in this case   because of the fact that in Scrum mode  as well as in other agile methods  this    kind of developers testers division isn   t used anymore     After all  there are lots of drawbacks in manual testing  such as waste of resources  and time  ending to even worse test coverage than by using test automation  But  are    there any pitfalls in test automation  This is discussed in the next section     5 1 3  Pitfalls of test automation  This section is quite similar to the previous one  with the exception that these pitfalls    are of test automation instead of manual testing  This is an interesting point  when  thinking about the amount of hype and praise test automation has received in  literature  There really are some drawbacks with test automation  especially if it   s    designed badly  and often in the beginning of taking it into use  We   ve got rid of    46    these problems actually  and we   ll go through all of them from the NSN point of    view also  These top five pitfalls are from the same source  24  Chapter 4  as the    manual ones were     2     Uncertainty and lack of control  Because of the automatic nature of testing  it  is commonly experienced that it   s hard for managers and other stakeholders  to know what is actually going on  what exactly is being tested and what the  process of test development and test execution is l
120. uiseControl was used in Call Management domain until the end of this project     before pilot projects using Hudson were started  which are covered in section 6 4     Both of these CI server tools support adding different kinds of plug ins and third  party tools  which increase the level of modularity of these server tools greatly  New  plug ins and widgets  which help in the customization of projects  are implemented  and published all the time  Basically  the most relevant ones are related to viewing  and publishing the results of certain files in a way one wants  without these it would  be mostly like just compiling the builds and or running the tests and creating some    log files  which would have to be explored manually     5 3  The automated FRT and CI project of Call Management    5 3 1  Background  This continuous integration project was started in Call Management already in May    2007  Back then  it was mostly concentrating on program block compilations  since  there was no proper automatic FRT software tool available yet  The idea was to  automate the builds  or in other words execute the program block compilations and  make sure that everything still works  after someone has made changes to the  program  Unit tests were also added later into the compilations projects  which are    also executed whenever a build is made     The automated part itself is made possible by a continuous integration server and a  version control system  The CI server is polling all the 
121. urally the routing inside these configurations is a task of Call  Management  Routing and Analysis domain   The call cases consist of a set of all  combinations of possible legs  such as Iub IuPS  GTP tunnel situations   IP based  Tub     Iur in RNC or Iu IP BB  A  TDM    Iu Data in MGW  and some more special  cases such as HSDPA  Also different traffic parameters and bit rates are used  as well  as using different orders in creating and connecting the legs and allocating DSP  resources or DSP services either in the leg creation phase or adding them separately   In some cases  the traffic parameters and bit rates must also be able to be modified  afterwards  Handovers in both network element types and relocations in RNC   s must  also work correctly  The functionality of virtual legs is also tested in MGW    environment     4 2 4 2  Recovery cases  Recovery action test cases are also very important  These cases test that calls  and    static or dynamic mass traffic  remain connected in e g  functional unit switchovers  or faulty switchovers that happen in spontaneous restarts  or for example link    failures  In switchovers of RSMU CACU units  hot standby units   the warming time    32    of critical programs is also measured     it must remain under required limits  that the    interworking with various other PRB   s works correctly     It is also tested that no resources are left hanging in case of unit restarts  where all the  resources should be released  Owner id change 
122. used in case of the last mile traffic  the  connection to Node B   which is usually the bottleneck in the connection  With     bundles     the traffic can be directed to the same target and allocated correctly and    more efficiently before the bottleneck   Til09     The configuration for these cases is totally different from the one that is normally    used in the test environments  and therefore these cases are special and mentioned    33    here separately  The regular configuration must be removed and the bundled N   CID   s created before running these test cases  and this is a bit of an issue when    running automated tests  We ll get back to this problem in section 6 1 2     4 3  FT software tools used in Call Management    4 3 1  Holistic Integration Tester  HIT   HIT is a tool used for testing of the internal services of DX200 IPA2800 platform     Basically the idea is connecting the user s work station to a test environment via IP  connections and possibly serial port numbers too  after which the wanted tests can be  ran  HIT is still absolutely the number one testing tool at NSN  as it has been for    about a decade now  14    16     The original idea of HIT was  in addition to what could   ve been done via any Telnet  client  to run specific HIT macros for the testing  HIT macros give inputs to the  system  which are also printed to the terminal windows along the execution  and  outputs can be handled in a wanted way  Anyway  the test macros mostly consist of  MML
123. ware  they are  replaced by EIPU functionality instead  It seems that the  GTP  subnets may be  removed from RNC too in the future  because there exists a similar EIPU    functionality in RNC   s also   Kor09    Til09     24    3 4 4  Signal Processing service  The DSP utilization is modeled in a centralized unit  RSMU CACU   The model is    based on a signal processing service that has certain capacity counters  defined by the  application  Call Management is responsible for the DSP unit selection in both  RNC   s and MGW   s  The selection is done based on the modeled estimation of a  DSP   s real load  DSP services can be either inside a leg  e g  AAL2 DSP leg   or    just as separate services  e g  MDC service      DSP pools were mentioned earlier in section 3 3 1  Call Management can limit the  supported services in certain signal processing units  e g  dedicating a selected set of  DSP   s for high speed services in RNC  This pooling affects the DSP unit selection   e g  resources for AMR calls are first tried to be picked from the primary pool  but if  there is not enough capacity available  a secondary pool will be used instead  The  pool configuration is static  the pools are pre defined and the operator just defines the    proportion of the pools   10  Part VI     25    Chapter 4  Functional and regression testing in  IPA2800 platform   This chapter gives a description of what functional testing and regression testing   actually are and what are the testing processe
    
Download Pdf Manuals
 
 
    
Related Search
    
Related Contents
FLV 1300 A1 - Lidl Service Website  PEG-N760C - Manuals, Specs & Warranty  Tripp Lite SmartOnline SU8000RT3U1TF User's Manual  Magnetolink®  仕様書  EM6514 Capteur d`interrupteur mural e    Copyright © All rights reserved. 
   Failed to retrieve file