SIF Certification FAQs


ZIS Compliance FAQ

Why does the push mode agent keep reregistering and closing its server connection?

This is the opportunity cost so that the ZIS being tested can pass several of the tests (ZISSendsHTTP, ZISSends_TLS_1_0, ZISSends_SSL_3_0, ZISSendsEncryptionLevelX).

SIF 2.x Agent Compliance FAQ

Where is the test harness?

Visit the Test Suites webpage and select the Test Suite Version that interests you.

I’m not an A4L Community member, how do I get access to the test suite?

The SIF test suite is only available to ‘Premium’ Access 4 Learning (A4L) Community members.  As a member of the A4L Community, you will be granted unlimited access to the test suite for pre-certification and certification testing.

For more information about membership, please click here.

I am running into NullPointerExceptions creating a new conformance statement. Is there something I should try?

Some users have reported running into NullPointerExceptions creating new conformance statements using the CSQ Editor. Please check that cookies are enabled in your web browser. There have been users who have reported that the problem goes away as soon as cookies are enabled. If you continue to have problems, send an e-mail to SIF Compliance Support.

My agent is communicating with the test harness; however I am passing very few tests. What should I check first?

Ensure the version declared in your messages and the test harness you have chosen match.

If a test appears as failed, can I “redeem myself” in the same test session and have the test change to passed?

No, sorry. Whereas successful tests can later move to failed, failed tests typically stay failed. Whenever you resolve the problem that led to the test failing, you can go through another test session to make sure the test is passed.

I have an “agent receives” event/request/response test that is still listed as incomplete but I’m not receiving the event/request/response to pass the test. What’s wrong?

Check the log or look back through your agent’s own log/history. In many cases your agent has already received the event/request/response but returned an error SIF_Ack. The “agent receives” tests are looking for your agent successfully acknowledging receipt of the messages in question. If you receive a response, for instance, and return an SQL error, the test harness doesn’t recognize this as successfully acknowledging the response. At some point the agent has to successfully process a response for the object type in question. In the case of a response test, you will need to make another request to receive additional responses from the test harness so you may pass the test. For events and requests, you can use the session controls on the right-hand side of the agent test session page to generate additional events and requests.

The test harness logs some of my HTTP messages as invalid due to an incorrect HTTP version and it’s not the version I’m sending, why? The messages tend to have via headers in them.

Your HTTP request or response is going through a proxy server. As the test harness has to follow the SIF specification, it can only accept HTTP/1.1 as a valid SIF HTTP message. If your proxy server is changing the version to HTTP/1.0, you will have to address that on your end. Future versions of the SIF specification may have to address the issue of HTTP proxies and gateways.

How do I connect my agent to the test harness with an encrypted connection?

For folks using an Agent Developer Kit, most of the complexities are handled there. Start by checking your ADK supplier’s documentation about the environment needed to meet the data security requirements of the SIF specification. Then apply this guidance Otherwise you are going to have to learn something about the relevant technologies and add these features yourself. However, we do provide a special testing environment for troubleshooting related issues

If I support both SIF HTTPS and SIF HTTP, what order does the test harness test them in?

The test harness doesn’t so much actively test your agent as observe what your agent does. If you register over HTTP and then send an event over HTTPS, you will pass the “registers over HTTP” test and the “sends event over HTTPS” test. Typically, though, you would run your agent through whatever it does using one protocol or the other then do the same thing over the other protocol.

There a lot of “AgentSends” tests involving communications protocols and encryption levels. How do I pass all of these tests?

You can complete the bulk of your testing using a single HTTPS URL for the Zone (or HTTP URL in non-certification sessions). If your Agent supports a variety of SSL protocols and SIF_EncryptionLevels and your Agent cannot demonstrate those capabilities using a HTTPS URL where all protocol/SIF_EncryptionLevel combinations are enabled, separate HTTPS URLs for each of your supported combinations are available. To pass the applicable AgentSendsX tests, simply send a single message (e.g. SIF_Register) to each URL.

I can watch my agent request objects and get them back, yet the request tests are still pending, why?

First, the SIF 2 Enabled Application Product Standard requires that agents query for objects using 2.* for the SIF_Version tag.

Second, if your query included a SIF_ConditionGroup it may have resulted in an empty (no SIF_ObjectData) response. This will prevent passage of this test and you should contact SIF Compliance Support to have this evaluated and resolved.

I have passed all object response tests but the object request tests are pending, how can this be?

These two tests are not linked. Response refers to your agent responding to outside requests; not receiving a response to the queries made by your agents. That is actually part of the request tests.

When does the test harness send out conditional requests containing SIF_ConditionGroup?

If your agent provides or responds to requests for a given object, follow-up conditional requests for the object in question are generated after your agent responds with data to the initial requests for all objects sent by the test harness to your agent.

If I require data from the test harness to populate my database, can I assume the test harness will not request an object from me before I have all the data I require?

No. The test harness can’t know what your data dependencies are. It will generate requests as and whenever it sees fit. If you receive a request for an object and you haven’t yet populated your database with data you need from the test harness, you can manually generate another request for yourself using the session request controls on the right-hand side of the agent test session page when you know you have the data to pass a “responds with data” type test. You will not fail the test if you respond with empty response data. The test harness will continue to look for a response with data, which you will be able to provide when you are ready.

How do I pass an “agent responds to request for unsupported object” test?

A number of agents assume this test is looking for an error acknowledgement returned to the ZIS indicating that the object is not supported. But the test is really looking for your agent sending a response to the requesting agent indicating the object is unsupported. The spec requires this functionality of all agents. Check the spec for the error category/code that should be sent to the requesting agent.

How can agents support messages for other (potentially not yet created) versions of SIF?

Backwards compatibility standards within a major version of SIF are very strict. Getting messages of a different version back and consuming their data objects should be trivial. Depending on your implementation, it can be zero extra work. For instance, if you parse the message and use several specific XPaths to pull out the data your application commits to its data base, your 2.0r1 agent should be able to consume any SIF 2 data object it receives. Additionally when your agent publishes a change, follow the best practice of omitting all unchanged elements and you will not misinform your peers.