Internet DRAFT - draft-trace-httpbis-http2-test

draft-trace-httpbis-http2-test



Network Working Group                                         M.Lai
Internet Draft                                               C.Jian
Intended status: Standards Track                            R.Trace
Expires: March 2014                           Microsoft Corporation
                                                 September 13, 2013


                         HTTP/2.0 Protocol Test
                   draft-trace-httpbis-http2-test-00


Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance
   with the provisions of BCP 78 and BCP 79. This document may
   contain material from IETF Documents or IETF Contributions
   published or made publicly available before November 10, 2008.
   The person(s) controlling the copyright in some of this material
   may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards
   Process.  Without obtaining an adequate license from the
   person(s) controlling the copyright in such materials, this
   document may not be modified outside the IETF Standards Process,
   and derivative works of it may not be created outside the IETF
   Standards Process, except to format it for publication as an RFC
   or to translate it into languages other than English.

   Internet-Drafts are working documents of the Internet
   Engineering Task Force (IETF), its areas, and its working
   groups.  Note that other groups may also distribute working
   documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six
   months and may be updated, replaced, or obsoleted by other
   documents at any time. It is inappropriate to use Internet-
   Drafts as reference material or to cite them other than as "work
   in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on November, 2013.

Copyright

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors. All rights reserved.
Lai, Jian, Trace, et. al.                                  [Page 1]

Internet-Draft             HTTP/2.0 Testing                May 2013


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with
   respect to this document. Code Components extracted from this
   document must include Simplified BSD License text as described
   in Section 4.e of the Trust Legal Provisions and are provided
   without warranty as described in the Simplified BSD License.

Abstract

   This document suggests guidance and principles for testing
   HTTP/2.0 implementations. Goals are to improve the HTTP/2.0
   specification by mitigating the potential ambiguity of the
   protocol specification and improving interoperability of its
   implementations.

Table of Contents


   1. Scope and Goals................................................3
      1.1. Requirements Language.....................................3
   2. Test Framework and Scenarios...................................4
      2.1. Cross-Platform Support....................................4
      2.2. Test Areas................................................4
         2.2.1. Upgrade..............................................4
         2.2.2. Framing..............................................4
         2.2.3. Flow Control.........................................4
         2.2.4. Streams and Multiplexing.............................4
         2.2.5. Header Compression...................................4
         2.2.6. Connection Management................................4
         2.2.7. Stream Prioritization................................4
         2.2.8. Authentication.......................................4
         2.2.9. SSL Negotiation......................................4
         2.2.10. Proxies.............................................4
         2.2.11. Server Push.........................................4
         2.2.12. Use of TLS..........................................4
      2.3. Test Results..............................................4
      2.4. Test Organization.........................................5
      2.5. Reliability...............................................5
      2.6. Diagnosis Ability.........................................5
      2.7. Ease of Execution.........................................5
      2.8. Extensibility.............................................5
   3. Security Considerations........................................6
   4. IANA Considerations............................................6
   5. Acknowledgments................................................6
   6. References.....................................................6
      6.1. Normative References......................................6
Lai, Jian, Trace, et. al.                                  [Page 2]

Internet-Draft             HTTP/2.0 Testing                May 2013


      6.2. Informative References....................................6

1. Scope and Goals

   The scope of this document is to describe test framework and
   scenarios for client and server HTTP/2.0 implementations,
   primarily focusing on protocol compliance testing.

   Specific goals are:

  - Validate compliance with the HTTP/2.0 specification. Testing
     scenarios are derived from the protocol specification to ensure
     that implementations comply with all the "MUST", "MUST NOT",
     "REQUIRED", "SHALL", "SHALL NOT" terms.
  - Assure consistency in interpretation of the HTTP/2.0 specification.
     Behaviors and responses are consistent among each implementations
     and expected functionalities and outcomes are the same across.
  - Improve the HTTP/2.0 specification. Uncover unclear terms or gaps
     in the protocol specification during test development.
     Interpretation of test results may provide insight to potential
     specification issues. Propose appropriate fix based on the issues
     to enhance the HTTP/2.0 Protocol usability.

   Areas that are out of scope:

  - Security testing
  - Performance testing
  - Stress testing
  - Interoperability testing with real world web sites



1.1. Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
   NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described
   in RFC 2119 [RFC2119].






Lai, Jian, Trace, et. al.                                  [Page 3]

Internet-Draft             HTTP/2.0 Testing                May 2013


2. Test Framework and Scenarios

2.1. Cross-Platform Support

  - Tests can be executed cross-platforms with consistent results. A
     consistent way of conveying results so that cross platform result
     carries the same meaning.
  - Tests are written with platform-independent programming language
     (for example, C/C++, Python)

2.2. Test Areas

   Test protocol compliance in terms of behaviors, boundary values, and
   error handling with interactions between client/server and
   intermediates.

2.2.1. Upgrade

2.2.2. Framing

2.2.3. Flow Control

2.2.4. Streams and Multiplexing

2.2.5. Header Compression

2.2.6. Connection Management

2.2.7. Stream Prioritization

2.2.8. Authentication

2.2.9. SSL Negotiation

2.2.10. Proxies

2.2.11. Server Push

2.2.12. Use of TLS

2.3. Test Results

   Pass/Fail test results strictly follows standards of protocol.

   -  Behaviors that violate the "MUST", "MUST NOT", "REQUIRED",
     "SHALL", "SHALL NOT" terms of the HTTP/2.0 protocol will fail the
     tests
Lai, Jian, Trace, et. al.                                  [Page 4]

Internet-Draft             HTTP/2.0 Testing                May 2013


   -  Error handling results with side effects (i.e. crashes) will fail
     the tests

   -  Client/server which do not tolerate peers that follow "SHOULD",
     "RECOMMENDED", "MAY" behaviors will fail the tests

2.4. Test Organization

   -  Test cases should be logically structured and well grouped.
     Supports test selection based on feature area, for example, server
     push, upgrade, proxy, etc.

   -  Each test case must provide concrete descriptions and references
     to the IETF protocols

   -  Test cases should identify which version it supports, for example,
     HTTP-draft-06/2.0, HTTP/2.0, etc

   -  Test case name should be related to test scenarios and able to
     identify client/server side test

2.5. Reliability

   - Test cases should clean up and maintain the same environment after
     execution
   - Test cases yield the same results over time consistently

2.6. Diagnosis Ability

   - Test framework should support standard logging for after-test
     analysis
   - Logging should have different levels, for example, error level for
     protocol violation, warning level for potential interoperability
     problems,  trace level for debug
   - Logging should report corresponding error code returned during
     testing

2.7. Ease of Execution

   Test framework can be automated through command line tools, nice to
   have UIs.

2.8. Extensibility

   Test framework has modular structure and extensible for shared
   development. It can be added by different
Lai, Jian, Trace, et. al.                                  [Page 5]

Internet-Draft             HTTP/2.0 Testing                May 2013


   vendors/companies/organizations, that is, different people can
   collaborate on different test areas.

3. Security Considerations

   None.

4. IANA Considerations

   None.

5. Acknowledgments

   This document was prepared using 2-Word-v2.0.template.doc.

6. References

6.1. Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [I-D.ietf-httpbis-http2]
              Belshe, M., Peon, R., Thomson, M., and A. Melnikov,
              "Hypertext Transfer Protocol version 2.0", draft-ietf-
              httpbis-http2 (work in progress), August 2013.


6.2. Informative References

   None.


Author's Addresses

   Michelle Lai
   Microsoft Corporation

   Email: miclai@microsoft.com








Lai, Jian, Trace, et. al.                                  [Page 6]

Internet-Draft             HTTP/2.0 Testing                May 2013


   Changshu Jian
   Microsoft Corporation

   Email: ChangJia@microsoft.com

   Rob Trace
   Microsoft Corporation

   Email: Rob.Trace@microsoft.com








































Lai, Jian, Trace, et. al.                                  [Page 7]