SlideShare a Scribd company logo
Architect Group
Paris, France
Salesforce
Let’s talk about Salesforce Testing:
Best Practices & Practical Approaches
X
X
Texeï
24 Septembre à 18h45
Emmanuel Mery
Senior Program Architect,
Salesforce
let's talk about Testing - Trailblazer Community
Why executing Tests
Session agenda:
What are the different test types
How to execute testing
What needs to be tested
When shall you start thinking about Tests
Where to Test
Why executing Tests
● Identify defects
● Ensure functionality
● Enhance application quality
● Support refactoring
● Prevent issues and risks
● Maintain software integrity
● Cost-effectiveness
Overall, executing testing in application development is crucial to ensure the quality,
functionality, and reliability of the application. It helps in identifying and fixing issues,
enhancing user satisfaction, reducing risks, and ensuring a smooth user experience.
What are the different test types
● Component Interaction
● Test Scope
● Dependencies
● Testing Levels
● Order of Execution
● Test Environment
The primary objective is to
uncover defects or issues
that arise when different
components are integrated
and work together.
By validating the integration
points, interactions, and
data exchanges, integration
tests help ensure that the
system as a whole behaves
correctly and meets the
desired functionality and
requirements.
● Granularity
● Independence
● Isolation
● Determinism
● Oriented
The primary goal is to catch
and fix defects in the early
stages of development,
allowing technical team to
iteratively build and refactor
configuration and code with
confidence.
By testing units in isolation,
team can quickly identify
issues and ensure that each
unit behaves as expected,
leading to more robust and
maintainable code.
● End-to-End Testing
● Functional Testing
● Non-Functional Testing
● User Interface Testing
● Compatibility and Integration
Testing
● Performance and Load Testing
● Regression Testing
The main goal is to ensure that
the software system as a whole
meets the desired quality
standards and behaves as
expected in a real-world
environment.
By assessing the complete
system, system tests help identify
and address any issues or gaps in
functionality, performance, or
usability, providing confidence in
the system's readiness for
deployment.
● Scope
● Methodology
● Vulnerability Assessment
● Exploitation and Analysis
● Reporting
Penetration testing plays a
critical role in proactive
security by identifying
vulnerabilities before they
are exploited by malicious
actors.
It helps organizations identify
weaknesses, prioritize
security efforts, and
implement appropriate
security measures to protect
their systems and data from
potential threats.
unit test integration tests system tests penetration tests
What needs to be
tested
Rules
Flows
Profiles
Permission Sets
Apex
What else?
How to execute testing: Rules
DmlException expectedException;
Test.startTest();
try
{
// save record which should be
prevented from saving
}
catch (DmlException d)
{
expectedException = d;
}
Test.stopTest();
assert.areNotEqual(null, expectedException,
'The record should be validated');
DmlException unexpectedException;
Test.startTest();
Try
{
// save record which should save
successfully
}
catch (DmlException d)
{
unexpectedException = d;
}
Test.stopTest();
assert.areEqual(null, unexpectedException,
'The record should be saved');
Apex Negative testing example Apex Positive testing example
Manual or Apex Testing
Flow can be triggered or launch from
apex: Launching a flow from apex
sfdx force:data:soql:query --query
"
SELECT Id, ApexTestClassId, TestMethodName,
FlowVersionId, NumElementsCovered,
NumElementsNotCovered
FROM FlowTestCoverage
WHERE FlowVersion.Definition.DeveloperName =
'Flow_Name' AND TestMethodName
='test_Method_Name_in_Class'
"
--usetoolingapi
○ From Setup, in the Quick Find box, enter
Flows, and then select Flows.
○ Open the relevant version of the flow.
○ Save your changes.
○ Unsaved changes aren't executed when
you test the flow.
○ Click View Tests, and then click Create.
When you’re confident that your flow is
working as expected, activate the version
that you tested and distribute the flow.
How to execute testing: Flows
Manual Testing, Test Flow feature, Apex Testing
Steps to create a flow testing
Calculate test coverage
Test flow feature example: the screenflow New Contact
Screen :
● Contact First Name
● Contact Last Name
● Contact Account
● New or Existing ?
● Set local contact variable
Search contact
● First Name
● Last Name
Create or update
● New or Existing ?
● Found or not
Set local Variable with account id
Update contact
Create Contact
How to execute testing: Flows
Matching record
Toggle
Doesn’t Exist Exist
Deselected A contact is created A contact is created
Selected A contact is created A contact is updated
Test definition
Test execution : use debug
How to execute testing: Flows
Test flow feature example : Testing
What needs to be Tested and how to execute testing
Test a trigger flow : flow example
What needs to be Tested and how to execute testing
Test a trigger flow : Define a test in 3 or 4 steps
When executing the test
Values to use for testing
Define assertions to test
Id p = [select id from profile where name='XXXX'].id;
Account ac = new Account(name ='Test') ;
insert ac;
Contact con = new Contact(LastName ='testCon',AccountId = ac.Id);
insert con;
User user = new User(alias = 'test123', email='test123@noemail.com',
emailencodingkey='UTF-8', lastname='Testing',
languagelocalekey='en_US',
localesidkey='en_US',
profileid = p,
country='United States',IsActive =true,
ContactId = con.Id,
timezonesidkey='America/Los_Angeles', username='tester@noemail.com');
insert user;
system.runAs(user) {
// statements to be executed by this test user.
}
How to execute testing: Profiles
Manual or inside Apex using runAs
PermissionSet ps = [SELECT Id FROM PermissionSet
WHERE Name = '<required permission set name>'];
insert new PermissionSetAssignment(AssigneeId = opUser.id, PermissionSetId = ps.Id);
SELECT Id, PermissionSetId, PermissionSet.Name, PermissionSet.ProfileId,
PermissionSet.Profile.Name, AssigneeId, Assignee.Name
FROM PermissionSetAssignment
WHERE Assignee.Name = 'John Doe'
SELECT Id, PermissionSetId, PermissionSet.Name, PermissionSet.ProfileId,
PermissionSet.Profile.Name, AssigneeId, Assignee.Name
FROM PermissionSetAssignment WHERE
PermissionSet.Name = 'Custom PermissionSet Name'
How to execute testing: Permission Sets
Manual or inside Apex
● Cover as many lines of code as possible. Before you can deploy Apex or package it
for the AppExchange, the following must be true.
● If code uses conditional logic (including ternary operators), execute each branch.
● Make calls to methods using both valid and invalid inputs.
● Complete successfully without throwing any exceptions, unless those errors are
expected and caught in a try…catch block.
● Always handle all exceptions that are caught, instead of merely catching the
exceptions.
● Use assert methods to prove that code behaves properly.
● Use the runAs method to test your application in different user contexts.
● Exercise bulk trigger functionality—use at least 200 records in your tests.
● Use the ORDER BY keywords to ensure that the records are returned in the
expected order.
How to execute testing: Apex
Not assume that
record IDs are in
sequential order
Set Up Test Data Document your test
Execute individual
tests
When writing Apex test classes
Record IDs are not
created in ascending
order unless you insert
multiple records with the
same request.
For example, if you
create an account A,
and receive the ID
001D000000IEEmT,
then create account B,
the ID of account B may,
or may not be
sequentially higher.
Create the necessary
data in test classes, so
the tests don’t have to
rely on data in a
particular organization.
Create all test data
before calling the
Test.startTest
method.
Since tests don't commit,
you don't have to delete
any data.
Write comments stating
not only what is
supposed to be tested,
but the assumptions the
tester made about the
data, the expected
outcome, and so on.
Test the classes in your
application individually.
Never test your entire
application in a single
test.
Best Practices for Apex Parallel Test Execution
Tests that are started from the Salesforce user interface (including the Developer Console)
run in parallel.
Parallel test execution can speed up test run time. Sometimes, parallel test execution results in
data contention issues, and you can turn off parallel execution in those cases.
In particular, data contention issues and UNABLE_TO_LOCK_ROW errors can occur in the following
cases:
● When tests update the same records at the same time. Updating the same records
typically occurs when tests don’t create their own data and turn off data isolation to access
the organization’s data.
● When a deadlock occurs in tests that are running in parallel and that try to create records
with duplicate index field values. A deadlock occurs when two running tests are waiting for
each other to roll back data. Such a wait can happen if two tests insert records with the
same unique index field values in different orders.
Is it too early to start
thinking about testing?
Test Driven Development Methodology
1. Write a user story and its
acceptance criteria
2. Write a Test
3. Run the Test
4. Write Minimal Code/ execute the
smallest configuration
5. Run All Tests
6. Refactor Code / Configuration
7. Repeat
Benefits of Test Driven Development
1. Increased Test Coverage
2. Improved Code Quality
3. Faster Debugging
4. Faster Feedback Loop
5. Design Focus
Where to test ?
Unit
(dev)
Integration
(partial)
System
(full)
Penetration
(partial)
Unit testing are executed by the
administrator or developer. It aims to
double-check the new feature and can
be done in the environment where the
feature has been created (Dev Sandbox)
Integration testing aims to double
how the new features behave with other
systems component. It requires
connectivity to other systems. These
“external“ systems may require to access
or create data. This is why even if some
testing can be done in a dev sandbox,
using a partial sandbox makes sense.
Penetration testing must be
executed on an environment as close
as possible from production. It means
exposition to the outside, connectivity
and data availability should replicate
production. Some testing can be done
in development environment but most
of it should be done in partial or full
sandbox.
System testing is the last phase of
testing. It’s not reduce to it but
contains load testing and User
Acceptance Testing (UAT). These two
testing type require to use or create
data. As such a partial of full sandbox is
necessary
Thank You
Next event
Winter ’25 French gathering
2 octobre 2024 à partir de 18H30
Cloudity - Tour Coeur Défense

More Related Content

PPTX
Generating Test Cases
PDF
Best practices for test case creation & maintenance
PPTX
Clean Code in Test Automation Differentiating Between the Good and the Bad
PPTX
Best Practices for Test Case Writing
PPS
Implementing test scripting Ian McDonald updated (minor changes) 26-04-2013
PPTX
Test case writing
PDF
Sqa, test scenarios and test cases
PPT
Less01 1 introduction_module
Generating Test Cases
Best practices for test case creation & maintenance
Clean Code in Test Automation Differentiating Between the Good and the Bad
Best Practices for Test Case Writing
Implementing test scripting Ian McDonald updated (minor changes) 26-04-2013
Test case writing
Sqa, test scenarios and test cases
Less01 1 introduction_module

Similar to let's talk about Testing - Trailblazer Community (20)

PPT
Test case development
PDF
Software Testing
PPS
Unit Testing
PPT
Testcase training
PPTX
Making the Unstable Stable - An Intro To Testing
PPTX
SpiraTest: Designing and Creating Test Script
PDF
Test Case Design Techniques in Software Testing_ Elements, Types, and Best Pr...
PPT
Software Testing
PDF
Test Driven Development Introduction
PPTX
Introduction to testing.
PDF
Test Driven Development with Sql Server
PPS
Why Unit Testingl
PPS
Why Unit Testingl
PPS
Why unit testingl
PPTX
www.tutorialsbook.com presents Manual testing
PPTX
Object Oriented Testing
PDF
Unit testing in Force.com platform
PDF
Quality assurance tests
PPT
Testing
Test case development
Software Testing
Unit Testing
Testcase training
Making the Unstable Stable - An Intro To Testing
SpiraTest: Designing and Creating Test Script
Test Case Design Techniques in Software Testing_ Elements, Types, and Best Pr...
Software Testing
Test Driven Development Introduction
Introduction to testing.
Test Driven Development with Sql Server
Why Unit Testingl
Why Unit Testingl
Why unit testingl
www.tutorialsbook.com presents Manual testing
Object Oriented Testing
Unit testing in Force.com platform
Quality assurance tests
Testing
Ad

More from yosra Saidani (16)

PDF
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
PDF
Salesforce Women In Tech _SPM-Event170425
PDF
winter25-FrenchGathering-02Oct.pptx (1).pdf
PDF
(Dream)Agentforce to you- women in tech event
PDF
TrailblazerCommunity-winter25-FrenchGathering-02Oct
PPTX
WOMEN IN TECH EVENT : Explore Salesforce Metadata.pptx
PDF
Bien débuter sur MuleSoft Composer pour Salesforce.pdf
PPTX
AI Event In a Box - Generative AI for Admins_ Unlock the Future of AI (6).pptx
PDF
Summer23-ReleaseOverview-FrenchGathering-29062023.pptx.pdf
PDF
World Tour Paris - 1054-la Trailblazer Community présente les nouvelles versi...
PDF
Spring23-ReleaseOverview-FrenchGathering-010223.pptx.pdf
PDF
Trailblazer community - Einstein for Service.pdf
PDF
MuleSoft - Women in Tech Groupe - FR.pdf
PDF
B2 b lead magnet micro service et personnalisation avancée de contenu
PPTX
2021 12 2 le marche de l emploi dans ecosysteme salesforce
PDF
Wit commerce cloud overview
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Women In Tech _SPM-Event170425
winter25-FrenchGathering-02Oct.pptx (1).pdf
(Dream)Agentforce to you- women in tech event
TrailblazerCommunity-winter25-FrenchGathering-02Oct
WOMEN IN TECH EVENT : Explore Salesforce Metadata.pptx
Bien débuter sur MuleSoft Composer pour Salesforce.pdf
AI Event In a Box - Generative AI for Admins_ Unlock the Future of AI (6).pptx
Summer23-ReleaseOverview-FrenchGathering-29062023.pptx.pdf
World Tour Paris - 1054-la Trailblazer Community présente les nouvelles versi...
Spring23-ReleaseOverview-FrenchGathering-010223.pptx.pdf
Trailblazer community - Einstein for Service.pdf
MuleSoft - Women in Tech Groupe - FR.pdf
B2 b lead magnet micro service et personnalisation avancée de contenu
2021 12 2 le marche de l emploi dans ecosysteme salesforce
Wit commerce cloud overview
Ad

Recently uploaded (20)

PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
RMMM.pdf make it easy to upload and study
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PPTX
Unit 4 Skeletal System.ppt.pptxopresentatiom
PDF
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
PPTX
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PPTX
Digestion and Absorption of Carbohydrates, Proteina and Fats
PDF
Hazard Identification & Risk Assessment .pdf
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
advance database management system book.pdf
PDF
SOIL: Factor, Horizon, Process, Classification, Degradation, Conservation
PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PDF
IGGE1 Understanding the Self1234567891011
PDF
Classroom Observation Tools for Teachers
PPTX
Final Presentation General Medicine 03-08-2024.pptx
PPTX
History, Philosophy and sociology of education (1).pptx
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
Supply Chain Operations Speaking Notes -ICLT Program
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
RMMM.pdf make it easy to upload and study
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
Unit 4 Skeletal System.ppt.pptxopresentatiom
احياء السادس العلمي - الفصل الثالث (التكاثر) منهج متميزين/كلية بغداد/موهوبين
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
202450812 BayCHI UCSC-SV 20250812 v17.pptx
Digestion and Absorption of Carbohydrates, Proteina and Fats
Hazard Identification & Risk Assessment .pdf
Paper A Mock Exam 9_ Attempt review.pdf.
advance database management system book.pdf
SOIL: Factor, Horizon, Process, Classification, Degradation, Conservation
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
IGGE1 Understanding the Self1234567891011
Classroom Observation Tools for Teachers
Final Presentation General Medicine 03-08-2024.pptx
History, Philosophy and sociology of education (1).pptx

let's talk about Testing - Trailblazer Community

  • 1. Architect Group Paris, France Salesforce Let’s talk about Salesforce Testing: Best Practices & Practical Approaches X X Texeï 24 Septembre à 18h45 Emmanuel Mery Senior Program Architect, Salesforce
  • 3. Why executing Tests Session agenda: What are the different test types How to execute testing What needs to be tested When shall you start thinking about Tests Where to Test
  • 4. Why executing Tests ● Identify defects ● Ensure functionality ● Enhance application quality ● Support refactoring ● Prevent issues and risks ● Maintain software integrity ● Cost-effectiveness Overall, executing testing in application development is crucial to ensure the quality, functionality, and reliability of the application. It helps in identifying and fixing issues, enhancing user satisfaction, reducing risks, and ensuring a smooth user experience.
  • 5. What are the different test types ● Component Interaction ● Test Scope ● Dependencies ● Testing Levels ● Order of Execution ● Test Environment The primary objective is to uncover defects or issues that arise when different components are integrated and work together. By validating the integration points, interactions, and data exchanges, integration tests help ensure that the system as a whole behaves correctly and meets the desired functionality and requirements. ● Granularity ● Independence ● Isolation ● Determinism ● Oriented The primary goal is to catch and fix defects in the early stages of development, allowing technical team to iteratively build and refactor configuration and code with confidence. By testing units in isolation, team can quickly identify issues and ensure that each unit behaves as expected, leading to more robust and maintainable code. ● End-to-End Testing ● Functional Testing ● Non-Functional Testing ● User Interface Testing ● Compatibility and Integration Testing ● Performance and Load Testing ● Regression Testing The main goal is to ensure that the software system as a whole meets the desired quality standards and behaves as expected in a real-world environment. By assessing the complete system, system tests help identify and address any issues or gaps in functionality, performance, or usability, providing confidence in the system's readiness for deployment. ● Scope ● Methodology ● Vulnerability Assessment ● Exploitation and Analysis ● Reporting Penetration testing plays a critical role in proactive security by identifying vulnerabilities before they are exploited by malicious actors. It helps organizations identify weaknesses, prioritize security efforts, and implement appropriate security measures to protect their systems and data from potential threats. unit test integration tests system tests penetration tests
  • 6. What needs to be tested Rules Flows Profiles Permission Sets Apex What else?
  • 7. How to execute testing: Rules DmlException expectedException; Test.startTest(); try { // save record which should be prevented from saving } catch (DmlException d) { expectedException = d; } Test.stopTest(); assert.areNotEqual(null, expectedException, 'The record should be validated'); DmlException unexpectedException; Test.startTest(); Try { // save record which should save successfully } catch (DmlException d) { unexpectedException = d; } Test.stopTest(); assert.areEqual(null, unexpectedException, 'The record should be saved'); Apex Negative testing example Apex Positive testing example Manual or Apex Testing
  • 8. Flow can be triggered or launch from apex: Launching a flow from apex sfdx force:data:soql:query --query " SELECT Id, ApexTestClassId, TestMethodName, FlowVersionId, NumElementsCovered, NumElementsNotCovered FROM FlowTestCoverage WHERE FlowVersion.Definition.DeveloperName = 'Flow_Name' AND TestMethodName ='test_Method_Name_in_Class' " --usetoolingapi ○ From Setup, in the Quick Find box, enter Flows, and then select Flows. ○ Open the relevant version of the flow. ○ Save your changes. ○ Unsaved changes aren't executed when you test the flow. ○ Click View Tests, and then click Create. When you’re confident that your flow is working as expected, activate the version that you tested and distribute the flow. How to execute testing: Flows Manual Testing, Test Flow feature, Apex Testing Steps to create a flow testing Calculate test coverage
  • 9. Test flow feature example: the screenflow New Contact Screen : ● Contact First Name ● Contact Last Name ● Contact Account ● New or Existing ? ● Set local contact variable Search contact ● First Name ● Last Name Create or update ● New or Existing ? ● Found or not Set local Variable with account id Update contact Create Contact How to execute testing: Flows
  • 10. Matching record Toggle Doesn’t Exist Exist Deselected A contact is created A contact is created Selected A contact is created A contact is updated Test definition Test execution : use debug How to execute testing: Flows Test flow feature example : Testing
  • 11. What needs to be Tested and how to execute testing Test a trigger flow : flow example
  • 12. What needs to be Tested and how to execute testing Test a trigger flow : Define a test in 3 or 4 steps When executing the test Values to use for testing Define assertions to test
  • 13. Id p = [select id from profile where name='XXXX'].id; Account ac = new Account(name ='Test') ; insert ac; Contact con = new Contact(LastName ='testCon',AccountId = ac.Id); insert con; User user = new User(alias = 'test123', email='test123@noemail.com', emailencodingkey='UTF-8', lastname='Testing', languagelocalekey='en_US', localesidkey='en_US', profileid = p, country='United States',IsActive =true, ContactId = con.Id, timezonesidkey='America/Los_Angeles', username='tester@noemail.com'); insert user; system.runAs(user) { // statements to be executed by this test user. } How to execute testing: Profiles Manual or inside Apex using runAs
  • 14. PermissionSet ps = [SELECT Id FROM PermissionSet WHERE Name = '<required permission set name>']; insert new PermissionSetAssignment(AssigneeId = opUser.id, PermissionSetId = ps.Id); SELECT Id, PermissionSetId, PermissionSet.Name, PermissionSet.ProfileId, PermissionSet.Profile.Name, AssigneeId, Assignee.Name FROM PermissionSetAssignment WHERE Assignee.Name = 'John Doe' SELECT Id, PermissionSetId, PermissionSet.Name, PermissionSet.ProfileId, PermissionSet.Profile.Name, AssigneeId, Assignee.Name FROM PermissionSetAssignment WHERE PermissionSet.Name = 'Custom PermissionSet Name' How to execute testing: Permission Sets Manual or inside Apex
  • 15. ● Cover as many lines of code as possible. Before you can deploy Apex or package it for the AppExchange, the following must be true. ● If code uses conditional logic (including ternary operators), execute each branch. ● Make calls to methods using both valid and invalid inputs. ● Complete successfully without throwing any exceptions, unless those errors are expected and caught in a try…catch block. ● Always handle all exceptions that are caught, instead of merely catching the exceptions. ● Use assert methods to prove that code behaves properly. ● Use the runAs method to test your application in different user contexts. ● Exercise bulk trigger functionality—use at least 200 records in your tests. ● Use the ORDER BY keywords to ensure that the records are returned in the expected order. How to execute testing: Apex
  • 16. Not assume that record IDs are in sequential order Set Up Test Data Document your test Execute individual tests When writing Apex test classes Record IDs are not created in ascending order unless you insert multiple records with the same request. For example, if you create an account A, and receive the ID 001D000000IEEmT, then create account B, the ID of account B may, or may not be sequentially higher. Create the necessary data in test classes, so the tests don’t have to rely on data in a particular organization. Create all test data before calling the Test.startTest method. Since tests don't commit, you don't have to delete any data. Write comments stating not only what is supposed to be tested, but the assumptions the tester made about the data, the expected outcome, and so on. Test the classes in your application individually. Never test your entire application in a single test.
  • 17. Best Practices for Apex Parallel Test Execution Tests that are started from the Salesforce user interface (including the Developer Console) run in parallel. Parallel test execution can speed up test run time. Sometimes, parallel test execution results in data contention issues, and you can turn off parallel execution in those cases. In particular, data contention issues and UNABLE_TO_LOCK_ROW errors can occur in the following cases: ● When tests update the same records at the same time. Updating the same records typically occurs when tests don’t create their own data and turn off data isolation to access the organization’s data. ● When a deadlock occurs in tests that are running in parallel and that try to create records with duplicate index field values. A deadlock occurs when two running tests are waiting for each other to roll back data. Such a wait can happen if two tests insert records with the same unique index field values in different orders.
  • 18. Is it too early to start thinking about testing?
  • 19. Test Driven Development Methodology 1. Write a user story and its acceptance criteria 2. Write a Test 3. Run the Test 4. Write Minimal Code/ execute the smallest configuration 5. Run All Tests 6. Refactor Code / Configuration 7. Repeat
  • 20. Benefits of Test Driven Development 1. Increased Test Coverage 2. Improved Code Quality 3. Faster Debugging 4. Faster Feedback Loop 5. Design Focus
  • 21. Where to test ? Unit (dev) Integration (partial) System (full) Penetration (partial) Unit testing are executed by the administrator or developer. It aims to double-check the new feature and can be done in the environment where the feature has been created (Dev Sandbox) Integration testing aims to double how the new features behave with other systems component. It requires connectivity to other systems. These “external“ systems may require to access or create data. This is why even if some testing can be done in a dev sandbox, using a partial sandbox makes sense. Penetration testing must be executed on an environment as close as possible from production. It means exposition to the outside, connectivity and data availability should replicate production. Some testing can be done in development environment but most of it should be done in partial or full sandbox. System testing is the last phase of testing. It’s not reduce to it but contains load testing and User Acceptance Testing (UAT). These two testing type require to use or create data. As such a partial of full sandbox is necessary
  • 23. Next event Winter ’25 French gathering 2 octobre 2024 à partir de 18H30 Cloudity - Tour Coeur Défense