- From: Alex Rousskov <rousskov@measurement-factory.com>
- Date: Mon, 7 Oct 2002 15:23:04 -0600 (MDT)
- To: David Marston/Cambridge/IBM <david_marston@us.ibm.com>
- cc: www-qa@w3.org
On Mon, 7 Oct 2002, David Marston/Cambridge/IBM wrote: > So we need a decision there: > A. SpecGL merely requires that it be possible to distinguish > implementations that are conforming and non-conforming at a > structural level. That is, whatever DoV techniques are used > by an implementation can either be overlooked or reduced to > something testable. > B. SpecGL enumerates the DoV but does not express any value > judgement about excessive variability. > C. SpecGL enumerates the DoV and discourages variability beyond > a certain objective criterion. David, Nice rendering of the options! A "clear" and "fair" representation of opinions you disagree with. For completeness, let's consider D: D. SpecGL requires that it be possible to distinguish implementations that are conforming and non-conforming. Whatever DoV techniques are used by an implementation must comply with SpecGL requirements. Those requirements may or may not be specific to a certain DoV, as needed. If SpecGL has to require something specific to a DoV, that DoV must be defined/documented. If SpecGL has to require something specific to most currently known DoVs, a DoV framework may be appropriate as a part of SpecGL. My intention is to arrive at a compact and precise spec, starting from the most general requirements/properties of a "good spec" known today. The opposite approach is to take all specific "bad things" from known specs and demand that they do not exist in SpecGL-compliant specs, generalizing where possible. In theory, both approaches converge. In practice, it is often much more difficult to remove something from a draft (even if it is redundant) than to add. Thus, I recommend starting with general provisions and justifying every non-general provision such as "modules". > I think that we currently suffer at two levels, and SpecGL can help > us in at least one of those levels. Those of us trying to write > vendor- neutral conformance tests (my full-time job) suffer when the > spec allows so much variability that there is little or no common > ground across all conformant implementations. But we also suffer if > we try to create an adaptable test suite, or to write > vendor-specific tests that match the vendor's choices, because it is > hard (and potentially subjective) to derive all the variability > permitted by a typical W3C Rec of today. For example, if an > implementer is allowed to implement one or more of four independent > (parallel) modules, we can have an adaptable test suite that tests > each module independently only if all parties agree on what the > modules are. Thus, the identification of the modules is just as much > a requirement on the specs as any other substantive requirements on > behavior. Explicitly defining the modules as (magic word) "modules" > sets conformance expectations at a level that enhances the ability > of independent testing labs to conduct their own test and achieve > consistent results. The specs can and should embody techniques that > will ward off "we conform"/"no you don't" arguments by vendors and > frustrated users. Please note that this benefit (someone other than > the vendor can test whether the implementation conforms) leads to > the benefit of interoperability, but it's separate. Making choice C > above addresses interoperability. You have outlined a real problem. You have proposed a solution (require that something is labeled as a "module" in the spec). I do not believe your solution is general enough to be in SpecGL. SpecGL should require that "independent testing labs [should be able] to conduct their own test and achieve consistent results". Such a requirement can probably be expressed using general terms/rules. Whether to label a part of a spec as a "module", should be left to spec authors to decide. > I think we all agree that the SpecGL should define a complete boundary > between conforming and non-conforming implementations. I think a spec > should be able to express requirements of the form "If you choose to > implement X, you must implement it this way." This means that there is > such a thing as constrained discretion, but it also means there is > variability among implementations. QAWG will facilitate the creation of > vendor-neutral test suites and will have to deal with constrained > discretion. To maximize the benefits of open systems, the test suites > and specs should facilitate testing by neutral third parties. Agreed. > Hence there is a need for clear delineation of variability > techniques in use: modules implemented or not What if a spec does not use anything that meets a "module" definition? For example, I cannot think of many good "modules" within HTTP. > which choice on discretionary choices, That's an implementation choice, not related to spec, I guess. Spec authors should have the right to have "discretionary choices" in the spec, as long as discretional behavior is documented. > deprecated items accepted (under their old meaning) or causing an > error, and so forth. This should be a part of the spec, but is not related to modules. > It is right and proper for the SpecGL to impose formalisms on the WG > writing the spec, so that multiple implementations can be tested by > an independent lab despite the vendors taking advantage of allowable > variability. Agreed. It is not right, IMO, to impose formalism that is not general enough. > I suppose that any given test case in a suite can be characterized > as applicable to implementations only if certain variability > criteria are met. Example: this test only applies to Xblah consumers > that implement the audio module, at Level 2, accept deprecated > content from Version 3.0 and higher, chose to ignore (rather than > error on) negative values of the foo parameter, and have splatness > set on. This test can be a valid conformance test if a particular > outcome is required under those conditions. But if the spec doesn't > "package" the variability using the DoV techniques or something like > them, the test suite would be very chaotic. > SpecGL can save us from this chaos. Perhaps, but "modules" cannot. I can rephrase the above using "modules" terminology without any material change to the testability of a spec. SpecGL should address a general problem (excessive variability), if possible, and should not propose a specific one-size-fits-all solution (call it a module!). > Notice however, the necessity that the test writers know whether *or > not* each DoV might be used. Saying explicitly "there are no > modules" is better than saying nothing about modules and leaving the > reader to guess. If the spec in question is SpecGL-compliant, then it does not have modules if modules are not specifically introduced/defined. And vice-versa, if the spec is SpecGL-compliant and uses modules, then they must be specifically introduced/defined. This goes from general rules/requirements, not specific to DoV. Alex. -- | HTTP performance - Web Polygraph benchmark www.measurement-factory.com | HTTP compliance+ - Co-Advisor test suite | all of the above - PolyBox appliance
Received on Monday, 7 October 2002 17:23:14 UTC