Quadrus Products - GenITC - FAQ (Frequently Asked Questions)
   
 
about Quadrus
services
capabilities
clients
employment
Home
 
 

 
Our Products

GenITC - FAQ (Frequently Asked Questions)

What is GenITC?
GenITC is a sort-of acronym for Generic Interface Test Computer. It’s a PC-based test tool that plugs into the network interfaces of the system you’re trying to test, and interacts with the message traffic. The interaction can be as simple as doing nothing but logging the traffic, or GenITC can modify it on the fly, kill messages, duplicate them, or create new messages and inject them into the stream. Because of that last capability, it can even simulate one of the systems in the network.

How does GenITC “plug into” a network interface?
If you’re running on an Ethernet network, you just run a cable from the hub/router/switch to the GenITC’s network card, configure the connection, and voila! GenITC is on the network.

How many systems can a GenITC talk to?
Up to two. The idea is that it sits in between two subsystems that are undoing test and interacts with the message traffic going between them. Now you can also omit one of the systems, and have GenITC totally simulate the behavior of the missing one. You can even drop the remaining subsystem and just have GenITC simulations communicate with one another. (This sounds kinda pointless, but if you’ve got a good simulation of one system, and you need to work up one for another, the development can be done off-line until it’s in good enough shape to start integrating with the real system.)

Are we talking TCP/IP or UDP?
Either. Both. A GenITC can communicate using either protocol, and even talk TCP/IP on one interface, and UDP on the other.

How does it handle UDP multicast?
GenITC uses two network cards to handle this situation. The system’s network itself needs to be split into two subnets, with the only link between them running through GenITC’s network interfaces. This is more invasive to the network, since it requires reconfiguring the routing, but it works just fine.

How does GenITC know what the messages look like?
It has to be told. And the way it’s told is with the aid of a GUI-based tool called DataMan, which is part of the GenITC tool suite. DataMan gives you a graphical interface to create and edit messages from their fields on up.

How exactly does message creation and editing work? Be concise.
First you start with the definition of a message, this could be provided by an Interface Design Document or directly from source code. A message is made up of fields, and each field can either be a single value, like an integer or a string, or a nested group of fields, which themselves can contain nested components.

You start message creation by defining data items corresponding to the lowest level message fields, like missile count or day of year. Then start grouping those together into any groups or records that may be part of the part of the message. Eventually you have all the components of the message, which are then assembled together into a message definition. Along the way, those message fields that differentiate one from another, like a message ID in the message header are identified so that GenITC can tell where to look to figure out what kind of message it just received.

Does that work for VMF? Variable Message Format?
Yes. To support VMF there’s some additional kinds of message field types, it’s not all just integers, strings, and records. With VMF you have Optional and Recurring components, which accommodate VMF’s Field and Group Presence and Recurrence Indicators.

Can you use this with C++? Or does it only work with C?
GenITC is language independent. So long as there’s a consistent definition of the message layout in terms of bits and bytes, it doesn’t matter what programming language was used to create a message.

How do you tell GenITC what to do with the messages passing through it?
GenITC uses “scenarios”. These are akin to scripts, but they’re visually oriented. ScenMan, another GenITC, component is used to create and edit scenarios.

Scenarios consist of events and actions. Nearly all events are either “message events” or “time events” (the other kinds are “start” and “stop” events, which are optionally used to initialize and finalize, respectively, a scenario’s execution). Actions define the behavior of the scenario, so there are actions to interact with messages, to do expression evaluation, conditional execution, and display text to the user.

A message event is triggered by the receipt of a message of the kind it’s been told to watch for. (A message event can even be told to watch for only those messages that have specific values in one or more of its fields.) Upon receipt, the actions associated with the message are executed.

A time event is either a “one-shot” timer which counts down some set amount of time and then executes its actions, or a periodic timer, which counts down, executes its actions, and then resets its timer.

There are actions to modify messages that have been received and then send them on, as well as create, populate, and send whole new messages. Variables are available to scenarios, so there are actions to set them, either to some fixed value, or to the content of a field of a message that was just received. Data loaded from a field can then in turn be used to populate a different message’s field(s). Checksums and mathematical expressions can be calculated, and conditional expressions can be evaluated to determine which of two sets of actions to execute. And last, notices can be displayed to the console window to keep the user apprised of what’s going on in the scenario.

How hard is it to mess around with time fields that appear in messages?
GenITC provides a special mechanism for dealing with time in messages. A message field that contains a time value can be marked for “Time Special Processing” and then the units of time that value represents can be selected. These units include the year, month within year, Unix time, milliseconds since midnight, and several others.

Within a scenario there are some predefined time-oriented variables that are continuously updated, such as “__CurrentTime”. When assigning that variable to a message field marked for Time processing, the appropriate portion of the current time will be extracted and formatted for storage in that field. Or even just when working with a variable that contains a “time value”, assigning that variable to a Time field will put the value of that variable appropriate to the field’s units into the field.

What do I do if a bug appears in the software?
Tell Quadrus! If you have an on-site Quadrus rep or have been given a Quadrus point-of-contact, let them know about the problem. If not, call us at 256-327-3410 or email us.

Do customers develop their own scenarios or does Quadrus supply them based on their needs?
This is up to you, the customer. There’s nothing stopping you from building your own message databases and scenarios—you have all the tools—but if you want you can contract database and/or scenario development to Quadrus, or bring us in to train your people.

What is created first, the test case or the scenario file?
As with any testing effort, you have to know what it is you want to test before you start writing scenarios or test procedures. Understand what you need to test, and what it takes to get the systems you’re testing to act in a way that exercises the test criteria. Then identify what activity has to be performed on the systems under test, and what messages and content have to be exchanged between them in order to trigger the desired (or undesired) behavior.

Once this has all been identified, create the scenario that interacts with the systems’ activity and message traffic and modifies and/or creates the sequence of messages that are needed.

What is created first, the message database or the scenario?
A scenario is almost always interacting with the messages being passed between systems, so those message definitions have to exist in a message database before any scenario can be created. You can always sketch out a scenario’s flow by hand, but you won’t be able to use ScenMan to create it until the message database is in place.
 

Also see:
GenITC FAQ  |  VMF FAQ

E-Mail: Info@QuadrusCorp.com

top of page top

 

 
About Quadrus - Our Services - Our Capabilities - Our Products - Clients and Projects - Employment Opportunities