JBossCache 2.x Code Coverage Analysis
Code coverage analysis is applied to HEAD CVS branch.
Release 2.0 BETA2 Report
performed on Mar. 15, 2007
Command Line executed
sh build.sh with.clover all-functionaltests to generate clover instrumentation on all functional tests and source files for JBossCache and PojoCache, see Build_allfunctionaltests_20beta2.log
Note: 14 tests failed during this run (examine the attached log for details). Those failures have been reflected in the Gap analysis is affected below.
sh build.sh clover.pdf to produce clover report in pdf format
sh build.sh clover.html to produce clover report in html format
sh build.sh clover.log to produce clover log summary
Clover Generated Coverage Report
PDF format Jbc_20_beta2_report_coverage.pdf
HTML format (HTML format is not supported on the wiki therefore the results are attached as .zip file) Jbc_20_beta2_report_coverage_html.zip
clover statistics log
clover.log:
clover-log Loaded results from 742 coverage recordings.
clover-log Clover Coverage Report
clover-log Coverage Timestamp: Thu Mar 15 11:52:15 EDT 2007
clover-log Coverage Overview -
clover-log Methods: 5650/7236 (78.1%)
clover-log Statements: 40235/48273 (83.3%)
clover-log Conditionals: 5680/9456 (60.1%)
clover-log TOTAL: 79.4%
Gap Analysis
Assumptions:
Any testcase reports less than 90% coverage is examined for actions
Any examined test case that's not reported below means the gap in the coverage is ignored due to:
being too simple
false poistive reporting by Clover
Any test method named Xtest... is considered not active and not reported here.
Any failed test case is report in the Gap analysis.
General Observations:
Weak negative testing which means exception cases are not tested.
Test Suite coverage quality analysis
Package | Test Case | Observation | Analysis Remarks | Action | |
---|---|---|---|---|---|
org.jboss.cache.pojo.event | Test | modify event test was never executed? | Please improve this test | ||
org.jboss.cache.replicated | SyncCacheListenerTest | nodeRemoved() event notification method was never executed | Please improve this test | ||
org.jboss.cache.buddyreplication | BuddyBackupActivationInactivationTest | createCache() was never executed | needs improvement | ||
org.jboss.cache.passivation | PassivationActivationCallbacksTestCase | Reports 0 coverage although there were no failing tests?? | Investigate | ||
org.jboss.cache.marshall | AsyncReplTest | Poor conditional test | Please improve test case | ||
org.jboss.cache.loader | InterceptorSynchronizationTest | Poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | DataSourceIntegrationTest | Poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | RpcDelegatingCacheLoaderTests | Poor coverage | Please improve test coverage | ||
org.jboss.cache.lock | ReentrantWriterPreferenceReadWriteLockTest | acquireReadAndWriteLocks(), acquireWriteThenReadLock were never executed | Please improve test coverage | ||
org.jboss.cache.lock | ReentrantWriterPreference2Readers1WriterLockTest | some tests failed | Please improve test coverage | ||
org.jboss.cache.multiplexer | SyncReplTxTest | 0 coverage | Please provide coverage | ||
org.jboss.cache.multiplexer | AsyncReplTest | 0 coverage | Please provide coverage | ||
org.jboss.cache.pojo.optimistic | AbstractOptimisticTestCase | most of the methods were never exercised by subclasses | Please revisit this test and its subclasses |
Source Code exercised by testing quality analysis
Package | Class | Observation | Analysis Remarks | Action | |
---|---|---|---|---|---|
org.jboss.cache.optimistic | WorkspaceNodeImpl | poor test coverage. Lots of its methods never exercised | Please improve test coverage | ||
org.jboss.cache.notifications | CacheListenerEvent | poor test coverage | Please improve test coverage | ||
org.jboss.cache.notifications | Notifier | Only "sendImmediate = true " notification was tested across all events | Please improve test coverage | ||
org.jboss.cache.buddyreplication | NextMemberBuddyLocatorConfig | getBuddyLocatorClass() was never tested | |||
org.jboss.cache.buddyreplication | BuddyManager | Conditional testing is poor | Please improve test coverage | ||
org.jboss.cache.buddyreplication | BuddyGroup | getLastModified() was never tested | Please improve test coverage | ||
org.jboss.cache.pojo.observable | SubjectInterceptor | invoke(Invocation) conditional test is inefficient | Please test for true condition | ||
org.jboss.cache.eviction | EvictionQueueList | toNodeEntryArray(), EvictionListComparator(),.. have no test coverage | Please improve test case | ||
org.jboss.cache.eviction | EvictionTimerTask | removeRegionToProcess(Region) was never tested | Please improve test coverage | ||
org.jboss.cache.eviction | LRUQueue | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.eviction | BaseEvictionAlgorithm | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.statetransfer | StateTransferManager | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.pojo.collection | CachedListAbstract | addAll(int index, Collection c) was never tested | Please improve test coverage | ||
org.jboss.cache.pojo.collection | CachedMapImpl | Poor coverage | Please improve test coverage | ||
org.jboss.cache.pojo.collection | CachedListImpl | Poor coverage | Please improve test coverage | ||
org.jboss.cache.pojo.collection | CollectionInterceptorUtil | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.factories | XmlConfigurationParser | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.marshall | CacheMarshaller200 | Insufficient conditional coverage | Please improve test coverage | ||
org.jboss.cache.marshall | JavaObjectStreamFactory | createObjectInputStream(InputStream) was never tested | Please improve test coverage | ||
org.jboss.cache.marshall | SelectedClassnameClassLoader | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.marshall | AbstractMarshaller | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.marshall | InactiveRegionAwareRpcDispatcher | Poor conditional coverage | Please improve test coverage | ||
org.jboss.cache.marshall | MarshallUtil | 0 coverage | Please add test coverage | ||
org.jboss.cache.transaction | AsyncRollbackTransactionManager | resume(), suspend never tested | Please improve test coverage | ||
org.jboss.cache.pojo | PojoTreeCache | some of the methods were never tested | Please improve test coverage | ||
org.jboss.cache.loader | AbstractCacheLoader | put(List<Modification>) case PUT_DATA_ERASE was never exercised | Please improve test coverage | ||
org.jboss.cache.loader | DelegatingCacheLoader | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | AdjListJDBCCacheLoader | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | AdjListJDBCCacheLoaderConfig | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | ClusteredCacheLoader | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | AbstractDelegatingCacheLoader | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | SingletonStoreCacheLoader | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | TcpDelegatingCacheLoaderConfig | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | AsynchCacheLoaderConfig | poor method coverage | Please improve test coverage | ||
org.jboss.cache.loader | JDBCCacheLoaderOld | poor coverage | Assuming this will be removed in the near future, ignore | ||
org.jboss.cache.loader | TransformingJDBCCacheLoader | 0 coverage | Please provide coverage | ||
org.jboss.cache.loader | TransformingFileCacheLoader | 0 coverage | Please provide coverage | ||
org.jboss.cache.loader | RpcDelegatingCacheLoaderConfig | 0 coverage | Please provide coverage | ||
org.jboss.cache.loader | RpcDelegatingCacheLoader | 0 coverage | Please provide coverage | ||
org.jboss.cache.loader | RmiDelegatingCacheLoaderConfig | 0 coverage | Please provide coverage | ||
org.jboss.cache.loader | RmiDelegatingCacheLoader | 0 coverage | Please provide coverage | ||
org.jboss.cache.interceptors | CacheStoreInterceptor | convertMethodCallToModification(MethodCall needs better coverage | Please improve method coverage | ||
org.jboss.cache.interceptors | ActivationInterceptor | poor coverage | Please improve coverage | ||
org.jboss.cache.interceptors | CreateIfNotExistsInterceptor | 0 coverage | Please provide coverage | ||
org.jboss.cache.lock | ThreadLocalMap | poor method coverage | Please improve test coverage | ||
org.jboss.cache.lock | SemaphoreLock | poor method coverage | Please improve test coverage | ||
org.jboss.cache.lock | LockUtil | poor method coverage | Please improve test coverage | ||
org.jboss.cache.lock | SimpleLock | poor method coverage | Please improve test coverage | ||
org.jboss.cache.pojo.interceptors | StaticFieldIntercept | 0 coverage | Please provide coverage | ||
org.jboss.cache.pojo.interceptors | PojoEventInterceptor | 0 coverage | Please provide coverage | ||
org.jboss.cache.util | ExposedByteArrayOutputStream | it's not well tested | Please improve coverage | ||
org.jboss.cache.pojo.impl | ObjectGraphHandler | get(Fqn fqn, Class clazz, PojoInstance pojoInstance) was never exercised | Please provide coverage for this method | ||
org.jboss.cache.pojo.impl | InternalHelper | Poor method coverage | Please provide coverage for this method | ||
org.jboss.cache | ConsoleListener | 0 coverage | Please provide coverage | ||
org.jboss.cache | ReplicationQueue | 0 coverage | Please provide coverage | ||
org.jboss.cache | ShutdownThread | 0 coverage | Please provide coverage | ||
org.jboss.cache | TreeCacheGui | 0 coverage | Please provide coverage | ||
org.jboss.cache | TreeCacheGui2 | 0 coverage | Please provide coverage | ||
org.jboss.cache | TreeCacheView | 0 coverage | Please provide coverage | ||
org.jboss.cache | TreeCacheView2 | 0 coverage | Please provide coverage | ||
org.jboss.cache | RegionManager | Poor conditional coverage | Please improve coverage | ||
org.jboss.cache.loader.tcp | TcpCacheServer | Poor conditional coverage | Please improve coverage | ||
org.jboss.cache.pojo.util | AopUtil | findCacheInterceptor(InstanceAdvisor advisor, Fqn fqn) was never exercised | Please provide coverage for this method | ||
org.jboss.cache.pojo.util | CacheApiUtil | XgetDataNode(CacheSPI cache, Fqn fqn) was never exercised | Please provide coverage for this method | ||
org.jboss.cache.pojo.util | MethodCall | Poor coverage | Please provide better coverage | ||
org.jboss.cache.pojo.interceptors.dynamic | all classes | insufficient coverage | Please improve coverage | ||
org.jboss.cache.pojo.memory | all classes | insufficient coverage | Please improve coverage | ||
org.jboss.cache.pojo.jmx | all classes | insufficient coverage | Please improve coverage | ||
org.jboss.cache.rpc | all classes | insufficient coverage | Please improve coverage | ||
org.jboss.cache.pojo.factory | all classes | 0 coverage | Please provide coverage | ||
org.jboss.cache.pojo.eviction | all classes | 0 coverage | Please provide coverage | ||
org.jboss.cache.loader.rmi | all classes | 0 coverage | Please provide coverage |
Comments