SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Master Test Specification

             Simple Rail Road Command Protocol (SRCP)




Submitted by:

Rishu Seth

High Integrity Systems

Fachhochschule Frankfurt am Main

Matriculation number-936161


                                                        1
Table of Contents
1.Introduction ...................................................................................................... 4
         1.1 Overview ............................................................................................... 4
         1.2 Test Object ............................................................................................ 4
         1.3 Test Environment .................................................................................. 5
         1.4 Test Plan................................................................................................ 6
         1.5 Test Organisation .................................................................................. 7
         1.6 Test Resources ...................................................................................... 7

2. Test Planning ................................................................................................... 8

         2.1 Test Areas ............................................................................................. 8

         2.2 Test Metrics .......................................................................................... 9

                  2.2.1 Defect Severity ...................................................................... 10

                  2.2.2 Defect Priority ....................................................................... 10

         2.3 Test Requirement ................................................................................ 12

                  2.3.1 Network Connection ............................................................. 12

                  2.3.2 Lexical Units ......................................................................... 12

                  2.3.3 Commands ............................................................................. 13

                  2.3.4 Replies ................................................................................... 13

                  2.3.5 State of Server ....................................................................... 13

                  2.3.6 Hand Shake Mode ................................................................. 14

                  2.3.7 Command Mode .................................................................... 15

3. Test Specification .......................................................................................... 16

         3.1 Equivalence Classes ........................................................................... 16

                  3.1.1 Feedback Sensors .................................................................. 16

                  3.1.2 Generic Accessories .............................................................. 17

                  3.1.3 Generic Loco ......................................................................... 17

                                                                                                                      2
3.2 Black Box Test Cases ......................................................................... 17

                   3.2.1 Hand Shake Area ................................................................... 18

                   3.2.2 Command Area ..................................................................... 19

                   3.2.3 Info Area................................................................................ 20

         3.3 White Box Testing .............................................................................. 20

                   3.3.1 SRCPD Source ...................................................................... 20

                   3.3.2 Masking of Condition............................................................ 26

                   3.3.3 Cause Effect Graph ............................................................... 26

4. Findings .......................................................................................................... 30

5. Conclusion...................................................................................................... 30

References .......................................................................................................... 30




                                                                                                                       3
1. Introduction

      1.1 Overview

This document is Master Test Specification for Simple Railroad Command
Protocol (SRCP: Version 0.8.3). The initial focus of this document is to analyze
SRCP, it's specification and provide test cases & scenarios, that will
eventually lead to errors in the system and then after that also to look inside the
code and find anomalies and errors. Although to provide the full test coverage
is not exactly possible. The main objectives of this document are:

1. It provides a status report of the test object in comparison to the
   requirements. Is the product fit for release? Adding value to the product by
   finding defects.
2. To Test the most prioritized elements of the test-object. The realistic use of
   the software should be considered.
3. Testing should be unbiased and from different point of views considering the
   needs of different users.
4. Test process is well structured. Is it repeatable and predictable?

1.2 Test Object

SRCP is an internet protocol for controlling and programming (digital) model
railway systems. It produces client server communication. The server is the
component that is connected with the plant.

The client can be run on the same computer as the server. The server has no
clue about how the plant looks like. It is the server’s task to translate the
commands of SRCP into action.

A SRCP server is unaware of the exact concrete railway system. And the
topology and even it is not being informed about the installed equipment. Its
                                                                                  4
task is to collect all available information as precisely as possible handling
knowledge about the possibilities and limits of the controlled plant. Its data
have always to be understood as the best knowledge about the state of the
railway system.


Limitation of SRCP
SRCP does not fulfill any formal real time demands.


Merits of SRCP
   1. A SRCP server abstracts the control of the construction.
   2. Paying attention to different safety strategies.
   3. Scaling Capability.
An SRCP server represents one central unit (CU). A CU provides at least one
bus over which information is read or commands are executed. A client contacts
the server in order to send commands to the plant and to receive information
from there. So there are SRCP channels between client and server, where the
client sends commands to the server and SRCP channel between server and the
plant, where the server has to execute the command on the plant. SRCP
connection is based on TCP (Transmission Control Protocol).

The Test object will be the protocol version 0.8.3 of SRCP and the SRCP
Daemon 2.0.12, which will emulate the SCRP environment.

1.3 Test Environment

The SRCP Test Environment consists of:

   1. SRCPD - will emulate the SRCP server and a digital plant.
   2. Server - A machine with OS Linux. SRCP Daemon will run on the server.




                                                                                 5
3. Client - The Client represents a working station with a python written
      script, which will connect to the server. OS can be either Linux or
      Windows.
   4. Java - will provide a client program that sends commands to the SRCP
      server.
   5. Documentation – MS (Microsoft) Word, Excel, Latex.

1.4 Test Plan

The overall test strategy consists of 6 main phases or levels .The levels are
given below

Test-Planning

   • To Analyze the SCRP specification.
   • It provides test metrics to measure the quality of the test object.
   • It formulates the requirements of the test object.

Test-Case-Generation

   • Use the test metrics & requirements to generate test cases for black box
       testing. Also divide the test cases in different test areas.
   • Provide a python written client program which will help us to execute the
       test cases on the test object.
   • Inspect the source code of SRCP Daemon and specify white box test
       cases.

Test-Case-Execution

   • Execute test cases & log results.

Analysis Test Result



                                                                                6
•    To analyze test result and compare it with desired result.

Bugs Analysis

   • To find the bugs that means deviation from our previous stag.

Test-Documentation

   • Visualize test results.

   • Defect Reporting.

Final-Test-Result

   • Finalized the test result after Bugs Analysis.

1.5 Test Organization

   • Developers: Dr. Schönfelder.
   • Testers: Students.
   • Execution of Tests: Workstations at the university.

1.6 Test Resources

   • SCRPD 2.0.12 – source code.
   • Specification of SRCP 0.8.3
   • Configurations file "srcpd.conf".
   • A client program written in Java will be used to connect to the server and
       execute test cases.




                                                                              7
2. Test Planning

2.1 Test Areas

There are mainly three main test areas:
   • Hand Shake Area: On initial connection hand Shake Mode is activated.
      Then after this connection, its according to the demand of the client
      whether to activate Command Mode or Info Mode.
   • Command Area
   • Info Area
There are some different Sub Test Areas also which are used in combination
with these three Test Areas:
   1. Server: A SRCP server represents exactly one central unit (CU) in the
      usual sense. Every CU disposes of at least one bus for addressing on
      which information is read and/or commands are executed. If a SRCP
      server can manage and provide several CU it is valid.

                                                                             8
2. Feed Back (FB): Feedback devices are encoders that signal an occurrence
      on construction
   3. Generic Accessoire: A generic Accessoire generally indicates a decoder
      that can serve one or more ports under one address. Often these are
      switch decoders or signal decoders working as impulse decoders.
          • Generic Loco (GL): It indicates engine decoders in the engine
             address room of the hardware.
          • Locks: Devices locking other devices. The LOCK devices are
             devices providing a lock over another device. They are optional.
2.2 Test Metrices

It is the measure of software quality and confidence of our test object. Test
metrices have various uses:
   1. It can reduce working time - once we have a matrix for a specific issue, it
      will take our less time to test it or to think how to test it.

   2. It is logical and testing challenging - It is a challenge to make our own
   matrix and to find common issues that are repeatable from project to project.

For Testing of this project, used metrics will look at:

   • Functional areas

   • Requirements Check

For Test coverage and consistency of Test Effort

During Test Preparation this metric uses:

   • Number       of    Test   requirements     compared      to   Functional   Area/

      Requirements




                                                                                    9
• Number of Test Cases planned compared to Test Cases ready for

      execution

During Test Execution this metric uses :

   • Number of Test Cases Passed, Failed or Blocked.

   • Number of Test Cases Executed compared to Test Cases Planned

      Severity: Grouping by potential danger caused.

2.2.1 Defect Severity

It is the measure of how lethal a defect can be and how strong is the effect of
failure on software user.

   • Critical: It is the highest order of severity and results in the failure of
      complete software system of a subsystem or of a software unit within the
      system.
   • Major: It is almost relevant to “Critical” but there are still some chances
      of processing some acceptable alternatives to get desired result.
   • Minor: This is referred to as some common normal defects which are not
      as lethal as other two but somehow effect the normal working of a
      software.

DEFECT SEVERITY:

     TEST CLASS                   DEFINITION               STANDARD % PAS
      CRITERIA                                                  RATE
      CRITICAL                     ESSENTIAL                    100 %
        MAJOR                     NECESSARY                         90%
         MINOR                 NOT IMMEDIATE                        70%


2.2.2 Defect Priority


                                                                                  10
It is the measure of priority that is set in regard to addressing defects and
according to its severity, to set minimum time within which it should be fixed.
   • High: This is the most prioritized area and defect falling in this category
      severely affect the system’s working and should be fixed as soon as
      possible.
   • Medium: This is having a bit less priority and the defects can be fixed in
      normal course of development activities.
   • Low: This is having the lowest priority and the defects can be fixed after
      the more severe n priortised defects are take care of.
For example when a client connects to the SRCP server, the server generates a
welcome message containing information about the server. The defect of not
generating the welcome would have minor severity, but the process is repeated
every time we connect to the server and that is the first thing we see. So the
priority for this defect would be high and this would be test cases we should
definitely consider.
Another example would be that all commands are case sensitive and have to be
written in uppercase letters. In case some commands would be accepted with
lower case letters that would result in a defect, which doesn't cause a failure and
doesn't really impair usability. So the defect would have a minor severity and
minor priority. So a test case for this defect would not be relevant, considering
our matrices.


DEFECT PRIORITY:

         SEVERITY LEVEL                                 DEFINITION
                   High                           High system crash data loss
                  Medium                         Wrong result operation error
                   Low                               Low minor problems



                                                                                    11
The table tells us that we will only consider relevant combinations for our test
cases. We cannot provide full test coverage of the Test-Object, because the
number of all possible test cases could be from high to astronomically high.
Implementing all possible test cases would consume too much time, so that by
the time we are finished will all possible test cases, new versions of our Test-
Object would be available, which also need to be tested. So for the test cases we
only focus only on the important ones with the help of our matrices
A test-area from the main test areas (Chapter 2.1) has passed the test process if
it does not contain any defects of the severity level "Critical“. It is essential to
the product. Here need 100% pass rate.

1. A test-area has passed the test process if it does not contain less than 90%
   pass rate. It is called important.
2. A test-area has passed the test process if must not be less than 70% pass rate
   and it is called desirable test class.

2.3 Test Requirements

   Test-Requirements tell us what requirements the Test-Object has to full fill,
   by analyzing the specification of the Test-Object. They will help us to derive
   test cases.
2.3.1 Network Connection

   The SRPC is based on the data transfer technologies of TCP (Transmission
   control Protocol). One port is occupied. At present the port 12345 SHALL
   be used. Registering with IANA can change this for the future and give the
   port a name, too. The temporary name is srcp 12345/tcp

2.3.2 Lexical Units

   1. In this case, all character codes are described in their decimal form as #
   followed by the numeric value of the character.

                                                                                       12
• The entire communication consists of the characters of the 7bit ASCII
       character set in the range from #32 to #127 (including the borders).
   • Again the characters #9 (TAB) is used for space, #10 and #13 (CR, LF)
       for end of line are valid.
   • All further characters (esp. with a code value >127) are ignored in
       incoming data and removed.
   • In outgoing data they can be included, but is not used within SRCP.
   2. The characters #9and #13 are seen as white space.


2.3.3 Commands
Commands are send in the “Command Mode” and in “Hand Shake” from client
to server. The SRCP server processes the command and generates a response
that is to be sent to the client. Command consists of:
   1 Commands consist of a command word, followed by a command
      parameter list separated by white space.
   2 The end of a command is the end of line.
   3 The end of line always consists of the character #10(n, LF).
   4 A prefixed #13(r, CR) is valid. The character #13 is ignored.
2.3.4 Replies

A server HAS TO reply to every command of a client. That is to be sent to the
client on the same connection.
A reply SHALL be single-line. With the sign (Backslash, #92) immediately
before the LF(resp CRLF) it is marked that the reply contains another line.
A single line including the end of the line MUST NOT exceed the length of
1000 characters.
If the result of a command can be ascertained due to communication with
connected model railway devices this opportunity SHALL be used. In case there
are insufficient results for a task the answer is “416 ERROR no data”.


                                                                                13
2.3.5 State Of Server

SRCP server is always in one of three possible states towards the client: hand
shake, command mode or info mode.




Hand Shake Mode

In this Mode, after establishing a connection and sending the welcome message
the server waits for a command from the client. The server executes it and sends
a single line reply to the client. Then the server waits for the next command.
That way information and commands are being exchanged. Some example
commands used in this mode are:

1 SET CONNECTIONMODE SRCP <MODE> The type of connection is
agreed upon. Valid are INFO for the unidirectional information mode and
COMMAND for the bidirectional command mode. The server sends either 202
OK or the error message 401 ERROR unsupported connection mode to the
client.

2 SET PROTOCOL SRCP <VERSION> The desired protocol that is to be used
is arranged. If this command is missing the SRCP version given during


                                                                                 14
welcome is accepted. Every released version number from and including 0.8 is
valid as <VERSION>.

2.3.6 Command Mode

During command mode the server waits for commands from the client and
executes these. As the result of the execution the server always creates a reply
due to be sent to the client in the same TCP session. Subsequently the next
command is executed.
The server‘s replies to the client in the command mode always consist of a time
stamp at the beginning, a numerical answer code and further data. The
numerical answer code is structured in groups. 100-199 marks information and
results, 200-299 includes receipts confirming the processing according to the
rules, 400-499 marks error while executing commands, 500-599 errors by the
server itself, 600-699 specific error codes in implementation.

1xx INFO: Informations, results
2xx OK: Command is accepted and brought to execution. Attention: This is no
confirmation for actually executing the command.
4xx/5xx ERROR: An error condition has occurred. The command is ignored
and not executed.
6xx ERROR: A server specific error has occurred. The command in question is
not executed.
The significance of the time stamp arises from the kind of reply: For quittances
(OK, ERROR) it specifies the point in time when the command is processed and
the receipt OK or ERROR is generated.
Some conditions in command mode are :
   1. Replies of the commands by the server are to be sent to the client in the
      same TCP session.
   2. GET, SET, CHECK, WAIT, INIT, TERM, RESET, VERIFY are
      commands that are defined in command mode.

                                                                                   15
3. Valid commands must always be executed.
   4. It is not possible to go to info mode out of command mode.

2.4 Result of Planning Phase

PROJECT PLAN:

                             APRIL                 MAY               JUNE
Test
planning
Test case
 generation
Test case
execution
Analysis test result
documentation
Bugs analysis
documentation
(Repeat until desire
level)
Final result of test
cases
documentation


3. Test Specification

3.1 Equivalence Class

Equivalence class method will help us to develop test cases in a structured way
and Assists finding test data to provoke a special expected behaviour.

3.1.1 Feedback Sensors

   1. Class of addresses allowed: 1 ≤ x ≤ 10.

      Representative element = 1.

   2. Class of addresses not allowed: x < 1 && x > 10.

      Representative element = 11

                                                                              16
3.1.2 Generic Accessoires

   1. Class of all possible addresses allowed: 0 ≤ x ≤ 324.
      Representative element = 1.
   2. Class of addresses not allowed: x < 0 and x > 324.
      Representative element = 325

3.1.3 Generic Loco

   1. Class of all possible addresses allowed: 1 ≤ x ≤ 81.
      Representative element = 1.
   2. Class of addresses not allowed: x < 1 and x > 81.
      Representative element = 82

3.2 Black Box Test Cases

A python-written client program will run input/output driven tests on the SRCP
server. The client program will communicate with the server through a TCP
based connection. Input data will be provided through the specification of
SRCP.

Because of the configuration of SRCPD we will be able to use bus 1 for most of
the test cases and bus 0 for "SERVER", "SESSION", "LOCK",
"DESCRIPTION" or "TIME".




                                                                             17
FIGURE: Server Client Communication




                                      18
ID   Command          Description    Output        Severity/Priority

1    Set Connection   Enter command 202 OK         Critical / High
     Mode SRCP
     Command          mode in session Connection

                      1              Mode OK

2    SET              Set protocol   201 OK        Critical / High
                                     Protocol
     PROTOCOL         version for    SRCP
     SRCP 0.8.3       server

3    Set Connection   Try enter      401 Error   Critical / High
                                     Unsupported
     Mode SRCP        invalid mode
                                     Connection

                                     Mode

4    Set Connection   Enter info mode 202 OK       Critical / Major
     Mode SRCP
     INFO                            Connection

                                     Mode OK

5    GO               Complete Hand 200 OK GO      Critical / High

                      Shake



ID   Command        Description       Output       Severity/Priority
1    RESET 0 SERVER Reinitiate        200 OK       Critical /High
                    server
2    INIT 1 POWER   Initiate power    200 OK       Critical /High
                    supply on bus
                    1
3    SET 1 POWER    Set power         200 OK       Critical / High
     ON             supply on
4    GET 1 FB 1     Get info from     INFO 1 FB    Major /Medium
                    updated FB        2 123
                    on bus 1 with
                    address 1
5    SET 0 POWER Get server out       415 ERROR Major/ High

                                                                       19
OFF                   of     power forbidden
                               supply (not
                               allowed)


ID       Command            Description       Output       Severity/Priority
1        TERM 0             Close             100 INFO 0   Critical / High
         SERVER             connection to     SERVER
                            server
2        INIT 1             Initiate power    101 INFO 1   Critical/ Medium
         POWER              supply on bus 1   POWER
3        INIT 1 FB S88      Initialize a FB   101 INFO 1   Major /Medium
         888 1              on bus 1 with     FB
                            address 1
4        INIT 1 GA 0 S      Initialize a GA   101 INFO 1   Critical / Medium
         11                 on bus 1 with     GA 0 1 1
                            address 0 over
                            protocol S with
                            port & value 1
5        TERM 1 GL 1        Set engine to     102 INFO 1   Major / Medium
                            default state &   GL 1
                            take it out of
                            communication




    50
    45
    40
    35
    30
    25
                                                           Series1
    20
    15
    10
     5
     0
         Total Test Cases     Pass             Fail



Figure Test Case pass and fail ratio Total 45 Pass 18 Fail 27

                                                                               20
3.3 White Box Testing

3.3.1 SRCPD Source

White Box Testing is a method of testing software that tests internal structures

or workings of an application, as opposed to its functionality. In white-box

testing an internal perspective of the system, as well as programming skills, are

required and used to design test cases. The tester chooses inputs to exercise

paths through the code and determine the appropriate outputs.

Main Criteria in White Box Testing is code coverage, which means all the

branches in the control flow graph are going to be covered. The White box

Testing is going to be performed on the Specific modules of the SRCP server to

ensure safety of the tested models.

First we need to look at the most important source files for out test process. For

each module of SRCPD there are 2 different files. The *.h files contain the

defined functions and constants. The *.c files contain the exact definition of the

functions which were defined in the corresponding *.h files.

I have performed white box testing on the following module of the SRCP:

Followings are the bugs findings performed by doing statement and logic

coverage white – box testing.

MODULE: srcp-fb.c

1. Function: initfb
Bug: Here bus number is not checked and ‘fb’ is invalid under under bus
number zero.


                                                                                   21
Suggestion: Bus number should be checked before initializing the ‘fb’.

2. Function: queue_reset_fb
Bug: While on sleep it does not show any error message.

Suggestion: It should return an error message or result in case an error occurs.

3. Function: enqueueInfoFB

Bug: Here declared message length is constant i.e. 1000 and if another
parameter is passed , it may crash.

Suggestion: It should be made Dynamic.

Problem FB: Take FB on bus 1 with address 1 out of communication.

It is not running on bus 1.

Suggestion: It should be running on bus 1.

Problem: SET 2 FB 1 SET FB with too short parameter list. Address is not
mentioned.

Suggestion: Parameter list is checked and also address of bus should be
checked

Flow graph:

It is a representation of all paths that have been traversed by a program during
its execution, using graph notation. Using this flow chart, we can compute the
number of independent paths through the code. In a control flow graph each
node represents a basic block. Direct edges are used to represent jumps in
control flow. There are two specially designated blocks:

Entry block: Through which control enters into flow graph.

Exit block: Through which all control flow leaves the graph.

1. Function: initfb
Its code part and corresponding flow graph is given below:

CODE:




                                                                                   22
FLOW GRAPH:




2. Function: queue_reset_fb

Its code part and corresponding flow graph is given below:


                                                             23
CODE:




FLOW GRAPH:




              24
3. Function: enqueueInfoFB

Its code part and corresponding flow graph is given below:
                                                             25
CODE:




FLOW GRAPH:




3.3.2 Masking of Conditions:

It is necessary for efficiently analyzing the test paths. In this case multi-
condition decision is made separately to analyse the test paths efficiently.

In my white box testing I have made a masking of condition graph for ‘init_fb’
function in the module ‘srcp-fb.c’.

Masking of condition:




                                                                                26
3.3.3 Cause Effect Graph

This is basically a hardware testing technique adapted to software testing. It
considers only the desired external behavior of a system. This is a testing
technique that aids in selecting test cases that logically relate Causes (inputs)
to Effects (outputs) to produce test cases.

A “Cause” represents a distinct input condition that brings about an
internal change in the system. An “Effect” represents an output

Steps to design the cause effect Graph

Step – 1: For a module, identify the input conditions (causes) and actions
(effect).

                                                                                    27
Step – 2: Develop a cause-effect graph.

Step – 3: Transform cause-effect graph into a decision table.

Step – 4: Convert decision table rules to test cases. Each column of the
decision table represents a test case.

ESTABLISHING A CONNECTION:

               CAUSE                                  EFFECT
(1) Client connects to the server by      (E1) Welcome string sent by the server
TCP/IP connection
(2) Client desired operation mode         (E2) Server reply according to
                                          operation mode demand by client
(3) Server – Client sent GO command       (E3) Server confirmed GO command


CEG 1:




CEG 2:




                                                                             28
CEG 3:




         29
DECISION TABLE:

TEST CASE                   1              2              3            4
(1) Client connects         1              0              1            0
to the server by
TCP/IP connection
(2) Client desired          1              1              1            0
operation mode
(3) Client sends GO         0              1              1            0
command


4. Findings

   • Delayed Response from server

   • Not proficient details in Specification

   • Time Out – Server gets stuck after certain period of time

5. Conclusion

In our master test case specification, the Black box test cases are selected
according to the SRCP protocol and our assumptions stated earlier. White Box
test case findings were done while analyzing code and it is very important to do
both Black Box and White Box testing together so as to find more bugs and be
more sure about working of the software.



6. References

[1] Class notes and slides of Dr. Schoenfelder

[2] The Art of Software Testing , Second Edition, Glenford J. Myers




                                                                              30

Weitere ähnliche Inhalte

Andere mochten auch

ATCM presentation
ATCM presentationATCM presentation
ATCM presentationRishu Seth
 
Ngrep commands
Ngrep commandsNgrep commands
Ngrep commandsRishu Seth
 
Wsn topologies intro
Wsn topologies introWsn topologies intro
Wsn topologies introRishu Seth
 
Topo intro wsn
Topo intro wsnTopo intro wsn
Topo intro wsnRishu Seth
 
Role of Testing
Role of Testing Role of Testing
Role of Testing Rishu Seth
 
Simulation of insulin pump
Simulation of insulin pump Simulation of insulin pump
Simulation of insulin pump Rishu Seth
 

Andere mochten auch (8)

MicazXpl
MicazXplMicazXpl
MicazXpl
 
ATCM presentation
ATCM presentationATCM presentation
ATCM presentation
 
Micazxpl wsn
Micazxpl wsnMicazxpl wsn
Micazxpl wsn
 
Ngrep commands
Ngrep commandsNgrep commands
Ngrep commands
 
Wsn topologies intro
Wsn topologies introWsn topologies intro
Wsn topologies intro
 
Topo intro wsn
Topo intro wsnTopo intro wsn
Topo intro wsn
 
Role of Testing
Role of Testing Role of Testing
Role of Testing
 
Simulation of insulin pump
Simulation of insulin pump Simulation of insulin pump
Simulation of insulin pump
 

Ähnlich wie Mts srcp

Master Teset Specification SRCP
Master Teset Specification SRCPMaster Teset Specification SRCP
Master Teset Specification SRCPAnkit Singh
 
REMOTE RADIO HEAD TESTING: 5G case study
REMOTE RADIO HEAD TESTING: 5G  case studyREMOTE RADIO HEAD TESTING: 5G  case study
REMOTE RADIO HEAD TESTING: 5G case studyJOSE T Y
 
Realtimesamplingofutilization
RealtimesamplingofutilizationRealtimesamplingofutilization
RealtimesamplingofutilizationVicente Nava
 
LPG Booking System [ bookmylpg.com ] Report
LPG Booking System [ bookmylpg.com ] ReportLPG Booking System [ bookmylpg.com ] Report
LPG Booking System [ bookmylpg.com ] ReportNandu B Rajan
 
FYP_enerScope_Final_v4
FYP_enerScope_Final_v4FYP_enerScope_Final_v4
FYP_enerScope_Final_v4Hafiiz Osman
 
Masters' Thesis - Reza Pourramezan - 2017
Masters' Thesis - Reza Pourramezan - 2017Masters' Thesis - Reza Pourramezan - 2017
Masters' Thesis - Reza Pourramezan - 2017Reza Pourramezan
 
A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...
A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...
A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...Pete Sergeant
 
Rapid programmering start
Rapid programmering startRapid programmering start
Rapid programmering startZiaul Haque
 
S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guideguestd2fe1e
 
S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guideguestd2fe1e
 
Laser scanning for crack detection and repair with robotic welding
Laser scanning for crack detection and repair with robotic weldingLaser scanning for crack detection and repair with robotic welding
Laser scanning for crack detection and repair with robotic weldingFrançois Wieckowiak
 
A Probabilistic Pointer Analysis For Speculative Optimizations
A Probabilistic Pointer Analysis For Speculative OptimizationsA Probabilistic Pointer Analysis For Speculative Optimizations
A Probabilistic Pointer Analysis For Speculative OptimizationsJeff Brooks
 
Distributed Traffic management framework
Distributed Traffic management frameworkDistributed Traffic management framework
Distributed Traffic management frameworkSaurabh Nambiar
 
Final Report 9505482 5845742
Final Report 9505482 5845742Final Report 9505482 5845742
Final Report 9505482 5845742Bawantha Liyanage
 

Ähnlich wie Mts srcp (20)

Master Teset Specification SRCP
Master Teset Specification SRCPMaster Teset Specification SRCP
Master Teset Specification SRCP
 
T401
T401T401
T401
 
REMOTE RADIO HEAD TESTING: 5G case study
REMOTE RADIO HEAD TESTING: 5G  case studyREMOTE RADIO HEAD TESTING: 5G  case study
REMOTE RADIO HEAD TESTING: 5G case study
 
diss
dissdiss
diss
 
Realtimesamplingofutilization
RealtimesamplingofutilizationRealtimesamplingofutilization
Realtimesamplingofutilization
 
LPG Booking System [ bookmylpg.com ] Report
LPG Booking System [ bookmylpg.com ] ReportLPG Booking System [ bookmylpg.com ] Report
LPG Booking System [ bookmylpg.com ] Report
 
FYP_enerScope_Final_v4
FYP_enerScope_Final_v4FYP_enerScope_Final_v4
FYP_enerScope_Final_v4
 
Masters' Thesis - Reza Pourramezan - 2017
Masters' Thesis - Reza Pourramezan - 2017Masters' Thesis - Reza Pourramezan - 2017
Masters' Thesis - Reza Pourramezan - 2017
 
MS_Thesis
MS_ThesisMS_Thesis
MS_Thesis
 
A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...
A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...
A Haskell model for examining Perl, Python, and Ruby's testing ecosystems, an...
 
Sergeant
SergeantSergeant
Sergeant
 
KHAN_FAHAD_FL14
KHAN_FAHAD_FL14KHAN_FAHAD_FL14
KHAN_FAHAD_FL14
 
Rapid programmering start
Rapid programmering startRapid programmering start
Rapid programmering start
 
Milan_thesis.pdf
Milan_thesis.pdfMilan_thesis.pdf
Milan_thesis.pdf
 
S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guide
 
S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guide
 
Laser scanning for crack detection and repair with robotic welding
Laser scanning for crack detection and repair with robotic weldingLaser scanning for crack detection and repair with robotic welding
Laser scanning for crack detection and repair with robotic welding
 
A Probabilistic Pointer Analysis For Speculative Optimizations
A Probabilistic Pointer Analysis For Speculative OptimizationsA Probabilistic Pointer Analysis For Speculative Optimizations
A Probabilistic Pointer Analysis For Speculative Optimizations
 
Distributed Traffic management framework
Distributed Traffic management frameworkDistributed Traffic management framework
Distributed Traffic management framework
 
Final Report 9505482 5845742
Final Report 9505482 5845742Final Report 9505482 5845742
Final Report 9505482 5845742
 

Kürzlich hochgeladen

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfchloefrazer622
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104misteraugie
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingTeacherCyreneCayanan
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Disha Kariya
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...fonyou31
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...christianmathematics
 

Kürzlich hochgeladen (20)

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Disha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdfDisha NEET Physics Guide for classes 11 and 12.pdf
Disha NEET Physics Guide for classes 11 and 12.pdf
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
Mattingly "AI & Prompt Design: Structured Data, Assistants, & RAG"
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
fourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writingfourth grading exam for kindergarten in writing
fourth grading exam for kindergarten in writing
 
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptxINDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
INDIA QUIZ 2024 RLAC DELHI UNIVERSITY.pptx
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
Ecosystem Interactions Class Discussion Presentation in Blue Green Lined Styl...
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
Explore beautiful and ugly buildings. Mathematics helps us create beautiful d...
 

Mts srcp

  • 1. Master Test Specification Simple Rail Road Command Protocol (SRCP) Submitted by: Rishu Seth High Integrity Systems Fachhochschule Frankfurt am Main Matriculation number-936161 1
  • 2. Table of Contents 1.Introduction ...................................................................................................... 4 1.1 Overview ............................................................................................... 4 1.2 Test Object ............................................................................................ 4 1.3 Test Environment .................................................................................. 5 1.4 Test Plan................................................................................................ 6 1.5 Test Organisation .................................................................................. 7 1.6 Test Resources ...................................................................................... 7 2. Test Planning ................................................................................................... 8 2.1 Test Areas ............................................................................................. 8 2.2 Test Metrics .......................................................................................... 9 2.2.1 Defect Severity ...................................................................... 10 2.2.2 Defect Priority ....................................................................... 10 2.3 Test Requirement ................................................................................ 12 2.3.1 Network Connection ............................................................. 12 2.3.2 Lexical Units ......................................................................... 12 2.3.3 Commands ............................................................................. 13 2.3.4 Replies ................................................................................... 13 2.3.5 State of Server ....................................................................... 13 2.3.6 Hand Shake Mode ................................................................. 14 2.3.7 Command Mode .................................................................... 15 3. Test Specification .......................................................................................... 16 3.1 Equivalence Classes ........................................................................... 16 3.1.1 Feedback Sensors .................................................................. 16 3.1.2 Generic Accessories .............................................................. 17 3.1.3 Generic Loco ......................................................................... 17 2
  • 3. 3.2 Black Box Test Cases ......................................................................... 17 3.2.1 Hand Shake Area ................................................................... 18 3.2.2 Command Area ..................................................................... 19 3.2.3 Info Area................................................................................ 20 3.3 White Box Testing .............................................................................. 20 3.3.1 SRCPD Source ...................................................................... 20 3.3.2 Masking of Condition............................................................ 26 3.3.3 Cause Effect Graph ............................................................... 26 4. Findings .......................................................................................................... 30 5. Conclusion...................................................................................................... 30 References .......................................................................................................... 30 3
  • 4. 1. Introduction 1.1 Overview This document is Master Test Specification for Simple Railroad Command Protocol (SRCP: Version 0.8.3). The initial focus of this document is to analyze SRCP, it's specification and provide test cases & scenarios, that will eventually lead to errors in the system and then after that also to look inside the code and find anomalies and errors. Although to provide the full test coverage is not exactly possible. The main objectives of this document are: 1. It provides a status report of the test object in comparison to the requirements. Is the product fit for release? Adding value to the product by finding defects. 2. To Test the most prioritized elements of the test-object. The realistic use of the software should be considered. 3. Testing should be unbiased and from different point of views considering the needs of different users. 4. Test process is well structured. Is it repeatable and predictable? 1.2 Test Object SRCP is an internet protocol for controlling and programming (digital) model railway systems. It produces client server communication. The server is the component that is connected with the plant. The client can be run on the same computer as the server. The server has no clue about how the plant looks like. It is the server’s task to translate the commands of SRCP into action. A SRCP server is unaware of the exact concrete railway system. And the topology and even it is not being informed about the installed equipment. Its 4
  • 5. task is to collect all available information as precisely as possible handling knowledge about the possibilities and limits of the controlled plant. Its data have always to be understood as the best knowledge about the state of the railway system. Limitation of SRCP SRCP does not fulfill any formal real time demands. Merits of SRCP 1. A SRCP server abstracts the control of the construction. 2. Paying attention to different safety strategies. 3. Scaling Capability. An SRCP server represents one central unit (CU). A CU provides at least one bus over which information is read or commands are executed. A client contacts the server in order to send commands to the plant and to receive information from there. So there are SRCP channels between client and server, where the client sends commands to the server and SRCP channel between server and the plant, where the server has to execute the command on the plant. SRCP connection is based on TCP (Transmission Control Protocol). The Test object will be the protocol version 0.8.3 of SRCP and the SRCP Daemon 2.0.12, which will emulate the SCRP environment. 1.3 Test Environment The SRCP Test Environment consists of: 1. SRCPD - will emulate the SRCP server and a digital plant. 2. Server - A machine with OS Linux. SRCP Daemon will run on the server. 5
  • 6. 3. Client - The Client represents a working station with a python written script, which will connect to the server. OS can be either Linux or Windows. 4. Java - will provide a client program that sends commands to the SRCP server. 5. Documentation – MS (Microsoft) Word, Excel, Latex. 1.4 Test Plan The overall test strategy consists of 6 main phases or levels .The levels are given below Test-Planning • To Analyze the SCRP specification. • It provides test metrics to measure the quality of the test object. • It formulates the requirements of the test object. Test-Case-Generation • Use the test metrics & requirements to generate test cases for black box testing. Also divide the test cases in different test areas. • Provide a python written client program which will help us to execute the test cases on the test object. • Inspect the source code of SRCP Daemon and specify white box test cases. Test-Case-Execution • Execute test cases & log results. Analysis Test Result 6
  • 7. To analyze test result and compare it with desired result. Bugs Analysis • To find the bugs that means deviation from our previous stag. Test-Documentation • Visualize test results. • Defect Reporting. Final-Test-Result • Finalized the test result after Bugs Analysis. 1.5 Test Organization • Developers: Dr. Schönfelder. • Testers: Students. • Execution of Tests: Workstations at the university. 1.6 Test Resources • SCRPD 2.0.12 – source code. • Specification of SRCP 0.8.3 • Configurations file "srcpd.conf". • A client program written in Java will be used to connect to the server and execute test cases. 7
  • 8. 2. Test Planning 2.1 Test Areas There are mainly three main test areas: • Hand Shake Area: On initial connection hand Shake Mode is activated. Then after this connection, its according to the demand of the client whether to activate Command Mode or Info Mode. • Command Area • Info Area There are some different Sub Test Areas also which are used in combination with these three Test Areas: 1. Server: A SRCP server represents exactly one central unit (CU) in the usual sense. Every CU disposes of at least one bus for addressing on which information is read and/or commands are executed. If a SRCP server can manage and provide several CU it is valid. 8
  • 9. 2. Feed Back (FB): Feedback devices are encoders that signal an occurrence on construction 3. Generic Accessoire: A generic Accessoire generally indicates a decoder that can serve one or more ports under one address. Often these are switch decoders or signal decoders working as impulse decoders. • Generic Loco (GL): It indicates engine decoders in the engine address room of the hardware. • Locks: Devices locking other devices. The LOCK devices are devices providing a lock over another device. They are optional. 2.2 Test Metrices It is the measure of software quality and confidence of our test object. Test metrices have various uses: 1. It can reduce working time - once we have a matrix for a specific issue, it will take our less time to test it or to think how to test it. 2. It is logical and testing challenging - It is a challenge to make our own matrix and to find common issues that are repeatable from project to project. For Testing of this project, used metrics will look at: • Functional areas • Requirements Check For Test coverage and consistency of Test Effort During Test Preparation this metric uses: • Number of Test requirements compared to Functional Area/ Requirements 9
  • 10. • Number of Test Cases planned compared to Test Cases ready for execution During Test Execution this metric uses : • Number of Test Cases Passed, Failed or Blocked. • Number of Test Cases Executed compared to Test Cases Planned Severity: Grouping by potential danger caused. 2.2.1 Defect Severity It is the measure of how lethal a defect can be and how strong is the effect of failure on software user. • Critical: It is the highest order of severity and results in the failure of complete software system of a subsystem or of a software unit within the system. • Major: It is almost relevant to “Critical” but there are still some chances of processing some acceptable alternatives to get desired result. • Minor: This is referred to as some common normal defects which are not as lethal as other two but somehow effect the normal working of a software. DEFECT SEVERITY: TEST CLASS DEFINITION STANDARD % PAS CRITERIA RATE CRITICAL ESSENTIAL 100 % MAJOR NECESSARY 90% MINOR NOT IMMEDIATE 70% 2.2.2 Defect Priority 10
  • 11. It is the measure of priority that is set in regard to addressing defects and according to its severity, to set minimum time within which it should be fixed. • High: This is the most prioritized area and defect falling in this category severely affect the system’s working and should be fixed as soon as possible. • Medium: This is having a bit less priority and the defects can be fixed in normal course of development activities. • Low: This is having the lowest priority and the defects can be fixed after the more severe n priortised defects are take care of. For example when a client connects to the SRCP server, the server generates a welcome message containing information about the server. The defect of not generating the welcome would have minor severity, but the process is repeated every time we connect to the server and that is the first thing we see. So the priority for this defect would be high and this would be test cases we should definitely consider. Another example would be that all commands are case sensitive and have to be written in uppercase letters. In case some commands would be accepted with lower case letters that would result in a defect, which doesn't cause a failure and doesn't really impair usability. So the defect would have a minor severity and minor priority. So a test case for this defect would not be relevant, considering our matrices. DEFECT PRIORITY: SEVERITY LEVEL DEFINITION High High system crash data loss Medium Wrong result operation error Low Low minor problems 11
  • 12. The table tells us that we will only consider relevant combinations for our test cases. We cannot provide full test coverage of the Test-Object, because the number of all possible test cases could be from high to astronomically high. Implementing all possible test cases would consume too much time, so that by the time we are finished will all possible test cases, new versions of our Test- Object would be available, which also need to be tested. So for the test cases we only focus only on the important ones with the help of our matrices A test-area from the main test areas (Chapter 2.1) has passed the test process if it does not contain any defects of the severity level "Critical“. It is essential to the product. Here need 100% pass rate. 1. A test-area has passed the test process if it does not contain less than 90% pass rate. It is called important. 2. A test-area has passed the test process if must not be less than 70% pass rate and it is called desirable test class. 2.3 Test Requirements Test-Requirements tell us what requirements the Test-Object has to full fill, by analyzing the specification of the Test-Object. They will help us to derive test cases. 2.3.1 Network Connection The SRPC is based on the data transfer technologies of TCP (Transmission control Protocol). One port is occupied. At present the port 12345 SHALL be used. Registering with IANA can change this for the future and give the port a name, too. The temporary name is srcp 12345/tcp 2.3.2 Lexical Units 1. In this case, all character codes are described in their decimal form as # followed by the numeric value of the character. 12
  • 13. • The entire communication consists of the characters of the 7bit ASCII character set in the range from #32 to #127 (including the borders). • Again the characters #9 (TAB) is used for space, #10 and #13 (CR, LF) for end of line are valid. • All further characters (esp. with a code value >127) are ignored in incoming data and removed. • In outgoing data they can be included, but is not used within SRCP. 2. The characters #9and #13 are seen as white space. 2.3.3 Commands Commands are send in the “Command Mode” and in “Hand Shake” from client to server. The SRCP server processes the command and generates a response that is to be sent to the client. Command consists of: 1 Commands consist of a command word, followed by a command parameter list separated by white space. 2 The end of a command is the end of line. 3 The end of line always consists of the character #10(n, LF). 4 A prefixed #13(r, CR) is valid. The character #13 is ignored. 2.3.4 Replies A server HAS TO reply to every command of a client. That is to be sent to the client on the same connection. A reply SHALL be single-line. With the sign (Backslash, #92) immediately before the LF(resp CRLF) it is marked that the reply contains another line. A single line including the end of the line MUST NOT exceed the length of 1000 characters. If the result of a command can be ascertained due to communication with connected model railway devices this opportunity SHALL be used. In case there are insufficient results for a task the answer is “416 ERROR no data”. 13
  • 14. 2.3.5 State Of Server SRCP server is always in one of three possible states towards the client: hand shake, command mode or info mode. Hand Shake Mode In this Mode, after establishing a connection and sending the welcome message the server waits for a command from the client. The server executes it and sends a single line reply to the client. Then the server waits for the next command. That way information and commands are being exchanged. Some example commands used in this mode are: 1 SET CONNECTIONMODE SRCP <MODE> The type of connection is agreed upon. Valid are INFO for the unidirectional information mode and COMMAND for the bidirectional command mode. The server sends either 202 OK or the error message 401 ERROR unsupported connection mode to the client. 2 SET PROTOCOL SRCP <VERSION> The desired protocol that is to be used is arranged. If this command is missing the SRCP version given during 14
  • 15. welcome is accepted. Every released version number from and including 0.8 is valid as <VERSION>. 2.3.6 Command Mode During command mode the server waits for commands from the client and executes these. As the result of the execution the server always creates a reply due to be sent to the client in the same TCP session. Subsequently the next command is executed. The server‘s replies to the client in the command mode always consist of a time stamp at the beginning, a numerical answer code and further data. The numerical answer code is structured in groups. 100-199 marks information and results, 200-299 includes receipts confirming the processing according to the rules, 400-499 marks error while executing commands, 500-599 errors by the server itself, 600-699 specific error codes in implementation. 1xx INFO: Informations, results 2xx OK: Command is accepted and brought to execution. Attention: This is no confirmation for actually executing the command. 4xx/5xx ERROR: An error condition has occurred. The command is ignored and not executed. 6xx ERROR: A server specific error has occurred. The command in question is not executed. The significance of the time stamp arises from the kind of reply: For quittances (OK, ERROR) it specifies the point in time when the command is processed and the receipt OK or ERROR is generated. Some conditions in command mode are : 1. Replies of the commands by the server are to be sent to the client in the same TCP session. 2. GET, SET, CHECK, WAIT, INIT, TERM, RESET, VERIFY are commands that are defined in command mode. 15
  • 16. 3. Valid commands must always be executed. 4. It is not possible to go to info mode out of command mode. 2.4 Result of Planning Phase PROJECT PLAN: APRIL MAY JUNE Test planning Test case generation Test case execution Analysis test result documentation Bugs analysis documentation (Repeat until desire level) Final result of test cases documentation 3. Test Specification 3.1 Equivalence Class Equivalence class method will help us to develop test cases in a structured way and Assists finding test data to provoke a special expected behaviour. 3.1.1 Feedback Sensors 1. Class of addresses allowed: 1 ≤ x ≤ 10. Representative element = 1. 2. Class of addresses not allowed: x < 1 && x > 10. Representative element = 11 16
  • 17. 3.1.2 Generic Accessoires 1. Class of all possible addresses allowed: 0 ≤ x ≤ 324. Representative element = 1. 2. Class of addresses not allowed: x < 0 and x > 324. Representative element = 325 3.1.3 Generic Loco 1. Class of all possible addresses allowed: 1 ≤ x ≤ 81. Representative element = 1. 2. Class of addresses not allowed: x < 1 and x > 81. Representative element = 82 3.2 Black Box Test Cases A python-written client program will run input/output driven tests on the SRCP server. The client program will communicate with the server through a TCP based connection. Input data will be provided through the specification of SRCP. Because of the configuration of SRCPD we will be able to use bus 1 for most of the test cases and bus 0 for "SERVER", "SESSION", "LOCK", "DESCRIPTION" or "TIME". 17
  • 18. FIGURE: Server Client Communication 18
  • 19. ID Command Description Output Severity/Priority 1 Set Connection Enter command 202 OK Critical / High Mode SRCP Command mode in session Connection 1 Mode OK 2 SET Set protocol 201 OK Critical / High Protocol PROTOCOL version for SRCP SRCP 0.8.3 server 3 Set Connection Try enter 401 Error Critical / High Unsupported Mode SRCP invalid mode Connection Mode 4 Set Connection Enter info mode 202 OK Critical / Major Mode SRCP INFO Connection Mode OK 5 GO Complete Hand 200 OK GO Critical / High Shake ID Command Description Output Severity/Priority 1 RESET 0 SERVER Reinitiate 200 OK Critical /High server 2 INIT 1 POWER Initiate power 200 OK Critical /High supply on bus 1 3 SET 1 POWER Set power 200 OK Critical / High ON supply on 4 GET 1 FB 1 Get info from INFO 1 FB Major /Medium updated FB 2 123 on bus 1 with address 1 5 SET 0 POWER Get server out 415 ERROR Major/ High 19
  • 20. OFF of power forbidden supply (not allowed) ID Command Description Output Severity/Priority 1 TERM 0 Close 100 INFO 0 Critical / High SERVER connection to SERVER server 2 INIT 1 Initiate power 101 INFO 1 Critical/ Medium POWER supply on bus 1 POWER 3 INIT 1 FB S88 Initialize a FB 101 INFO 1 Major /Medium 888 1 on bus 1 with FB address 1 4 INIT 1 GA 0 S Initialize a GA 101 INFO 1 Critical / Medium 11 on bus 1 with GA 0 1 1 address 0 over protocol S with port & value 1 5 TERM 1 GL 1 Set engine to 102 INFO 1 Major / Medium default state & GL 1 take it out of communication 50 45 40 35 30 25 Series1 20 15 10 5 0 Total Test Cases Pass Fail Figure Test Case pass and fail ratio Total 45 Pass 18 Fail 27 20
  • 21. 3.3 White Box Testing 3.3.1 SRCPD Source White Box Testing is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality. In white-box testing an internal perspective of the system, as well as programming skills, are required and used to design test cases. The tester chooses inputs to exercise paths through the code and determine the appropriate outputs. Main Criteria in White Box Testing is code coverage, which means all the branches in the control flow graph are going to be covered. The White box Testing is going to be performed on the Specific modules of the SRCP server to ensure safety of the tested models. First we need to look at the most important source files for out test process. For each module of SRCPD there are 2 different files. The *.h files contain the defined functions and constants. The *.c files contain the exact definition of the functions which were defined in the corresponding *.h files. I have performed white box testing on the following module of the SRCP: Followings are the bugs findings performed by doing statement and logic coverage white – box testing. MODULE: srcp-fb.c 1. Function: initfb Bug: Here bus number is not checked and ‘fb’ is invalid under under bus number zero. 21
  • 22. Suggestion: Bus number should be checked before initializing the ‘fb’. 2. Function: queue_reset_fb Bug: While on sleep it does not show any error message. Suggestion: It should return an error message or result in case an error occurs. 3. Function: enqueueInfoFB Bug: Here declared message length is constant i.e. 1000 and if another parameter is passed , it may crash. Suggestion: It should be made Dynamic. Problem FB: Take FB on bus 1 with address 1 out of communication. It is not running on bus 1. Suggestion: It should be running on bus 1. Problem: SET 2 FB 1 SET FB with too short parameter list. Address is not mentioned. Suggestion: Parameter list is checked and also address of bus should be checked Flow graph: It is a representation of all paths that have been traversed by a program during its execution, using graph notation. Using this flow chart, we can compute the number of independent paths through the code. In a control flow graph each node represents a basic block. Direct edges are used to represent jumps in control flow. There are two specially designated blocks: Entry block: Through which control enters into flow graph. Exit block: Through which all control flow leaves the graph. 1. Function: initfb Its code part and corresponding flow graph is given below: CODE: 22
  • 23. FLOW GRAPH: 2. Function: queue_reset_fb Its code part and corresponding flow graph is given below: 23
  • 25. 3. Function: enqueueInfoFB Its code part and corresponding flow graph is given below: 25
  • 26. CODE: FLOW GRAPH: 3.3.2 Masking of Conditions: It is necessary for efficiently analyzing the test paths. In this case multi- condition decision is made separately to analyse the test paths efficiently. In my white box testing I have made a masking of condition graph for ‘init_fb’ function in the module ‘srcp-fb.c’. Masking of condition: 26
  • 27. 3.3.3 Cause Effect Graph This is basically a hardware testing technique adapted to software testing. It considers only the desired external behavior of a system. This is a testing technique that aids in selecting test cases that logically relate Causes (inputs) to Effects (outputs) to produce test cases. A “Cause” represents a distinct input condition that brings about an internal change in the system. An “Effect” represents an output Steps to design the cause effect Graph Step – 1: For a module, identify the input conditions (causes) and actions (effect). 27
  • 28. Step – 2: Develop a cause-effect graph. Step – 3: Transform cause-effect graph into a decision table. Step – 4: Convert decision table rules to test cases. Each column of the decision table represents a test case. ESTABLISHING A CONNECTION: CAUSE EFFECT (1) Client connects to the server by (E1) Welcome string sent by the server TCP/IP connection (2) Client desired operation mode (E2) Server reply according to operation mode demand by client (3) Server – Client sent GO command (E3) Server confirmed GO command CEG 1: CEG 2: 28
  • 29. CEG 3: 29
  • 30. DECISION TABLE: TEST CASE 1 2 3 4 (1) Client connects 1 0 1 0 to the server by TCP/IP connection (2) Client desired 1 1 1 0 operation mode (3) Client sends GO 0 1 1 0 command 4. Findings • Delayed Response from server • Not proficient details in Specification • Time Out – Server gets stuck after certain period of time 5. Conclusion In our master test case specification, the Black box test cases are selected according to the SRCP protocol and our assumptions stated earlier. White Box test case findings were done while analyzing code and it is very important to do both Black Box and White Box testing together so as to find more bugs and be more sure about working of the software. 6. References [1] Class notes and slides of Dr. Schoenfelder [2] The Art of Software Testing , Second Edition, Glenford J. Myers 30