Excessivelack of.startTest()and.stopTest()SOQLsin loopNoassertionsin TestsGetting IDsby loopinstead ofMap(records)No testdatafactory orbuilderGiganticFlow insteadof multipleSubflowsExactly75% testcoverageNo FaultPaths inFlowsMultipletriggerson onesObjectPublicRead/WriteOWDsHard-codedIDHard-codedauthenticationinstead ofusing NamedCredentialsOnlycatchinggeneralException intry-catchMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectDMLsin loopCheckingcollectionemptinessbefore DMLNo flags todeactivatetrigger andvalidation rulesdeclarativelyUsingProfilesinstead ofPermissionSetsExcessiveamount ofSystem.Debug()Missingbulk testsin testclassesSOQLswithoutWHERE orLIMIT outsideBatchCode intriggerinstead ofTriggerHandlerAll classes inwithout sharingmodeNon‑descriptivevariable namesin FlowExcessivelack of.startTest()and.stopTest()SOQLsin loopNoassertionsin TestsGetting IDsby loopinstead ofMap(records)No testdatafactory orbuilderGiganticFlow insteadof multipleSubflowsExactly75% testcoverageNo FaultPaths inFlowsMultipletriggerson onesObjectPublicRead/WriteOWDsHard-codedIDHard-codedauthenticationinstead ofusing NamedCredentialsOnlycatchinggeneralException intry-catchMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectDMLsin loopCheckingcollectionemptinessbefore DMLNo flags todeactivatetrigger andvalidation rulesdeclarativelyUsingProfilesinstead ofPermissionSetsExcessiveamount ofSystem.Debug()Missingbulk testsin testclassesSOQLswithoutWHERE orLIMIT outsideBatchCode intriggerinstead ofTriggerHandlerAll classes inwithout sharingmodeNon‑descriptivevariable namesin Flow

Salesforce Development Practices Bingo - Call List

(Print) Use this randomly generated list as your call list when playing the game. There is no need to say the BINGO column name. Place some kind of mark (like an X, a checkmark, a dot, tally mark, etc) on each cell as you announce it, to keep track. You can also cut out each item, place them in a bag and pull words from the bag.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  1. Excessive lack of .startTest() and .stopTest()
  2. SOQLs in loop
  3. No assertions in Tests
  4. Getting IDs by loop instead of Map(records)
  5. No test data factory or builder
  6. Gigantic Flow instead of multiple Subflows
  7. Exactly 75% test coverage
  8. No Fault Paths in Flows
  9. Multiple triggers on one sObject
  10. Public Read/Write OWDs
  11. Hard-coded ID
  12. Hard-coded authentication instead of using Named Credentials
  13. Only catching general Exception in try-catch
  14. Multiple Record Triggered Flows on same OperationType on one sObject
  15. DMLs in loop
  16. Checking collection emptiness before DML
  17. No flags to deactivate trigger and validation rules declaratively
  18. Using Profiles instead of Permission Sets
  19. Excessive amount of System.Debug()
  20. Missing bulk tests in test classes
  21. SOQLs without WHERE or LIMIT outside Batch
  22. Code in trigger instead of Trigger Handler
  23. All classes in without sharing mode
  24. Non‑descriptive variable names in Flow