SSE Test Plan

Status of this Plan

Proposed Plan (6.27.05)

Overall goals

New for M5

Not much has been added in terms of new functionality for M5. Most of the work done was in the areas of refactoring, cleaning up dead code, and cleaning up APIs. Also more unit tests were added which are run regularly with the build.

Co-developer Testing

We will inspect "runtime" version of build to be sure extra source is not included, and more important, we'll inspect and test importing SDK version to be sure all relevant "open source" is included in that SDK build and that it correctly imports into a development environment.

API Testing

Here in M5 we don't consider we have any official API yet (since not spec'd as such) but will reserve this space for future plans to details were API Unit tests are, their coverage, etc.

We do have several hundred unit tests which we expect to be running and passing for M5, which test various aspects of parsing, model creation, and correct charset handling, among other things.

End User Testing

The nature of the end-user testing is intentionally planned to be "ad hoc" instead of specifying step by step "how to" directions and specific "expected results" sections often seen in test cases. This is done because its felt leads to greater number of "paths" being tested, and allows end-users more motivation for logging "bugs" if things didn't work as they expected, even if it is working as designed.

As we progress through milestones, we'll add more and more detail for special cases, special files, special projects, etc.When we do have special or sample test files and projects, we will keep those stored in CVS, as projects under a testdata directory under the development directory of relevant component so that testers (from immediate team, or community) can easily check out into the environment being tested.

Platform Testing

While we do not have any platform specific code, or function, we will have some team members do end-user tests on Linux, some on Windows. We will also confirm unit tests pass on both platforms.

Performance Testing

We have added (some) automated performance tests along the lines of the Eclipse base performance unit tests in future milestones. These are currently in the org.eclipse.wst.*.ui.tests.performance and org.eclipse.jst.jsp.ui.tests.performance plugins.

We will continue to add more test cases in upcoming milestones.

Common Eclipse Source Editing Features

The following table represents the features for our various source editors that will play a role in our testing, according to the following legend.

Source Editing Feature Matrix
XML JSP HTML XHTML CSS DTD JavaScript JSP EL
Highlighting Y Y Y Y Y Y Y P
Semantic Highlighting N N N N N N N N
Content Assist Y Y Y Y Y N Y Y
Parameter/Attribute Hints Y Y Y Y N N N N
Document/Element Formatting Y Y Y Y Y N N N
Structured Selection Y Y Y Y Y N N N
Hover Info Y Y Y Y N N N P
Smart Edit Y Y Y Y Y N N Y
Open On (hyperlinks) Y Y Y Y Y N N N
Mark Occurrences P P P P N N N N
Linked Edit Y Y Y Y N N N Y
Find Element Occurrences Y Y Y Y N N N Y
Validate as-you-type Y Y Y Y N N N Y
Delimiter Highlighting (bracket matching) Y Y Y Y Y Y Y P
Refactoring N Y P P N N N Y
Search Participant P Y P P P N N Y
Quick Fix/Assist Y Y Y Y N N N P
Property Sheet Y Y Y Y Y N N N
Outline View Y Y Y Y Y Y Y N
Folding P P P P N N N N
Annotation Navigation (go to next annotation) Y Y Y Y Y Y Y Y
External Files Y Y Y Y Y Y Y Y
Toggle Comment Y Y Y Y N N N Y
Quick Type Hierarchy View N N N N N N N N
Quick Outline N N N N N N N N
Task Tags in Source Comments P P P P P P N N

Snippets View

A quick test of the Snippets View will be done, to be sure you can drop text, its inserted at right points, etc. and that users can define their own. There are many changes planned in this area, though, so we will test just enough to make sure it basically works, and does no harm (note: user defined ones in this milestone will most likely not be upwardly compatible with the next milestone).

Source Editing Test Plans

org.eclipse.wst.sse
org.eclipse.wst.xml
org.eclipse.wst.html
org.eclipse.wst.css
org.eclipse.wst.dtd
org.eclipse.wst.javascript
org.eclipse.jst.jsp