Wednesday, 28 November 2012

Agile Testing

What is Agile Testing?

Agile as the name refers implies something to do very quickly. Hence Agile Testing refers to validate the client requirements as soon as possible and make it customer friendly. As soon as the build is out, testing is expected to get started and report the bugs quickly if any found. As a Tester, you need to provide your thoughts on the client requirements rather than just being the audience at the other end. Emphasis has to be laid down on the quality of the deliverable in spite of short time frame which will further help in reducing the cost of development and your feedback's will be implemented in the code which will avoid the defects coming from the end user.


Advantages offered by Agile Methodology:

The very first advantage that the company got to see with the Agile Methodology is the saving of time and money. There is less documentation required though documents help to a great deal in verifying and validating the requirements but considering the time frame of the project, this approach leads to focus more on the application rather than documenting the things. Since it is iterative in its form, it tends to have a regular feedback from the end user so that the same can be implemented as soon as possible. And because all phases of SDLC need to be completed very quickly, there is a transparency to each individual working on the project with the status of each phase.

Another advantage that Agile Methodology offers to other approaches available is that in case there is any Change request or enhancements come in between any phase, it can be implemented without any budget constraint though there needs to be some adjustment in the already allotted time frame which will not be a difficult task for the projects following Agile tactics. Though it is useful for any Programming language or Technology around, it is advisable to make it employ for Web 2.0 or the projects which are new in media.

Daily meetings and discussions for the project following Agile approach can help to determine the issues well in advance and work on it accordingly. Quick coding and Testing makes the management aware of the gaps existing in either requirements or technology used and can try to find the workaround for the same.
Hence, with the quicker development, testing and constant feedback's from the user, the Agile methodology becomes the appropriate approach for the projects to be delivered in a short span of time.

Agile Testing Myth
One thing that must bind it tight to your minds is that Agile Testing is not an easy task to undertake. The other important thing is to nullify the statement that Agile Testing can be done without the need of the testers. Get in touch with your developers to obtain each and every minute detail on the Application workflow in order to come out with successful Black box as well as White Box Testing in short span of time.

Challenges in Agile Testing
  • Agile Testing offers an open door policy for the requirements to creep in any time during any phase of the project and it will be greeted vey graciously and tested as per it is intended to function. Though not an easy task, but becomes a challenge for the team working on Agile methodology to accommodate the same in the already allotted functionalities to be validated.
  • Because Agile methodologies move faster, it becomes a challenge for the team to navigate through whole application. Proper approach needs to be followed in order to accomplish the same such as Testing the application as per Risk-based Strategy can do wonders and also prioritizing the Test scenarios as per their priority will enhance the quality of the deliverable.
  • In case of incomplete or inadequate unit testing performed by the developers, it is the testers who are at target to showcase their abilities in finding out the 90% of the hidden bugs missed by developers. It is indeed a challenging task considering the time frame of the testing phase that Agile methodology offers.
  • It is not only new functionalities that need to be working as designed but Agile Testers also need to make sure that the already placed functionalities do not get affected and hence regression testing plays a vital role in Agile Methodology.
  • Projects following Agile approach always lack with the appropriate documents and hence it becomes a challenging job for the testers to validate the requirements with the developers and confirm if the same is expected to work the way it is reflecting in the application else an another resource of communication will be required which will involve the customers of this Application to get the queries clarified and test accordingly.
Looking at the Challenges that Agile Testing is equipped with; it indeed becomes a very difficult task though not impossible to meet the expected commitment and deadlines.

When is Agile Testing Approach followed?

In case there is a situation in the project where there is a frequent change in the requirements from the client and it is difficult to accommodate them each time in your documentation as well as Test Assets, it is always advisable to follow the Agile Testing Approach which is often used when there is a dynamic change in the requirements from the client.

Comparison of Agile over Other methods:

Here is a limelight on the Agile advantages over other methods which are known to be traditional now considering the advantages that Agile methodology offers.

-> Development of an application in Agile is incremental rather than progressive or sequential as compared to other methods such as waterfall model which tends to have a phase wise development. This feature of Agile helps to have quick testing and results in small incremental releases and each of them is tested to the depth in order to meet the requirements and in case any requirement is to be introduced further, it is not a difficult task to do so in case of Agile as compared to waterfall where it will have to be traced down to the beginning of the phase to make the appropriate changes. 

-> Rather than tools and technologies talking with each other, it is the individuals who communicate with each other more often in Agile Testing approach. In case of waterfall, Extreme Programming or V-model, it is the tools, processes and technologies that often meet with each other and decide the relevant outcome. So Human communication lacks in other methods as compared to Agile method.

-> Working or rather testing the Application is always on the top priority for the projects following Agile Methodology as compared to other methods where documentation is given a more edge over other critical tasks.

-> The best part of the Agile over other methods is that it directly communicates with the user of the Application rather than having any intermediary party like client. This enables them to quickly get the feedback from the customer and appropriately implement the change in the Application.

-> When any enhancement or change request comes in, it is directly taken into account to be implemented in the Application rather than deciding to go for a further planning and revisiting the budget and time constraints as use to happen in other methods.

Agile methodology if compared to other methods offers advantages which are helpful to save time and money for Testing Phase which are important elements of any project.


Thursday, 22 November 2012

Mobile Originated Call





Mobile Originated Call

A Mobile Originated Call is a call that is initiated by the MS. The following example is a mobile-originated call that terminates outside the PLMN.
Request Access

1. The MS sends a Channel Request (CHAN_REQ) message on the RACH.

2. The BSS responds with a radio resource assignment (IMM_ASS_CMD) on the AGCH.

3. The MS sends a Service Request (CM_SERV_REQ) message to the BSS on the SDCCH.  






Authentication

4. Before the network will provide any services to the MS, the network will require the MS to authenticate itself. The BSS sends an Authentication Request (AUTH_REQ) message to the MS. The RAND serves as the "challenge" for authentication.

5. The MS calulates the proper SRES based on the RAND that was given and sends the SRES to the BSS in an Authentication Response (AUTH_RESP) message.

6. The BSS verifies the SRES. If the SRES is correct then the MS is authenticated and allowed access to the network. The BSS will send a Service Accept (CM_SERV_ACC) message letting the MS know that the service request was received and processed.

7. Once authenticated, the BSS orders the MS to switch to cipher mode with the CIPH_MOD_CMD message.






Initial Call Setup

8. The MS will immediately switch to cipher mode and send a Cipher Mode Complete (CIPH_MOD_COM) message.

9. The MS then sends a Call Setup (SETUP) message to the BSS. The message includes the address information (MSISDN) of the called party.

10. The BSS assigns a TCH to the MS by sending an Assignment Command (ASS_CMD) message. This message includes which Transceiver (TRX) and which Time Slot (TS) to use.
*The BSS does not actually assign a TCH to the MS until the MSC sends a Call Proceeding (CALL_PROC) message to the BSS indicating that the IAM has been sent.

11. The MS imemdiately switches to the assigned TCH. The MS sends an Assignment Complete (ASS_COM) message back to the BTS on the FACCH. 
*Remember that a FACCH is not a separate channel, it is simply a stolen time slot from the TCH that is used for signalling data instead of voice traffic. 




Call Setup

12. The MSC sends an Initial Address Message (IAM) to the GMSC. The IAM contains the MSISDN of the called party as the MS dialed it.
The MSC will also send a Call Proceeding (CALL_PROC) message down to the BSS and this is when the BSS would assign a TCH to the MS, as described in step 10 above.

13. Based on the dialed number, the GMSC decides where to route the IAM within the PSTN.

14. The PSTN will continue to route the IAM until it reaches the correct Switching Center and the call routing is complete. The PSTN will then establish the call circuit and send an Address Complete Message (ACM) back to the GMSC.

15. The GMSC then forwards the ACM back to the responsible MSC indicating that the call circuit has been established.



Call Establishment

16. Once the MSC receives the ACM, it sends an ALERT message to the MS indicating that the call is going through. The BSS sends the ALERT message on the FACCH. Once the MS receives the ALERT, it will generate the ringing sound in the earpiece. The BSS sends an alerting message the subscriber will hear the line ringing.

17. Once the called party answers the phone, the PSTN will send an Answer message to the MSC. The MSC forwards this to the MS in a Connection (CON) message.

18. Once the MS receives the CON message, it switches over to voice and begins the call. All voice traffic occurs on the assigned TCH. 



 Call Termination

19. When either the caller or the called party hangs up, the call will be disconnected. Either party can initiate the disconnect. In this example, the MS initiates the disconnect. The MS sends a Disconnect (DISC) message to the BTS on the FACCH.

20. The BSS forwards the DISC to the MSC. Once the MSC receives the DISC message, it sends a Release (REL) message through the GMSC to the PSTN as well as down through the BSS to the MS.

21. The MS responds by sending a Release Complete (REL_COM) message to the BSS on the FACCH. The BSS forwards the REL_COM message up to the MSC. Once the MSC receives the REL_COM message the call is considered ended from the call control perspective.

21. Although the call has ended, the BSS still has a TCH allocated to the MS. The MSC sends a Channel Release (CHAN_REL) message to the BSS. The BSS forwards the CHAN_REL message to the MS.

22. The MS responds with a DISC (LAPDm) message and returns to an idle mode. The BSS deallocates the channel and releases the TRX.









Location Update



Location Update
As an owner of a mobile phone, the subscriber does not stay in one
place but keeps moving from one place to another. No matter how often
or how quickly he moves, the network must be able to locate him
continuously in case somebody wants to call him. T he transaction that
enables the network to keep track of the subscriber is called a Location
Update ..




The mobile phone constantly receives information sent by the network.
This information includes identification (ID) of the VLR area in which
the mobile is currently located. In order to keep track of its location, the
mobile stores the ID of the area in which it is currently registered.
Every time the network broadcasts the ID of the area, the mobile
compares this information to the area ID stored in its memory. When
the two IDs are no longer the same, the mobile sends the network a
request, i.e. a registration inquiry to the area it has just entered. The
network receives the request and registers the mobile in the new VLR
area. Simultaneously, the subscriber’s HLR is informed about the new
VLR location and the data concerning the subscriber is cleared from the
previous VLR.












Location update procedures
In this way, the network can keep track of the subscriber all the time,
however, that is only a part of the job! Things become more
complicated when it becomes necessary to set up a call. Let’s start with
a call originating in a fixed telephone network, a Public Switched
Telephone Network.

Location registration takes place when a mobile station is turned on. This is also known as IMSI Attach because as soon as the mobile station is switched on it informs the Visitor Location Register (VLR) that it is now back in service and is able to receive calls. As a result of a successful registration, the network sends the mobile station two numbers that are stored in the SIM (Subscriber Identity Module) card of the mobile station.

These two numbers are :-

  1. Location Area Identity (LAI) 
  2. Temporary Mobile Subscriber Identity (TMSI). 
The network, via the control channels of the air interface, sends the LAI. The TMSI is used for security purposes, so that the IMSI of a subscriber does not have to be transmitted over the air interface. The TMSI is a temporary identity, which regularly gets changed.
  • A Location Area Identity (LAI) is a globally unique number.
  • A Location Area Code (LAC) is only unique in a particular network.
Every time the mobile receives data through the control channels, it reads the LAI and compares it with the LAI stored in its SIM card. A generic location update is performed if they are different. The mobile starts a Location Update process by accessing the MSC/VLR that sent the location data.
A channel request message is sent that contains the subscriber identity (i.e. IMSI/TMSI) and the LAI stored in the SIM card. When the target MSC/VLR receives the request, it reads the old LAI which identifies
the MSC/VLR that has served the mobile phone up to this point. A signalling connection is established between the two MSC/VLRs and the subscriber’s IMSI is transferred from the old MSC to the new MSC. Using this IMSI, the new MSC requests the subscriber data from the HLR and then updates the VLR and HLR after successful authentication.





Periodic location update is carried out when the network does not receive any location update request from the mobile in a specified time. Such a situation is created when a mobile is switched on but no traffic is carried, in which case the mobile is only reading and measuring the information sent by the network. If the subscriber is moving within a single location area, there is no need to send a location update request.
A timer controls the periodic updates and the operator of the VLR sets the timer value. The network broadcasts this timer value so that a mobile station knows the periodic location update timer values.
Therefore, when the set time is up, the mobile station initiates a registration process by sending a location update request signal. The VLR receives the request and confirms the registration of the mobile in
the same location area. If the mobile station does not follow this procedure, it could be that the batteries of the mobile are exhausted or the subscriber is in an area where there is no network coverage. In such
a case, the VLR changes the location data of the mobile station to “unknown”.



The Location Update process consists of the following phases
  • Request for service; the MS detects that it has entered a new Location Area and requests to update its location. The new MSC/VLR identifies the MS.
  • Authentication - The new MSC/VLR requests to the AUC for authentication parameters (SRES, Kc, RAND). Using these parameters the MS is authenticated.
  • Ciphering - Using the parameters which were made available earlier during the authentication the uplink and the downlink are ciphered.
  • Update HLR/VLR - The new MSC/VLR requests to update the MS location in the HLR. The MS is de-registered in the old VLR.
  • TMSI re-allocation - The MS is assigned a new TMSI.

  1. The MS detects that it has entered a new Location Area and transmits a Channel Request message over the Random Access channel (RACH).
  2. Once the BSS receives the Channel Request message, it allocates a Stand-alone Dedicated Control Channel (SDCCH) and forwards this channel assignment information to the MS over the Access Grant Channel (AGCH). It is over the SDCCH that the MS will communicate with the BSS and MSC.
  3. The MS transmits a location update request message to the BSS over the SDCCH. Included in this message are the MS Temporary Mobile Subscriber Identity (TMSI) and the old Location Area Identification (oldLAI). The MS can identify itself either with its IMSI or TMSI. The BSS forwards the location update request message to the MSC.
  4. The VLR analyzes the LAI supplied in the message and determines that the TMSI received is associated with a different VLR (old VLR). In order to proceed with the registration, the IMSI of the MS must be determined. The new VLR derives the identity of the old VLR by using the received LAI, supplied in the location update request message. It also requests the old VLR to supply the IMSI for a particular TMSI.
  5. The new VLR sends a request to the HLR/AUC (Authentication Center) requesting the “authentication triplets” (RAND, SRES, and Kc) available for the specified IMSI.
  6. The AUC, using the IMSI, extracts the subscriber's authentication key (Ki). The AUC then generates a random number (RAND), applies the Ki and RAND to both the authentication algorithm (A3) and the cipher key generation algorithm (A8) to produce an authentication Signed Response (SRES) and a Cipher Key (Kc). The AUC then returns to the new VLR an authentication triplet: RAND, SRES, and Kc.
  7. The MSC/VLR keeps the two parameters Kc and SRES for later use and then sends a message to the MS. The MS reads its Authentication key (Ki) from the SIM, applies the received random number (RAND) and Ki to both its Authentication Algorithm (A3) and Cipher key generation Algorithm (A8) to produce an authentication Signed Response (SRES) and Cipher Key (Kc). The MS saves Kc for later, and will use Kc when it receives command to cipher the channel.  
  8. The MS returns the generated SRES to the MSC/VLR. The VLR compares the SRES returned from the MS with the expected SRES received earlier from the AUC. If equal, the mobile passes authentication. If unequal, all signaling activities will be aborted.
  9. The new MSC/VLR requests the BSS to cipher the radio channel. Included in this message is the Cipher Key (Kc), which was made available earlier during the authentication.
  10. The BSS retrieves the cipher key, Kc, from the message and then transmits a request to the MS requesting it to begin ciphering the uplink channel.
  11. The MS uses the cipher key generated previously when it was authenticated to cipher the uplink channel, and transmits a confirmation over the ciphered channel to the BSS.
  12. The BSS upon ciphering the downlink channel sends a cipher complete message to the MSC. At this point, we are ready to inform the HLR that the MS is under control of a new VLR and that the MS can be de-registered from the old VLR.
  13. The new VLR sends a message to the HLR informing it that the given IMSI has changed locations and can be reached by routing all incoming calls to the VLR address included in the message.
  14. The HLR requests the old VLR to remove the subscriber record associated with the given IMSI. The request is acknowledged.
  15. The HLR updates the new VLR with subscriber data (mobiles subscriber’s customer profile).
  16. The MSC forwards the location update accept message to the MS. This message includes the new TMSI.
  17. The MS retrieves the new TMSI value from the message and updates its SIM with this new value. The mobile sends then an update complete message back to the MSC.
  18. The MSC requests from the BSS that the signaling connection be released between the MSC and the MS.
  19. The MSC releases its portion of the signaling connection when it receives the clear complete message from the BSS.
  20. The BSS sends a "radio resource" channel release message to the MS and then frees up the Stand-alone Dedicated Control Channel (SDCCH) that was allocated previously. The BSS then informs the MSC that the signaling connections has been cleared.

GSM Abbrevations


GSM - Global System for Mobile Communications
GPRS - General Packet Radio Service
CDMA - Code division multiple access
W-CDMA - Wideband Code Division Multiple Access
SIM - subscriber identity module
WAP - Wireless Application Protocol
SMS Short Messaging System
3G (or 3-G) - is short for third-generation technology.
HLR (Home Location Register
IMEI (International Mobile Equipment Identification code)
IMSI (International Mobile Subscriber Identify)
MSC (Mobile Switching Center)
NCC (National Color Code or Network Color Code)
PLMN (Public Land Mobile Network)
PLU (Periodic Location Update)
TCH (Traffic Channels)
HR (Half Rate Traffic)
FR (Full Rate Traffic)
EFR (Enhanced Full Rate)
TDMA (Time Division Multiple Access)
This means multiaccess in time: several phones can transmit signal (either digitized voice or computer data) in the same time on the same channel
TMSI (Temporary Mobile Subscriber Identity)
VLR (Visitor Location Register)
SRAM- syncronous random access memory
 MCU -micro control unit
MSISDN-Mobile Station Integrated Services Digital Network


Um-interface The GSM-specific term for the Air-interface.

UMTS Universal Mobile Telecommunication System (UMTS). A third-
generation mobile telecommunication system currently being discussed by
SMG as an evolutionary step of GSM. The goals of UMTS are similar to those
of the Future Public Land Mobile Telecommunication System (FPLMTS).

Uplink The direction of a signal from the mobile station toward the network.
See Downlink.

User parts The various applications of the MTP (SS7). Examples are the
SCCP and ISUP

MSRN- Mobile station roaming number.

MSK Minimum shift keying. A modulation technique

MOC Mobile originating call

MCC  Mobile country code

MNC  Mobile network code.

LU Location update.

LMSI Local mobile subscriber identity.

ISDN Integrated Services Digital Network (ISDN).

ISUP  The ISDN user part. A user of OSI Layers 1 through
3, just like the SCCP. Although no GSM protocol, ISUP is used by the MSC
for signaling purposes toward the ISDN.




































Tuesday, 20 November 2012




Typical call flow
 
USSD Message Type
 
Process unstructured supplementary services Request (PSSR):-
First message sent in case of Mobile Initiated (MI)USSD to initiate USSDsession. The response for this message from GW is USSR/USSN.

Process unstructured supplementary services Request ACK (PSSR ACK):-
This message is the last message sent from GW to a SpecificPSSR to close the USSD session.

Unstructured supplementary services request (USSR):-
This message is used to send the menu to subscriber. Incaseof Network Initiated USSD, this is the first message. Subscriber can reply to this message withappropriate option.(1/2/3).

Unstructured supplementary services request ACK (USSR ACK):-
This message contains the subscriber¶s response to the menu sent in USSR.