Excessivelack of.startTest()and.stopTest()Unjustifiedbig numberof RecordFlows onone sObjectHard-codingUI textinstead ofCustomLabelsNo checkingcollectionemptinessbefore DMLDMLsin loopGiganticFlow insteadof multipleSubflowsNo FaultPaths inFlowsSOQLsin loopGetting IDsby loopinstead ofMap(records)Multipletriggerson onesObjectMethod with100s 'i++'lines for fakecodecoverageOnly catchinggeneralcatch(Exception)No Test datafactory/builderCode intriggerinstead ofTriggerHandlerHard-codedIDNoassertionsin TestsExcessiveamount ofSystem.Debug()No flags todeactivatetriggerdeclarativelyNondescriptivevariablenames in FlowHard-codedauthenticationinstead ofusing NamedCredentailCallingQueueable inloop withoutcontrolmechanism orloggingPublicRead/WriteOWDsSOQLwithoutWHERE orLIMIT outsideBatchExactly75% testcoverageExcessivelack of.startTest()and.stopTest()Unjustifiedbig numberof RecordFlows onone sObjectHard-codingUI textinstead ofCustomLabelsNo checkingcollectionemptinessbefore DMLDMLsin loopGiganticFlow insteadof multipleSubflowsNo FaultPaths inFlowsSOQLsin loopGetting IDsby loopinstead ofMap(records)Multipletriggerson onesObjectMethod with100s 'i++'lines for fakecodecoverageOnly catchinggeneralcatch(Exception)No Test datafactory/builderCode intriggerinstead ofTriggerHandlerHard-codedIDNoassertionsin TestsExcessiveamount ofSystem.Debug()No flags todeactivatetriggerdeclarativelyNondescriptivevariablenames in FlowHard-codedauthenticationinstead ofusing NamedCredentailCallingQueueable inloop withoutcontrolmechanism orloggingPublicRead/WriteOWDsSOQLwithoutWHERE orLIMIT outsideBatchExactly75% testcoverage

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. Unjustified big number of Record Flows on one sObject
  3. Hard-coding UI text instead of Custom Labels
  4. No checking collection emptiness before DML
  5. DMLs in loop
  6. Gigantic Flow instead of multiple Subflows
  7. No Fault Paths in Flows
  8. SOQLs in loop
  9. Getting IDs by loop instead of Map(records)
  10. Multiple triggers on one sObject
  11. Method with 100s 'i++' lines for fake code coverage
  12. Only catching general catch(Exception)
  13. No Test data factory/builder
  14. Code in trigger instead of Trigger Handler
  15. Hard-coded ID
  16. No assertions in Tests
  17. Excessive amount of System.Debug()
  18. No flags to deactivate trigger declaratively
  19. Nondescriptive variable names in Flow
  20. Hard-coded authentication instead of using Named Credentail
  21. Calling Queueable in loop without control mechanism or logging
  22. Public Read/Write OWDs
  23. SOQL without WHERE or LIMIT outside Batch
  24. Exactly 75% test coverage