| |
|
TOPICS |
JV260: Java Open Source Testing Tools Complete (3 days) |
|
Common |
Single-Tier |
Multi-Tier Non-Web |
Multi-Tier Web |
| |
JV261: Unit Testing with Java (1 day) |
|
Common |
Single-Tier |
|
|
| |
JV262: Testing Java EE Systems (2 days) |
|
Common |
|
Multi-Tier Non-Web |
Multi-Tier Web |
| |
JV263: Testing Web Applications (1 day) |
|
Common |
|
|
Multi-Tier Web |
Course Overview
Over the last few years, open source testing tools have become more important to
both developers and testers alike:
-
For developers ... Unit testing has become central to the way many developers write software,
thanks largely to a lightweight programming methodology called eXtreme Programming (XP).
This methodology requires that developers write unit tests for every function they add,
and subsequently maintain those tests. A maintained suite of unit tests captures the system
design in a practical form, provides the best form of documentation for the system classes,
determines when each part of the system is complete, gives developers confidence in their code
and provides a basis for refactoring without introducing errors.
-
For testers ... Budgets for expensive testing packages have been shrinking due to
the business driver for IT to provide more value for money. In addition, tools which are foreign
to developers sometimes hinder testing team acceptance by developers. Also, given the rapid
change of technology, proprietary tools do not or are slow to support testing of the
latest emerging technologies. Properietary tools also don't always focus on testing the
open source technologies being used by more and more developers.
These courses outline the available open source tools for testing traditional,
web-oriented and component-oriented Java SE and EE applications.
The topics related to testing Web Applications are applicable to .Net, PHP
and other systems as well as Java-based web application servers and Java EE systems.
Audience
Software Developers, Testers, Designers, Technical Managers and Architects
interested in testing Java SE and EE applications and web applications using any
underlying technology.
Pre-requisites
Students should have previous programming experience (Java preferred) to understand the programming examples.
A working knowledge of Servlets, JSPs and Tab Libraries is required
for complete understanding of the Multi-Tier Web examples.
A basic knowledge of distributed computing (RMI, CORBA and/or Java EE) and a working knowledge of EJBs is
required for complete understanding of the Multi-Tier Non-Web examples and labs.
Course Objectives
After completing this course, participants will be able to:
- Write test suites which unit test or test the functionality of their applications
- Understand how testing fits into development paradigms such as eXtreme Programming (XP)
- Use open source testing tools such as JUnit, HTTPUnit, WebTest and more ...
Course Content - Common Topics
- Testing Concepts: Brief Review (if required)
- Testing Infrastructure: Helpful tools including Ant (if required)
Course Content - Single-Tier Topics (JV260, JV261)
- Unit Testing with JUnit:
- TestCase blueprint
- Test runners and test lifecycle
- Test organisation
- Handling Exceptions
- Test reporting
- Comparison with NUnit, TestNG, SuiteRunner, Jetif
- Performance testing with JUnitPerf
- Mock Objects: EasyMock, JMock, DynaMock, MockCreator, Mockrunner, Mocquer
- Code Hygiene (Style and Metrics): CheckStyle, PMD, FindBugs, JCSC, Simian, JDepend, JavaNCSS
- Specialist Unit Testing: NoUnit, Jester, XmlUnit, JUnitScenario, PropertyTable, jTestCase
- Coverage: JCoverage, Emma, Cobertura, Clover
Course Content - Multi-Tier Non-Web Topics (JV260, JV262)
- Distributed Unit Testing: JUnit EE, Cactus
- Database Testing: SqlUnit, DbUnit, P6Spy, Sql Profiler
- Mock Objects Revisited: Mocking EJBs, JMS, etc.
- Style and Metrics Revisited: Java EE specifics
- Coverage Revisited: coverage for Java EE applications
- Client Functional Testing: Abbot, Jemmy
- Performance Testing: JMeter, HPjmeter
Course Content - Multi-Tier Web Topics (JV260, JV262, JV263)*
- Programmatic Testing of Web Applications with HTTPUnit:
- Installation
- Verifying page content
- Following links
- Tables
- Forms
- DOM testing
- Cookies
- Headers
- SSL
- Declarative Testing of Web Applications with WebTest:
- Configuration
- Buttons
- Forms
- Links
- Structuring and grouping test Steps
- XPath
- Testing JavaScript
- Scripting Tests
- HTTP Cookies
- HTTP Headers
- PDFs
- XML
- SSL
- Custom Steps
- Click-O-Mat recorder
- Data-driven tests
- Other Web Testing Tools: jWebUnit, HtmlUnit, ITP, MaxQ, Jameleon, xhtmlunit
- Database-driven Website Testing: SqlUnit (if required)
- Testing Web Components: TagUnit, StrutsTestCase
- Mock Objects Revisited: Mocking Web Components
- Style and Metrics Revisited: web specifics
- Coverage Revisited: coverage for Web Applications
- Performance Testing Revisited: Grinder, WAS
* Applicable to .Net, PHP and Java EE systems (and other dynamic web content systems such as content management systems)
|