Roadmap
A tentative roadmap for Gallio and MbUnit v3.
This page describes a tendative roadmap for Gallio releases. The information
presented here is of course subject to change.
Because MbUnit v3 is Gallio's first consumer, it is also represented here in
this roadmap. At least for now, Gallio and MbUnit v3 releases will therefore
coincide. This situation will change as more third party members are brought
on-board (at which point we shall update the roadmap to reflect their
contributions).
The Road from Alpha to Final
The Alpha releases represent an incremental built-out of the core Gallio
functions and features. Since Gallio is intended to be an open platform, our
intention is to get several third party contributors on board during the Alpha
phase to provide guidance and feedback related to these core services.
Alpha 1: Dogfood
Gallio Goals
- Achieve dogfood quality.
- Setup all necessary development infrastructure.
- First draft of the test object model.
- First draft of the test harness.
- First draft of plug-in extensibility architecture.
- Support rich execution logs.
- Standalone and VS 2005 integrated help documentation.
- Generate HTML, XHTML, XML and plain text reports.
- Deliver Gallio.Echo command line runner.
- Deliver Gallio.MSBuildTasks build tasks.
- Deliver Gallio.NAntTasks build tasks.
- Deliver Gallio.TDNetRunner extension for TestDriven.Net.
- Produce and distribute an installer.
- Write public design documentation.
- Begin the Gallio community process.
- Include plugins for MbUnit v3, MbUnit v2, NUnit, and xUnit.Net.
MbUnit v3 Goals
- Achieve dogfood quality.
- Deliver basic MbUnit v3 stories.
- Recycle MbUnit v2.4 Assert classes mostly unchanged.
- Supported fixture types: TestFixture.
- Supported test types: Test, RowTest.
- Mostly proof-of-concept.
Community Goals
- Get more people involved.
Alpha 2: Iterate
Gallio Goals
- Review the design thus far.
- Deliver Gallio.Icarus GUI test runner, first release.
- Deliver Gallio.ReSharperRunner extension for ReSharper.
- Deliver Gallio commandlet for use in PowerShell.
- Support tests written using DLR-based languages. eg. Can load tests declared in
files in addition to those declared in assemblies.
- Define plug-in extension points for the loader.
- Define a common test project file format that can be produced by the GUI and
used by all other runners.
- Enhance the quality of reports. eg. Add rich DHTML based reporting features.
- Create a new Gallio.Constraints library that defines predicates that can be used
in constraint-based assertions. This library may be used independently from the
rest of Gallio.
- Flesh out the data conversion and formatting services.
- Support passing in test parameters from the command-line.
MbUnit v3 Goals
- Rewrite Assert classes to use common constraints.
- Completely redesign the XmlAssert feature using common constraints.
- Provide constraint-based assertions.
- Simplify the extensibility story.
- Provide data-driven testing features with common data sources such as in-line,
XML, CSV and SQL.
Community Goals
- Get more people involved.
- Support NBehave.
- Try to get NUnit v3 on board with Gallio.
- Build a Gallio community web site:
- Documentation.
- Articles.
- Blog links.
- Community project showcase.
- Download links.
- Continuous integration build status.
- etc...
Alpha 3: Refine
Gallio Goals
- Build multiple editions to support .Net 2.0, 3.0 and 3.5.
- Provide constraints based on .Net 3.5 lambdas and expression trees.
- Create a new Gallio.Generator library for test data generation.
- Performance monitoring features.
- Gallio.Icarus plug-in model for the GUI.
- MSTest plugin.
MbUnit v3 Goals
- Mixins.
- Multi-agent tests.
- Model-based tests.
- Advanced data-driven test features.
- Solidify migration path for MbUnit v2.4 users. Ensure all features ported or
omitted and documented.
- Lightweight bolt-on integration features:
- WatiN (mixin to setup/teardown IE browser and capture screenshots and log
output)
- Selenium (mixin to setup/teardown Selenium state)
- Rhino.Mocks (mixin to setup/teardown MockRepository and auto-VerifyAll())
- ASP.Net hosted test environment.
- Database testing libraries.
- etc...
Community Goals
- Get more people involved.
- Provide a migration path for ZaneBug users, if applicable.
Beta: Go! Go! Go!
Universal Goals
- API freeze.
- Increate test coverage.
- Bug bash.
- Apply code analysis tools.
- Implement at most a few minor features.
- Documentation review.
- Spit & polish.
Community Goals
- Solicit feedback and respond.
- Engineer a solid beta release to coincide with a significant developer
conference or other event.
Final
The current plan for Final release is to produce RC1, RC2 and RTM iterations
over a span of a few weeks. By this time, the Gallio platform itself should be
quite stable. While new features will be added, they will largely be low-risk
ones at the periphery. Potentially destabilizing changes will be set aside in a
fresh branch for the next release.
Gallio Goals
- Mono compatibility.
- Implement new low-risk features.
- Review installer to enable incremental distribution of Gallio components and
plug-ins. That is, distribution of Gallio plug-ins (such as MbUnit) should
become decoupled so that they may evolve at different rates.
- Improve tools integration where possible.
MbUnit Goals
- More advanced features.
- Make changes based on beta feedback.
- Produce a solid MbUnit v2.4 to v3 migration guide.
- Get started on an MbUnit v3 book.
Community Goals
- Provide a Gallio bundle including popular community contributions.
- Write more tutorials, samples, and other support materials.
- Engage in promotional activities.
Beyond Final
It's impossible to say with any certainty what will happen after the Final
release. Still...
- We will continue to grow the community.
- We will continue to build useful and innovative features for a wide range of
needs.
- We will continue to pursue excellence.