************************************************************************************************************
 TABLE OF CONTENTS:
************************************************************************************************************
A. DEVELOPERS (users of ESWAT)
B. TESTERS (users of ESWAT)
C. CONTRIBUTING DEVELOPERS (developers of ESWAT)
D. PENDING ENHANCEMENTS
E. COMPLETED ENHANCEMENTS

------------------------------------------------------------------------------------------------------------
 A. DEVELOPERS (users of ESWAT)
------------------------------------------------------------------------------------------------------------

Option 1: NuGet package

1. Open NuGet

2. Download and install ESWAT to your project

3. Develop one or more classes that expose your application and/or components ("system under test") by
	implementing the interface "eswat.ISystemUnderTest" and then adding the methods and properties that 
	you would like the testers to be able to write their test script(s) against.

	*In the future, you will also be able to write your own test context implementations to provide 
	customized utility methods and properties for your testers.

Option 2: Manual referencing

1. Download the ESWAT binaries from http://eswat.codeplex.com/

2. Add the ESWAT assembly reference to your project.

3. Develop one or more classes that expose your application and/or components ("system under test") by
	implementing the interface "eswat.ISystemUnderTest" and then adding the methods and properties that 
	you would like the testers to be able to write their test script(s) against.

	*In the future, you will also be able to write your own test context implementations to provide 
	customized utility methods and properties for your testers.

------------------------------------------------------------------------------------------------------------
 B. TESTERS (users of ESWAT)
------------------------------------------------------------------------------------------------------------

1. Contact your development team about exposing the system under test to you in a format that ESWAT 
	understands.

2. Ask the development team to provide documentation regarding how you may interact with the system 
	under test (i.e. "What methods may I call with what parameters and what properties may I set the 
	values of and/or retrieve values from?", "What are the types of these method parameters and 
	properties?", and "Are there additional 'helper' methods and properties I may use?").

3. Refer to the ESWAT examples for writing and running your test scripts in the desired language 
	(e.g. Razor, PowerShell, etc.)

	*In the future, you will be able to refer to generic test frameworks for website testing and 
	Windows application testing. These frameworks will not require application-specific 
	implementations. However, as a result, you may discover that specific test scenarios require 
	an application-specific implementation of the ESWAT framework.

------------------------------------------------------------------------------------------------------------
 C. CONTRIBUTING DEVELOPERS (developers of ESWAT)
------------------------------------------------------------------------------------------------------------

1. Download the source code from http://eswat.codeplex.com

2. Install helpful tools
	*These tools are not required to build ESWAT, but are necessary to contribute to the tests and to push 
	updates to the source control server.

	a. Mercurial source control and TortoiseHg
		(a bundled installer for Windows 64-bit computers is included in the "tools" directory)
		http://mercurial.selenic.com/downloads/

	b. NUnit
		(an installer for Windows computers is included in the "tools" directory)
		http://www.nunit.org/index.php?p=download

	c. TestDriven.net
		http://www.testdriven.net/download_release.aspx?LicenceType=Personal

3. Contact me(/us?) for how to help at http://eswat.codeplex.com


------------------------------------------------------------------------------------------------------------
 D. PENDING ENHANCEMENTS
------------------------------------------------------------------------------------------------------------

- Enhance Razor Quick Start and Project Silk web functional testing

- More Web Quick Starts
	* IronPython
	* IronRuby
	* PowerShell

- More Unit tests :P

- Abort test run:
	* abort a related set of tests
	* abort all test scripts in a directory

- Code refactoring

- Support hierarchy of test dependencies
	(i.e. 1) run all tests in root folder in order of name, 2) run all tests in sub-directories 
	      in order of name, 3) run sub-sub-directory tests, etc.)

- Abstract file disk IO for reading test scripts/templates.

- Implement a generic test context for White for generalized Windows application testing.

- Windows Quick Starts

- Interface for ESWAT testing.
	a) Coding Razor test scripts in an MVC project. *Would need to override intellisense somehow.
	b) PowerShell IDE works fine for ".ps1" scripts.
	c) Test runner GUI like "NUnit" for executing tests and visualizing the results.
	d) Visual Studio test runner integration like "TestDriven.net".

- Razor Test results output formatter

- Consider automated tests w/ external data sources.
	a) tester is manually executing a test script and wants to provide ad-hoc test input.
	b) test scripts are run remotely on a server w/o any user interaction.

- BDD/DDD sample test runner? (custom context for parsing? hmm...)
	*need to avoid overlap w/ existing unit test framework capabilities 
	and focus on acceptance test scripting (unless it makes sense to do so)

- ??? other fun stuff...


------------------------------------------------------------------------------------------------------------  E. COMPLETED ENHANCEMENTS ------------------------------------------------------------------------------------------------------------

2011-09-08 ecas
	- Razor Quick Start w/ Web automation using MS Project Silk
	- Made declaring a system under test optional. Without it, it will use the "EmptySystemUnderTest".
	  This is especially useful when the tester is only testing web or windows applications that do not 
	  require application-specific behavior that the web or windows test context does not already provide.
	- Automated release build scripts
	- Some Unit Tests
	- Fail gracefully (*failures result in a TestResult w/ exceptions)
	- Abort test run (abort a test script file)
	- Added NUnit test result output formatter to console test runner
	- Added generic test result file writer

2011-09-07 ecas
	- Update the IronRuby test runner to support configuration-based context definition
	- Update the IronPython test runner to support configuration-based context definition
	- Abstract configuration elements from each runner into a configuration source
	- Implement a generic test context for Selenium Web Driver for generalized website testing.
	- Added a Web Driver test context and verifier for all languages
	- Added a Web Driver template for Razor-only
	- Added a test project for Web Driver testing using Razor and PowerShell
	- Updated the Razor test runner to support configuration-based template definition
	- Updated the PowerShell test runner to support configuration-based context definition
	- Created output build directories for future automated release scripts

2011-09-05 ecas
	- Command line application for running tests against a folder
	- Additional assertions in the IVerify contract along with the out-of-the-box implementation.
		(AreEqual, AreNotEqual, IsNotNull, IsNull, IsTrue, IsFalse)

2011-09-03 ecas
	- Abandoning IronJS test runner.
		1) author recommended NOT to use this framework on a Hanselminutes interview
		2) got a script to run successfully, but the setup signatures look very different than 
			IronRuby/IronPython and global vars seem not to update back to the calling C# code.
		3) probably can get it all to work, but WAY low on the priority list for now...

2011-09-02 ecas
	- Initial test runner and test result interface contracts.
	- Folder test runner.
		Like: http://fitnesse.org/FitNesse.UserGuide.FitLibraryUserGuide.FolderRunner
	- Razor test runner.
		http://razorengine.codeplex.com/
	- PowerShell test runner.
		http://www.codeproject.com/KB/cs/HowToRunPowerShell.aspx
	- IronPython test runner.
		http://www.ironpython.net/
		See DLR spec: http://dlr.codeplex.com/wikipage?title=Docs%20and%20specs&referringTitle=Home&ProjectName=dlr
	- IronRuby test runner.
		http://ironruby.net/
		See DLR spec: http://dlr.codeplex.com/wikipage?title=Docs%20and%20specs&referringTitle=Home&ProjectName=dlr
	- Started IronJS test runner.
		https://github.com/fholm/IronJS
		http://ironjs.wordpress.com/

Last edited Sep 9, 2011 at 4:04 PM by iseric, version 6

Comments

No comments yet.