microsoft / WindowsProtocolTestSuites
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 25,818 units with 624,721 lines of code in units (62.0% of code).
    • 66 very complex units (36,656 lines of code)
    • 107 complex units (22,233 lines of code)
    • 646 medium complex units (55,527 lines of code)
    • 1,374 simple units (61,883 lines of code)
    • 23,625 very simple units (448,422 lines of code)
5% | 3% | 8% | 9% | 71%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
cs5% | 3% | 8% | 9% | 72%
js0% | 9% | 21% | 21% | 47%
tsx0% | 25% | 36% | 14% | 23%
c0% | 0% | 10% | 4% | 85%
java0% | 0% | 22% | 11% | 66%
py0% | 0% | 30% | 18% | 50%
cpp0% | 0% | 4% | 13% | 82%
ts0% | 0% | 7% | 10% | 82%
h0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
TestSuites7% | 3% | 8% | 7% | 73%
ProtoSDK2% | 2% | 10% | 13% | 71%
ProtocolTestManager<1% | 7% | 14% | 23% | 52%
MessageAnalyzerLibrary0% | 0% | 7% | 14% | 77%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
public void SearchOpReq()
in TestSuites/ADFamily/src/Adapter/MS-ADTS-LDAP/AD_LDAPModelAdapter.cs
2773 439 6
public void ValidateConstructedAttributes()
in TestSuites/ADFamily/src/TestSuite/MS-ADTS-Schema/ConstructedAttributes.cs
2590 389 0
public void ModifyOperation()
in TestSuites/ADFamily/src/Adapter/MS-ADTS-LDAP/AD_LDAPModelAdapter.cs
1145 235 7
public void AddOperation()
in TestSuites/ADFamily/src/Adapter/MS-ADTS-LDAP/AD_LDAPModelAdapter.cs
937 159 8
public void ValidateReadAccessControl()
in TestSuites/ADFamily/src/Adapter/MS-ADTS-Security/MS_ADTS_Security_RequirementsValidator.cs
1369 158 1
public static MessageStatus OpenFileinitial()
in TestSuites/FileServer/src/FSAModel/Model/OpenFile/OpenFile.cs
439 154 10
public void ValidateLDSConstructedAttributes()
in TestSuites/ADFamily/src/TestSuite/MS-ADTS-Schema/ConstructedAttributes.cs
1005 144 0
public void ModifyDNOperation()
in TestSuites/ADFamily/src/Adapter/MS-ADTS-LDAP/AD_LDAPModelAdapter.cs
720 126 9
protected virtual void UpdateResponseRoleContext()
in ProtoSDK/MS-CIFS/Server/CifsServerContext.cs
590 125 3
private void VerifyNetlogonValidationSamInfo4()
in TestSuites/ADFamily/src/Adapter/MS-NRPC/ServerRoleCaptureCode.cs
1243 120 11
public void ValidateSchemaModifications()
in TestSuites/ADFamily/src/TestSuite/MS-ADTS-Schema/SchemaModification.cs
896 112 0
public void ValidateLDSSchemaModifications()
in TestSuites/ADFamily/src/TestSuite/MS-ADTS-Schema/SchemaModification.cs
841 111 0
public void DeleteOperation()
in TestSuites/ADFamily/src/Adapter/MS-ADTS-LDAP/AD_LDAPModelAdapter.cs
543 106 8
public ErrorStatus QueryInformationPolicy2()
in TestSuites/ADFamily/src/Adapter/MS-LSAD/PolicyObjects.cs
689 103 3
public ErrorStatus QueryInformationPolicy()
in TestSuites/ADFamily/src/Adapter/MS-LSAD/PolicyObjects.cs
689 103 3
public static MessageStatus FsCtlForEasyRequest()
in TestSuites/FileServer/src/FSAModel/Model/IOCTL/IoCtlRequestModel.cs
314 92 4
public MessageStatus CreateFile()
in TestSuites/FileServer/src/FSA/Adapter/FSAAdapter.cs
354 90 10
internal static SmbPacket CreateSmbResponsePacket()
in ProtoSDK/MS-CIFS/CifsMessageUtil.cs
270 86 3
public error_status_t InitializeFileTransferAsync()
in TestSuites/ADFamily/src/MS-FRS2/Adapter/FRS2ManagedAdapter.cs
537 86 3
private void VerifyNetlogonValidationSamInfo2()
in TestSuites/ADFamily/src/Adapter/MS-NRPC/ServerRoleCaptureCode.cs
817 85 11