Tuesday, February 27, 2007

Unit Testing Web apps

NUnitASP - http://nunitasp.sourceforge.net/
Pros: C# class library for downloading and parsing web pages. Very CSharpy.
Cons: Nothing has happened with this since November 2004. Have to extend it constantly for more complex controls. Thinks about things in a Control way.


SAMIE -
http://samie.sourceforge.net/
Pros: Uses Perl to drive IE around using it's OLE automation interface. Keeps logs, can fill with data from databases, and there's a
cheesy but functional WinForms app to help write the scripting language.
Cons: Uses Perl. LOL.


HttpUnit -
http://httpunit.sourceforge.net/
Pros: Feels good to the Java folks, integrates with JUnit, lower level focused.
Cons: May not be actively developed, no activity since October 2004.


IEUnit -
http://ieunit.sourceforge.net/
Pros: Almost zero installation footprint. Javascript based engine uses the language we were all born knowing. Rich debugging because you can use the Windows Script Debugger. Fairly simple in design. Actively developed. Nice WinForms script helper. Good if you already dig the DOM.
Cons: Slightly cheesy handling of model dialogs. Steals focus while running tests.


Selenium -
http://selenium.thoughtworks.com/
Pros: Good for testing cross browser compatibility. Actively worked on. Selenium tests can be expanded to use other languages.
Cons: Uses a
Fit-like HTML as it's source code. This takes a mind shift and freaks out some folks. Server-side component required.

Watir - http://wtr.rubyforge.org/
Watir (Pronounced "Water") Web Application Testing in Ruby - http://wtr.rubyforge.org/
Pros: Actively being worked on. Uses Ruby, the language du jour. Can run tests asychronously. Simple, elegant, fast. Ruby's interactive shell makes it easy to develop tests (more on this later in this post). Great support for client side things like script events, and even mouse rollovers.
Cons: Haven't found any yet, but I'm sure they are out there. Very focused on the DOM.

Wednesday, January 03, 2007

Software Configuration Management(SCM)

The Purpose/goals of SCM are generally:

  • Configuration Identification- What code are we working with?
  • Configuration Control- Controlling the release of a product and its changes.
  • Status Accounting- Recording and reporting the status of components.
  • Review- Ensuring completeness and consistency among components.
  • Build Management- Managing the process and tools used for builds.
  • Process Management- Ensuring adherence to the organization's development process.
  • Environment Management- Managing the software and hardware that host our system.
  • Teamwork- Facilitate team interactions related to the process.
  • Defect Tracking- making sure every defect has traceability back to the source

More at
http://en.wikipedia.org/wiki/Software_configuration_management
http://cs.wwc.edu/~aabyan/435/Configuration.html