Noassertionsin TestsNon‑descriptivevariable namesin FlowMissingbulk testsin testclassesDMLsin loopMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo flags todeactivatetrigger andvalidation rulesdeclarativelyHard-codedauthenticationinstead ofusing NamedCredentialsExactly75% testcoverageGiganticFlow insteadof multipleSubflowsCode intriggerinstead ofTriggerHandlerGetting IDsby loopinstead ofMap(records)SOQLswithoutWHERE orLIMIT outsideBatchExcessivelack of.startTest()and.stopTest()Checkingcollectionemptinessbefore DMLPublicRead/WriteOWDsNo FaultPaths inFlowsNo testdatafactory orbuilderMultipletriggerson onesObjectExcessiveamount ofSystem.Debug()Hard-codedIDUsingProfilesinstead ofPermissionSetsSOQLsin loopAll classes inwithout sharingmodeOnlycatchinggeneralException intry-catchNoassertionsin TestsNon‑descriptivevariable namesin FlowMissingbulk testsin testclassesDMLsin loopMultiple RecordTriggeredFlows on sameOperationTypeon one sObjectNo flags todeactivatetrigger andvalidation rulesdeclarativelyHard-codedauthenticationinstead ofusing NamedCredentialsExactly75% testcoverageGiganticFlow insteadof multipleSubflowsCode intriggerinstead ofTriggerHandlerGetting IDsby loopinstead ofMap(records)SOQLswithoutWHERE orLIMIT outsideBatchExcessivelack of.startTest()and.stopTest()Checkingcollectionemptinessbefore DMLPublicRead/WriteOWDsNo FaultPaths inFlowsNo testdatafactory orbuilderMultipletriggerson onesObjectExcessiveamount ofSystem.Debug()Hard-codedIDUsingProfilesinstead ofPermissionSetsSOQLsin loopAll classes inwithout sharingmodeOnlycatchinggeneralException intry-catch

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