This a is a case study of a mobile phone operator - the idea being to specify behavior and run tests all by filling in a few forms. A look at the issues of defining and testing a web application - present some approaches, a 2005 case study, some of the tools used. Requirements:
- Underlying business logic needs to be explicit
- Marketing oriented requirements tend to be imprecise - concentrating on user stories, providing few usable test cases. They had to feed the requirements back to marketing for verification
For testing, you cannot rely entirely on vendor testing - you need to test the configuration. The testing in question here is functional testing. To create the test specification:
- specify system behavior, end to end
- highlight boundary conditions and end points
- model the tests while system functionality is still fluid
- tests should be specified before detailed APIs are specified
- maintain traceability between tests and requirements
Some of the tools considered: WebRunner, HttpUnit, HTMLUnit, Homebrew XML based requirements management tools. Various toolsets were considered afterwards - FIT, WATIR (Ruby), Selenium (Javascript), Agitator, Canoo Web Test. These latter tools were unknown to the team when the project was ongoing. They ended up using the homebrew system.
The Problem: A Mobile Internet Content Filter. There was no software available at the time to filter inapproriate content from mobile systems. A definition: "on-net" means on the operator's portal.
The Solution: Interpose a proxy between mobiles and "off net" (i.e., general internet) content. Apply rules to determine whether the content is appropriate. Redirect on failure of that test, allow user to change the settings.
There are a few possible outcomes:
- Access Denied (can change settings to allow)
- Illegal Page (cannot view under any circumstances - some 2000 sites are so classified in the UK)
- Allowed (normal viewing)
The "Denied" category has rules that involve the operator and their classification scheme - these become policy rules. Testing types?
- Automated tests for basic stuff
- User acceptance testing (manual)
The first is the one they needed to deal with. Test cases were based on use cases, requirements, exception conditions. Did not attempt to achieve complete decision coverage, instead using representative test cases. The tools that were developed:
- XMLSpy/Authentic - Schema per data type, stylesheets per data type
- Java - Documentation Generator, batch file to execute from files, FilterTestSuite based on HttpUnit
- Directory Load Scripts - Templates for the data files
And then a demo. The tools they created allow them to store their test cases as XML docs. The test cases are created via an XSchema driven form.