iOS Test Suite Analysis Report

Generated: 2026-01-30 01:11 UTC
Project: dummy_project

16
Naming Issues
431
Orphaned Tests
3
Large Files
505
Tests
58
Test Files
15
Test Plans

Test Inventory

Overview

Total Test Files 58
Total Test Methods 505
Tests per File 1 min, 80 max, 8.7 avg, 3.0 median

Complete data: test_inventory.json

Test File Naming

Expected Pattern [Feature]Tests.swift
Consistency 72.4%

Files Not Following Convention (16):

Snake case (9 files)

LoginFlow_Test1.swift LoginFlow_Test2.swift button_tests.swift checkout_tests.swift field_tests.swift ...and 4 more

Flow files (1 files)

CheckoutFlows.swift

Validation files (3 files)

CheckoutValidations.swift FeatureValidation.swift SearchValidation.swift

Scenario files (2 files)

SearchScenarios.swift TestScenarios.swift

Other (1 files)

testCase42.swift

See test_inventory.jsontest_files for complete list

Test Method Naming

Expected Style camelCase
Consistency 99.0%

Style breakdown: BDD: 2 | camelCase: 500 | snake_case: 3

Methods Not Following Convention 5

MethodDetected Style
test_user_can_logout snake_case
test_product_added_to_cart snake_case
test_checkout_completes snake_case
testGivenValidUser_WhenLoggingIn_ThenSuccess BDD
testGivenEmptyCart_WhenAddingProduct_ThenCartUpdates BDD

See test_inventory.jsonmethod_naming_patterns.non_compliant_methods for complete list

Largest Test Files

FileTestsClasses
SearchTests.swift 80 SearchTests
LoginTests.swift 39 LoginTests
LoginValidationTests.swift 34 LoginValidationTests
UserAuthenticationTests.swift 30 UserAuthenticationTests
DashboardTests.swift 25 DashboardTests
search_tests.swift 25 search_tests
CartTests.swift 22 CartTests
ProductListTests.swift 20 ProductListTests
checkout_tests.swift 18 checkout_tests
LoginFlow_Test1.swift 15 LoginFlow_Test1
LoginFlow_Test2.swift 15 LoginFlow_Test2
ProfileTests.swift 15 ProfileTests
product_detail_tests.swift 15 product_detail_tests
OrderHistoryTests.swift 12 OrderHistoryTests
NotificationTests.swift 10 NotificationTests
PaymentTests.swift 8 PaymentTests
WishlistTests.swift 8 WishlistTests
MixedNamingTests.swift 7 MixedNamingTests
ReturnsTests.swift 5 ReturnsTests
ReviewTests.swift 5 ReviewTests

Showing top 20 of 58 files

See test_inventory.jsontest_files for complete list

Accessibility Identifiers

Overview

Total Unique IDs 84
Total Usage Count 274
Average Usage per ID 3.3

Complete data: accessibility_ids.json

Naming Conventions

ConventionCountExamples
PascalCase 10 Done, Cancel, BackButton
dotted.notation 74 DashboardView.WelcomeLabel, LoginView.UsernameField, LoginView.PasswordField
lowercase 0

See accessibility_ids.jsonidentifiers for complete list

Top 20 Most Used Identifiers

RankIdentifierUsage Count
1 Done overused 150
2 Cancel high usage 58
3 DashboardView.WelcomeLabel 27
4 LoginView.UsernameField 6
5 LoginView.PasswordField 6
6 LoginView.ErrorLabel 6
7 LoginView.SubmitButton 3
8 LoginView.RememberMeToggle 3
9 LoginView.ForgotPasswordButton 1
10 LoginView.SignUpButton 1
11 DashboardView.SearchButton 1
12 BackButton 1
13 LoginView.TouchIDButton 1
14 LoginView.SignInButton 1
15 LoginView.SupportButton 1
16 LoginView.TermsButton 1
17 LoginView.PrivacyButton 1
18 LoginView.EmailField 1
19 LoginView.SocialLabel 1
20 LoginView.TitleLabel 1

Showing top 20 of 84 identifiers

See accessibility_ids.jsonidentifiers for complete list

Warning: Potentially Generic IDs

The following IDs are used very frequently and may be too generic:

Done (150 uses), Cancel (58 uses)

Unused Identifiers 61

The following identifiers are defined in the codebase but never used in tests:

IdentifierDefined In
LoginView.BiometricButton AccessibilityIdentifiers.swift
DashboardView.CartButton AccessibilityIdentifiers.swift
DashboardView.ProfileButton AccessibilityIdentifiers.swift
DashboardView.FeaturedSection AccessibilityIdentifiers.swift
DashboardView.CategoriesSection AccessibilityIdentifiers.swift
DashboardView.DealsSection AccessibilityIdentifiers.swift
DashboardView.NotificationBadge AccessibilityIdentifiers.swift
SearchView.SearchField AccessibilityIdentifiers.swift
SearchView.SearchButton AccessibilityIdentifiers.swift
SearchView.ClearButton AccessibilityIdentifiers.swift
SearchView.FilterButton AccessibilityIdentifiers.swift
SearchView.SortButton AccessibilityIdentifiers.swift
SearchView.ResultsList AccessibilityIdentifiers.swift
SearchView.NoResultsLabel AccessibilityIdentifiers.swift
SearchView.RecentSearchesList AccessibilityIdentifiers.swift
ProductDetail.NameLabel AccessibilityIdentifiers.swift
ProductDetail.PriceLabel AccessibilityIdentifiers.swift
ProductDetail.DescriptionLabel AccessibilityIdentifiers.swift
ProductDetail.ImageView AccessibilityIdentifiers.swift
ProductDetail.AddToCartButton AccessibilityIdentifiers.swift

Showing 20 of 61 unused identifiers

See accessibility_ids.jsonunused_identifiers for complete list

Test Plans

Overview

Total Test Plans 15
Unique Tests in Plans 380
Tests in Multiple Plans 380
Orphaned Tests 431

Complete data: test_plans.json

Test Plan Details

Plan Name Tests
Accessibility 0
CheckoutFlow 0
FullFunctional 370
Integration 0
LoginFlow 0
NightlyFull 360
OrderManagement 0
PaymentProcessing 0
Performance 0
ProductCatalog 0
QuickCheck 0
RegressionTest 280
SearchFlow 0
SmokeTest 60
UserManagement 0

See test_plans.jsontest_plans for complete list

Tests in Multiple Plans 380

Found 380 tests that appear in more than one test plan (useful for coverage, watch for redundancy):

TestPlan CountPlans
DashboardTests/testScenario16() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario17() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario18() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario19() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario20() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario21() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario22() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario23() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario24() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
DashboardTests/testScenario25() 15 Accessibility, CheckoutFlow, FullFunctional, +12 more
SearchTests/testScenario1() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario10() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario2() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario3() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario4() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario5() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario6() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario7() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario8() 14 Accessibility, CheckoutFlow, Integration, +11 more
SearchTests/testScenario9() 14 Accessibility, CheckoutFlow, Integration, +11 more

Showing 20 of 380 tests. See test_plans.jsontests_in_multiple_plans for complete list.

Orphaned Tests 431

Found 431 tests that exist in test files but are not included in any test plan. These tests will not run in CI unless added to a plan.

Orphaned tests by file:

FileOrphaned Tests
SearchTests80
LoginTests39
LoginValidationTests34
UserAuthenticationTests30
DashboardTests25
search_tests25
CartTests22
ProductListTests20
checkout_tests18
LoginFlow_Test115
LoginFlow_Test215
ProfileTests15
product_detail_tests15
OrderHistoryTests12
NotificationTests10
PaymentTests8
WishlistTests8
MixedNamingTests7
ReviewTests5
ShippingTests5
ReturnsTests3
TrackingTests3
field_tests3
navigation_tests3
testCase423
SettingsTests2
button_tests2
layout_tests2
AboutTests1
HelpTests1

Complete list: See test_plans.jsonorphaned_tests array for all 431 orphaned test methods

Skipped Tests 380

Found 380 skipped test entries across all test plans.

Test ClassSkippedSample Tests
SearchTests 80 testScenario1(), testScenario10(), testScenario11(), +77 more
searchtests 25 testScenario1(), testScenario10(), testScenario11(), +22 more
CartTests 22 testScenario1(), testScenario10(), testScenario11(), +19 more
ProductListTests 20 testScenario1(), testScenario10(), testScenario11(), +17 more
checkouttests 18 testScenario1(), testScenario10(), testScenario11(), +15 more
LoginFlowTest1 15 testScenario1(), testScenario10(), testScenario11(), +12 more
LoginFlowTest2 15 testScenario1(), testScenario10(), testScenario11(), +12 more
ProfileTests 15 testScenario1(), testScenario10(), testScenario11(), +12 more
productdetailtests 15 testScenario1(), testScenario10(), testScenario11(), +12 more
OrderHistoryTests 12 testScenario1(), testScenario10(), testScenario11(), +9 more
DashboardTests 10 testScenario16(), testScenario17(), testScenario18(), +7 more
NotificationTests 10 testScenario1(), testScenario10(), testScenario2(), +7 more
PaymentTests 8 testScenario1(), testScenario2(), testScenario3(), +5 more
WishlistTests 8 testScenario1(), testScenario2(), testScenario3(), +5 more
ReturnsTests 5 testScenario1(), testScenario2(), testScenario3(), +2 more
ReviewTests 5 testScenario1(), testScenario2(), testScenario3(), +2 more
ShippingTests 5 testScenario1(), testScenario2(), testScenario3(), +2 more
AcceptanceTests 3 testScenario1(), testScenario2(), testScenario3()
AccessibilityTests 3 testScenario1(), testScenario2(), testScenario3()
CheckoutFlows 3 testScenario1(), testScenario2(), testScenario3()

Showing 20 of 54 files

See test_plans.jsonskipped_tests for complete list

Recommendations

Split Large Test Files

3 file(s) contain more than 30 tests. Consider splitting for better maintainability:

  • SearchTests.swift (80 tests)
  • LoginTests.swift (39 tests)
  • LoginValidationTests.swift (34 tests)

Standardize File Naming

Test file naming is only 72.4% consistent with the [Feature]Tests.swift pattern. Found 16 files with inconsistent naming:

  • CheckoutFlows.swift
  • CheckoutValidations.swift
  • FeatureValidation.swift
  • LoginFlow_Test1.swift
  • LoginFlow_Test2.swift
  • ...and 11 more

See test_inventory.jsontest_files for complete list

Refine Generic Accessibility IDs

The following IDs are used very frequently and may be too generic:

  • Done (150 uses)
  • Cancel (58 uses)

Consider using more specific, context-aware identifiers.

Remove Unused Accessibility IDs

61 identifier(s) are defined but never used in tests:

  • LoginView.BiometricButton
  • DashboardView.CartButton
  • DashboardView.ProfileButton
  • DashboardView.FeaturedSection
  • DashboardView.CategoriesSection
  • DashboardView.DealsSection
  • DashboardView.NotificationBadge
  • SearchView.SearchField
  • SearchView.SearchButton
  • SearchView.ClearButton
  • ...and 51 more

Consider removing these or adding test coverage.

Add Orphaned Tests to Plans

431 tests are not included in any test plan. Top affected files:

  • SearchTests (80 orphaned tests)
  • LoginTests (39 orphaned tests)
  • LoginValidationTests (34 orphaned tests)
  • UserAuthenticationTests (30 orphaned tests)
  • DashboardTests (25 orphaned tests)
  • search_tests (25 orphaned tests)
  • CartTests (22 orphaned tests)
  • ProductListTests (20 orphaned tests)
  • checkout_tests (18 orphaned tests)
  • LoginFlow_Test1 (15 orphaned tests)
  • ...and 20 more files

See Orphaned Tests section above for complete list.

Review Tests in Multiple Plans

380 tests appear in more than one test plan. Verify this is intentional:

  • DashboardTests/testScenario16() appears in 15 plans
  • DashboardTests/testScenario17() appears in 15 plans
  • DashboardTests/testScenario18() appears in 15 plans
  • DashboardTests/testScenario19() appears in 15 plans
  • DashboardTests/testScenario20() appears in 15 plans
  • ...and 375 more

This may be intentional (e.g., smoke tests also in regression), but could indicate redundant test execution.

See test_plans.jsontests_in_multiple_plans for complete list

Review Skipped Tests

Found 380 skipped tests. Verify these tests should remain skipped:

  • AboutTests/testScenario1()
  • AcceptanceTests/testScenario1()
  • AcceptanceTests/testScenario2()
  • AcceptanceTests/testScenario3()
  • AccessibilityTests/testScenario1()
  • ...and 375 more

Skipped tests may indicate:

  • Tests that are flaky or unreliable
  • Tests for features not yet implemented
  • Tests that need to be fixed or removed

See test_plans.jsonskipped_tests for details