PHPUnit and Software Metrics
The upcoming 3.2 release of PHPUnit adds a couple of software metrics to the data that is stored in PHPUnit's test database. Below is a list of the metrics that are calculated and collected:
- Project Level
- File Level
- Function Level
- Class Level
- Lines of Code (LOC)
- Lines of Executable Code (ELOC)
- Lines of Executed Code
- Code Coverage
- Attribute Inheritance Factor (AIF)
- Attribute Hiding Factor (AHF)
- Class Size (CSZ)
- Class Interface Size (CIS)
- Depth of Inheritance Tree (DIT)
- Method Inheritance Factor (MIF)
- Method Hiding Factor (MHF)
- Number of Children (NOC)
- Number of Interfaces Implemented (IMPL)
- Number of Variables (VARS)
- Number of Non-Private Variables (VARSnp)
- Number of Variables (VARSi)
- Polymorphism Factor (PF)
- Weighted Methods per Class (WMC)
- Weighted Non-Private Methods per Class (WMCnp)
- Weighted Inherited Methods per Class (WMCi)
- Method Level
sb@vmware trunk % sqlite3 /home/sb/ezcWorkflow.db SQLite version 3.3.13 Enter ".help" for instructions sqlite> SELECT code_class.code_class_name AS className, sqlite> code_method.code_method_name AS methodName, sqlite> code_method.code_method_ccn AS complexity sqlite> FROM code_class, code_method sqlite> WHERE code_class.code_class_id = code_method.code_class_id sqlite> ORDER BY complexity desc; className methodName complexity ---------------------------------------- ------------------------- ---------- ezcWorkflowDefinitionStorageXml loadByName 28 ezcWorkflowDefinitionStorageXml save 23 ezcWorkflowDefinitionStorageXml conditionToXml 13 ezcWorkflowDefinitionStorageXml xmlToCondition 13 ezcWorkflow __set 12 ezcWorkflowDefinitionStorageXml xmlToVariable 10 ezcWorkflowDatabaseDefinitionStorage loadById 9 ezcWorkflow __get 8 ezcWorkflow __isset 8 ezcWorkflowNodeArithmeticBase execute 8 ezcWorkflowExecution execute 8 ezcWorkflowVisitorVisualization visit 8 ezcWorkflowDefinitionStorageXml variableToXml 7 ezcWorkflowVisitorVerification visit 7 ezcWorkflowExecution resume 7 ezcWorkflowUtil variableToString 6 ezcWorkflowNodeInput __construct 6 ezcWorkflowNodeConditionalBranch execute 6 ezcWorkflowNodeSubWorkflow execute 6 ezcWorkflowNode verify 5 ezcWorkflowExecution __set 5 ezcWorkflowDatabaseDefinitionStorage save 5 ezcWorkflowDatabaseExecution loadExecution 5 ezcWorkflowVisitorNodeCollector visit 4 ezcWorkflowNodeInput execute 4 ezcWorkflowNodeConditionalBranch getCondition 4 ezcWorkflowNodeAction createObject 4 ezcWorkflowConditionXor evaluate 4 ezcWorkflowExecution activate 4 ezcWorkflowVisitorVisualization __toString 4 ezcWorkflowNode addInNode 3 ezcWorkflowNode removeInNode 3 ezcWorkflowNode addOutNode 3 ezcWorkflowNode removeOutNode 3 ezcWorkflowNode accept 3 ezcWorkflowNode activate 3 ezcWorkflowNode __toString 3 ezcWorkflow __construct 3 ezcWorkflow isInteractive 3 ezcWorkflow hasSubWorkflows 3 ezcWorkflow addVariableHandler 3 ezcWorkflowUtil findObject 3 ezcWorkflowNodeVariableUnset __construct 3 ezcWorkflowNodeMerge prepareActivate 3 ezcWorkflowNodeAction __construct 3 ezcWorkflowNodeAction __toString 3 ezcWorkflowConditionOr evaluate 3 ezcWorkflowConditionBooleanSet __construct 3 ezcWorkflowConditionBooleanSet __toString 3 ezcWorkflowConditionAnd evaluate 3 ezcWorkflowNodeDiscriminator activate 3 ezcWorkflowExecution __get 3 ezcWorkflowExecution __isset 3 ezcWorkflowExecution start 3 ezcWorkflowExecution suspend 3 ezcWorkflowExecution getSubExecution 3 ezcWorkflowExecution saveToVariableHandlers 3 ezcWorkflowDatabaseDefinitionStorage loadByName 3 ezcWorkflowNode setActivationState 2 ezcWorkflow removeVariableHandler 2 ezcWorkflow setVariableHandlers 2 ezcWorkflowDefinitionStorageXml getCurrentVersion 2 ezcWorkflowNodeVariableSet __construct 2 ezcWorkflowNodeVariableSet execute 2 ezcWorkflowNodeVariableSet __toString 2 ezcWorkflowNodeVariableUnset execute 2 ezcWorkflowNodeBranch activateOutgoingNodes 2 ezcWorkflowNodeConditionalBranch verify 2 ezcWorkflowConditionVariable evaluate 2 ezcWorkflowNodeMerge doMerge 2 ezcWorkflowNodeSynchronization activate 2 ezcWorkflowNodeAction execute 2 ezcWorkflowNodeSimpleMerge activate 2 ezcWorkflowExecution addWaitingFor 2 ezcWorkflowExecution endThread 2 ezcWorkflowExecution getNumSiblingThreads 2 ezcWorkflowExecution getParentThreadId 2 ezcWorkflowExecution addListener 2 ezcWorkflowExecution removeListener 2 ezcWorkflowExecution notifyListeners 2 ezcWorkflowExecution getVariable 2 ezcWorkflowExecution setVariables 2 ezcWorkflowExecution unsetVariable 2 ezcWorkflowExecution loadFromVariableHandlers 2 ezcWorkflowExecutionNonInteractive __set 2 ezcWorkflowInvalidInputException __construct 2 ezcWorkflowInvalidInputException __get 2 ezcWorkflowInvalidInputException __set 2 ezcWorkflowInvalidInputException __isset 2 ezcWorkflowDatabaseUtil serialize 2 ezcWorkflowDatabaseUtil unserialize 2 ezcWorkflowDatabaseDefinitionStorage getCurrentVersionNumber 2 ezcWorkflowDatabaseExecution __construct 2 ezcWorkflowDatabaseExecution doSuspend 2 ezcWorkflowNodeStart execute 1 ezcWorkflowNode __construct 1 ezcWorkflowNode getId 1 ezcWorkflowNode setId 1 ezcWorkflowNode getInNodes 1 ezcWorkflowNode getOutNodes 1 ezcWorkflowNode getConfiguration 1 ezcWorkflowNode getState 1 ezcWorkflowNode setState 1 ezcWorkflowNode getActivatedFrom 1 ezcWorkflowNode setActivatedFrom 1 ezcWorkflowNode getThreadId 1 ezcWorkflowNode setThreadId 1 ezcWorkflowNode activateNode 1 ezcWorkflowNode isExecutable 1 ezcWorkflowNode execute 1 ezcWorkflowNode initState 1 ezcWorkflowVisitor visit 1 ezcWorkflow verify 1 ezcWorkflow accept 1 ezcWorkflow getVariableHandlers 1 ezcWorkflowNodeEnd execute 1 ezcWorkflowVisitorNodeCollector __construct 1 ezcWorkflowVisitorNodeCollector getNodes 1 ezcWorkflowDefinitionStorage loadByName 1 ezcWorkflowDefinitionStorage save 1 ezcWorkflowDefinitionStorageXml __construct 1 ezcWorkflowDefinitionStorageXml getFilename 1 ezcWorkflowDefinitionStorageXml getFilesystemWorkflowNam 1 ezcWorkflowVisitable accept 1 ezcWorkflowConditionIsString evaluate 1 ezcWorkflowConditionIsString __toString 1 ezcWorkflowCondition evaluate 1 ezcWorkflowCondition __toString 1 ezcWorkflowNodeVariableUnset __toString 1 ezcWorkflowNodeArithmeticBase __construct 1 ezcWorkflowNodeArithmeticBase doExecute 1 ezcWorkflowNodeConditionalBranch addConditionalOutNode 1 ezcWorkflowConditionComparison __construct 1 ezcWorkflowConditionComparison getValue 1 ezcWorkflowConditionIsLessThan evaluate 1 ezcWorkflowConditionIsLessThan __toString 1 ezcWorkflowConditionVariable __construct 1 ezcWorkflowConditionVariable __toString 1 ezcWorkflowConditionVariable getVariableName 1 ezcWorkflowConditionVariable getCondition 1 ezcWorkflowConditionIsEqual evaluate 1 ezcWorkflowConditionIsEqual __toString 1 ezcWorkflowNodeVariableIncrement doExecute 1 ezcWorkflowNodeVariableIncrement __toString 1 ezcWorkflowConditionIsGreaterThan evaluate 1 ezcWorkflowConditionIsGreaterThan __toString 1 ezcWorkflowNodeVariableDecrement doExecute 1 ezcWorkflowNodeVariableDecrement __toString 1 ezcWorkflowNodeVariableDiv doExecute 1 ezcWorkflowNodeVariableDiv __toString 1 ezcWorkflowNodeVariableMul doExecute 1 ezcWorkflowNodeVariableMul __toString 1 ezcWorkflowNodeVariableAdd doExecute 1 ezcWorkflowNodeVariableAdd __toString 1 ezcWorkflowNodeVariableSub doExecute 1 ezcWorkflowNodeVariableSub __toString 1 ezcWorkflowNodeMerge initState 1 ezcWorkflowNodeParallelSplit execute 1 ezcWorkflowNodeSynchronization execute 1 ezcWorkflowConditionNot __construct 1 ezcWorkflowConditionNot evaluate 1 ezcWorkflowConditionNot getCondition 1 ezcWorkflowConditionNot __toString 1 ezcWorkflowConditionBooleanSet getConditions 1 ezcWorkflowNodeDiscriminator execute 1 ezcWorkflowConditionIsTrue evaluate 1 ezcWorkflowConditionIsTrue __toString 1 ezcWorkflowConditionIsFalse evaluate 1 ezcWorkflowConditionIsFalse __toString 1 ezcWorkflowNodeSimpleMerge execute 1 ezcWorkflowNodeSubWorkflow __construct 1 ezcWorkflowNodeSubWorkflow __toString 1 ezcWorkflowExecution end 1 ezcWorkflowExecution getWaitingFor 1 ezcWorkflowExecution startThread 1 ezcWorkflowExecution getId 1 ezcWorkflowExecution getVariables 1 ezcWorkflowExecution hasVariable 1 ezcWorkflowExecution setVariable 1 ezcWorkflowExecution hasEnded 1 ezcWorkflowExecution isResumed 1 ezcWorkflowExecution isSuspended 1 ezcWorkflowExecution doStart 1 ezcWorkflowExecution doSuspend 1 ezcWorkflowExecution doResume 1 ezcWorkflowExecution doEnd 1 ezcWorkflowExecution doGetSubExecution 1 ezcWorkflowConditionIsBool evaluate 1 ezcWorkflowConditionIsBool __toString 1 ezcWorkflowExecutionNonInteractive doStart 1 ezcWorkflowExecutionNonInteractive doSuspend 1 ezcWorkflowExecutionNonInteractive doResume 1 ezcWorkflowExecutionNonInteractive doEnd 1 ezcWorkflowExecutionNonInteractive doGetSubExecution 1 ezcWorkflowExecutionListener notify 1 ezcWorkflowConditionIsAnything evaluate 1 ezcWorkflowConditionIsAnything __toString 1 ezcWorkflowConditionIsArray evaluate 1 ezcWorkflowConditionIsArray __toString 1 ezcWorkflowConditionIsFloat evaluate 1 ezcWorkflowConditionIsFloat __toString 1 ezcWorkflowConditionIsInteger evaluate 1 ezcWorkflowConditionIsInteger __toString 1 ezcWorkflowConditionIsObject evaluate 1 ezcWorkflowConditionIsObject __toString 1 ezcWorkflowConditionIsNotEqual evaluate 1 ezcWorkflowConditionIsNotEqual __toString 1 ezcWorkflowConditionIsEqualOrGreaterThan evaluate 1 ezcWorkflowConditionIsEqualOrGreaterThan __toString 1 ezcWorkflowConditionIsEqualOrLessThan evaluate 1 ezcWorkflowConditionIsEqualOrLessThan __toString 1 ezcWorkflowDatabaseDefinitionStorage __construct 1 ezcWorkflowDatabaseExecution doStart 1 ezcWorkflowDatabaseExecution doResume 1 ezcWorkflowDatabaseExecution doEnd 1 ezcWorkflowDatabaseExecution doGetSubExecution 1 ezcWorkflowDatabaseExecution cleanupTable 1 ezcWorkflowEventLogListener __construct 1 ezcWorkflowEventLogListener notify 1
0 Comments to "PHPUnit and Software Metrics"
6 Trackbacks to "PHPUnit and Software Metrics"
Add Comment