SlideShare a Scribd company logo
CRAFTING
CONTINUOUSLY
EVOLVING TEST
STRATEGY FOR
TESTING MICRO
SERVICES
AUTHOR : MAYUR CHITNIS
AUTHOR CODE – 045
AMDOCS , PUNE
DESIGNATION : SW TEST
SPECIALIST
SUMMARY
Title: Crafting Continuously Evolving Test Strategy for Testing Micro Services
Micro Service architecture offers you the advantages of breaking your business logic into multiple
services. With micro services architecture, business can aim faster product development with the help of
multiple parallel dev teams. On the other hand, shifting to ever evolving micro service architecture means
you need to adopt new development and test strategies. You test strategy plays very important role in
quality as well as the time to market of software.
What is importance of test craftmanship for testing Micro Services?
Test Craftmanship for QA, testing Micro Services is like being caddy for golfer.
In Micro Service world, QA’s main job comprises, is to prevent defects instead find them in higher
environment than dev environments. Test case design plays vital role in this case. After test case design,
which test case will come in which test layer (Unit, Micro Service, Contract etc.) comes as part of your
test strategy. Foundation of your test strategy is our mocking strategy. Mocks are of type: stubs, mocks,
virtual services. Which will be used where is another important aspect.
Test Design, Test strategy, Mocking Strategy are all inter linked. They are together in the journey of
product development. And their driver for this journey is test craftmanship.
Smart Test Case Design
Intelligent and Smart test case design of Micro Services testing involves very detailed and discipline
effort. While designing test case, we need to decide the type of test it will be.
Test strategy
After test case design, test strategy comes into picture. Quality of our testing lie on the strategy that we
have adopted.
Mocking Strategy
Mocking Strategy decides time to market of software. Efficient mocking strategy avoids duplicate effort in
testing same test case again and again. Selecting type of Mock, preparing test data for it, using it for test
(such as unit / component / integration etc) and who will be responsible for it, are all very important
aspects.
Test case design, test strategy and mocking strategy exhibit the quality of software product. And defines
how software development can be maintained in future.
Every software has something unique in its testing style. Also, every QA has his/her own unique way of
testing. Ultimately, testing is an art. To attain the certain level of test craftmanship, an individual should
work for considerable time on given product test development. Also, his/her contribution should be
towards improving quality and time to market of software.
Test solution architect can help his/her team gaining test craftmanship at individual level. Test solution
architects are those who are not just technology focused but they are responsible for building QA
processes. Test solution architect is our CAPATAIN of the test craftman-SHIP.
Test Craftmanship in testing Micro Services is ever evolving process and it should be evaluated time to
time.
Agility is about building the right thing,
Craftsmanship is about building the
thing right
CRAFT ,
CRAFTMANSHIP
AND TEST
CRAFTMANSHIP
craft
an activity involving skill in making
things by hand
Craftsmanship
skill in a particular craft
Test Craftmanship
Building process to test Software
with highly skilled professionals ..
“The golden rule: can you make a change to a
service and deploy it by itself without
changing anything else?”
“IF YOU ARE SELFISH… THEN YOU
SHOULD MAKE PERSON-LESS API .”
TEST CRAFTMANSHIP FOR
‘TESTWARE’
In any software project , most important deliverable is Software;
But,
Tests are the single most effective way of documenting business
requirements
And,
In the world of Micro Services , everyone is fan of ‘Shift-Left’ Practice
Where ,
Test Automation is back-bone of any ‘Shift-Left’ Practice
Also,
No one writes tests to test automated tests written
So,
For Continuous Integrated and Continuous Delivery , Test Craftmanship
plays vital role , to build ‘Testware’ which is robust , fast and has well
covered functional tests.
CRAFTING YOUR CODE ? “FOCUS ON WHAT
ARE YOU DOING INSTEAD WHY YOU DOING
IT”
Domain Specific
Language – Easy to
read
Less Complex –
Easy to maintain
No hard coded test
data – makes test
repeatable , crisp
and clear
Relevant assertions
– Write should &
expect methods,
conditional and
guard asserts
Less Test code –
Less test failures.
Write test names
as a process.
DON’T WRITE TEST FOR COMPILER ..
Test without DSL
import applicationDriver
import applicationClicker
import AssertapplicationDriver.create()
theWindow =
applicationDriver.getWindow("Welcome
Screen")
buttonResult =
applicationClicker.leftClickOnButton(theWin
dow, "theButtonName")
applicationDriver.close()Assert(buttonResult
).isNotEmpty()
Test with DSL
import dsl
import theWindow
import AsserttheWindow {
perform leftClick on theButton
clickResult = getResult()
Assert(clickResult).isNotEmpty()
NO CONDITIONAL ASSERTS PLS ..
Avoid conditional Asserts ..
@Test public void test()
{
if (systemIsInStateA()) {
assertThat(system,
shouldPerformInWay(X));
} else {
assertThat(system,
shouldPerformInWay(Y));
} }
Use Test Specific Assert
Statements
@Test public void testStateA()
{
assertThat(system, shouldPerformInWay(X));
}
@Test public void testStateB()
{
assertThat(system, shouldPerformInWay(Y));
}
DON’T HARD CODE YOUR TEST DATA ..
Hard coded test data ..
public function
testGetTranslationFileTimestamp()
{
$this->fileManagerMock->expects($this-
>once())
->method('getTranslationFileTimestamp')
->willReturn(1445736974);
$this->assertEquals(1445736974, $this-
>model->getTranslationFileTimestamp());
}
Instead Parameterized it ..
public function testGetTranslationFileTimestamp()
{
$translationFileTimestamp = 1445736974;
$this->fileManagerMock->expects($this->once())
->method('getTranslationFileTimestamp')
->willReturn($translationFileTimestamp);
$this->assertEquals($translationFileTimestamp,
$this->model->getTranslationFileTimestamp());
}
TEST TOOL ..
“FAST, GOOD,
CHEAP: PICK ANY
TWO.”
At one side you have your test
strategy and at other side you list of
tools to choose one test tool from it.
Tool selection should be from the
perspective of Functional and Non-
functional both.
Tool preference also depends on type
of test
“IN
TIME OF
TEST ,
FAMILY IS
BEST …”
• Tool preference also depends on type of test.
• Such as ..
• Component test aka. Service level test will look for tool
• Where test can be written in tear down approach
• Which has easy integration with external components such
as DB , Kafka
• Where external dependencies can be mocked , stubs can
be integrated easily
• Where QA can write human readable script from business
user point of view
• Contract test aka. Integration test will look for tool
• Where test can be written from consumer and producer
point of view.
• Where tests can be easily shared between consumer
and producer service.
• Where service virtualization is available in built
0
4
2
0.3
0
0
0.5
2
4
0
PLAN & DESIGN DEVELOP & BUILD TEST DEPLOY & RELEASE MONITOR & ANALYZE
Attention
To
Quality
Built in Quality
Shift Left Traditional
ULTIMATE GOAL : SHIFT LEFT
I AM SOFTWARE TEST
DEVELOPER
Hi, I am Martin. I am SW Test Developer.
My job is to prevent bug before build gets
deployed in higher environments.
I do write maintainable test ware, so that my
fellow test developers can happily make
additions to test.
EVOLUTION OF SW
TEST DEVELOPER
GOAL OF SW
TEST
DEVELOPER
Knowledge : Understand tools and
techniques , use them wisely.
Skill : Ability to apply one’s scientific and
artistic knowledge
Diligence : Put your constant efforts and
time to achieve quality output. Craftsman
possess ability to balance between need
for quality and need for speed.
Judgement : Craftsman combines
experience , common sense and
institution to create valuable product.
REFERENCES
• The Software Craftsman By Sandro Mancuso
• Testing Java Microservices: Using Arquillian,
Hoverfly, AssertJ, JUnit, Selenium, and Mockito
• The Art of Unit Testing, 2nd Edition
• https://testcraftsmanship.com/#about
ABOUT AUTHOR
• Hard core software QA at heart. Over 15 plus
years of experience in the software industry.
Initially started my career as software
developer, later moved to software testing.
Currently working as a Software Test Specialist
at Amdocs development center, Pune. For the
last 8 years , I have been working as an API
test engineer for developing products in the
Payment industry.
• Enjoy being an innovation enthusiast. Won
several innovation contests at
organizational level. Always ready to bring new
ideas and innovation in day to day work.
• I am responsible for driving all QA activities
and implementing QA best practices at my
project level. Have delivered sessions on Micro
services testing at my organization level.
• I strongly believe that learning is a
continuous process. Always ready to learn new
things and contribute from my side in the area
of Micro services , cloud computing, devops,
THANK YOU
!!

More Related Content

Similar to #ATAGTR2021 Presentation - "Test Craftmanship: Crafting Continuously Evolving Test Strategy for Testing Micro Services" by Mayur Chitnis

Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature Delivery
Optimizely
 
Milon Mondal_resume
Milon Mondal_resumeMilon Mondal_resume
Milon Mondal_resume
Milon Mondal
 
Software Testing Online Course
Software Testing Online CourseSoftware Testing Online Course
Software Testing Online Course
jaymicrosoftva
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
QA or the Highway
 
Oak testing profile2013
Oak testing profile2013Oak testing profile2013
Oak testing profile2013
OAK Systems Pvt Ltd
 
Agile testing
Agile testingAgile testing
Agile testing
Raj Indugula
 
Online Software Testing Course
Online Software Testing CourseOnline Software Testing Course
Online Software Testing Course
jaymicrosoftva
 
Quality Assurance Process
Quality Assurance ProcessQuality Assurance Process
Quality Assurance Process
Bala Subramanian
 
satish_Resume
satish_Resumesatish_Resume
CV_SyedShoeb_2015
CV_SyedShoeb_2015CV_SyedShoeb_2015
CV_SyedShoeb_2015
Syed Shoeb
 
Avnish
AvnishAvnish
Avnish
Avnish Dubey
 
Software Test Engineer with 3.6 years of experience
Software Test Engineer with 3.6 years of experienceSoftware Test Engineer with 3.6 years of experience
Software Test Engineer with 3.6 years of experience
vijaya lakshmi
 
OMSOFTWARE NEW Service
OMSOFTWARE NEW ServiceOMSOFTWARE NEW Service
OMSOFTWARE NEW Service
OM SOFTWARE PVT LTD
 
NICKESHANIXONRESUME
NICKESHANIXONRESUMENICKESHANIXONRESUME
NICKESHANIXONRESUME
Nickesha Nixon
 
Software testing as a service s taa-s
Software testing as a service   s taa-sSoftware testing as a service   s taa-s
Software testing as a service s taa-s
Rahul Kumar
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
Dennis Popov
 
Arun resume
Arun resumeArun resume
Arun resume
ArunkumarM125
 
But Did You Test It
But Did You Test ItBut Did You Test It
But Did You Test It
Ruth Blakely
 
Top Regression Testing Tools_ A Comprehensive Overview for 2024.pdf
Top Regression Testing Tools_ A Comprehensive Overview for 2024.pdfTop Regression Testing Tools_ A Comprehensive Overview for 2024.pdf
Top Regression Testing Tools_ A Comprehensive Overview for 2024.pdf
kalichargn70th171
 
Deepak_Tallur_2016_CV
Deepak_Tallur_2016_CVDeepak_Tallur_2016_CV
Deepak_Tallur_2016_CV
Deepak Tallur
 

Similar to #ATAGTR2021 Presentation - "Test Craftmanship: Crafting Continuously Evolving Test Strategy for Testing Micro Services" by Mayur Chitnis (20)

Failure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature DeliveryFailure is an Option: Scaling Resilient Feature Delivery
Failure is an Option: Scaling Resilient Feature Delivery
 
Milon Mondal_resume
Milon Mondal_resumeMilon Mondal_resume
Milon Mondal_resume
 
Software Testing Online Course
Software Testing Online CourseSoftware Testing Online Course
Software Testing Online Course
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
 
Oak testing profile2013
Oak testing profile2013Oak testing profile2013
Oak testing profile2013
 
Agile testing
Agile testingAgile testing
Agile testing
 
Online Software Testing Course
Online Software Testing CourseOnline Software Testing Course
Online Software Testing Course
 
Quality Assurance Process
Quality Assurance ProcessQuality Assurance Process
Quality Assurance Process
 
satish_Resume
satish_Resumesatish_Resume
satish_Resume
 
CV_SyedShoeb_2015
CV_SyedShoeb_2015CV_SyedShoeb_2015
CV_SyedShoeb_2015
 
Avnish
AvnishAvnish
Avnish
 
Software Test Engineer with 3.6 years of experience
Software Test Engineer with 3.6 years of experienceSoftware Test Engineer with 3.6 years of experience
Software Test Engineer with 3.6 years of experience
 
OMSOFTWARE NEW Service
OMSOFTWARE NEW ServiceOMSOFTWARE NEW Service
OMSOFTWARE NEW Service
 
NICKESHANIXONRESUME
NICKESHANIXONRESUMENICKESHANIXONRESUME
NICKESHANIXONRESUME
 
Software testing as a service s taa-s
Software testing as a service   s taa-sSoftware testing as a service   s taa-s
Software testing as a service s taa-s
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
 
Arun resume
Arun resumeArun resume
Arun resume
 
But Did You Test It
But Did You Test ItBut Did You Test It
But Did You Test It
 
Top Regression Testing Tools_ A Comprehensive Overview for 2024.pdf
Top Regression Testing Tools_ A Comprehensive Overview for 2024.pdfTop Regression Testing Tools_ A Comprehensive Overview for 2024.pdf
Top Regression Testing Tools_ A Comprehensive Overview for 2024.pdf
 
Deepak_Tallur_2016_CV
Deepak_Tallur_2016_CVDeepak_Tallur_2016_CV
Deepak_Tallur_2016_CV
 

More from Agile Testing Alliance

#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
Agile Testing Alliance
 
#Interactive Session by Ajay Balamurugadas, "Where Are The Real Testers In T...
#Interactive Session by  Ajay Balamurugadas, "Where Are The Real Testers In T...#Interactive Session by  Ajay Balamurugadas, "Where Are The Real Testers In T...
#Interactive Session by Ajay Balamurugadas, "Where Are The Real Testers In T...
Agile Testing Alliance
 
#Interactive Session by Jishnu Nambiar and Mayur Ovhal, "Monitoring Web Per...
#Interactive Session by  Jishnu Nambiar and  Mayur Ovhal, "Monitoring Web Per...#Interactive Session by  Jishnu Nambiar and  Mayur Ovhal, "Monitoring Web Per...
#Interactive Session by Jishnu Nambiar and Mayur Ovhal, "Monitoring Web Per...
Agile Testing Alliance
 
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
Agile Testing Alliance
 
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
Agile Testing Alliance
 
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
Agile Testing Alliance
 
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
Agile Testing Alliance
 
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
Agile Testing Alliance
 
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
Agile Testing Alliance
 
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
Agile Testing Alliance
 
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
Agile Testing Alliance
 
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
Agile Testing Alliance
 
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
Agile Testing Alliance
 
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
Agile Testing Alliance
 
#Interactive Session by Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
#Interactive Session by  Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...#Interactive Session by  Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
#Interactive Session by Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
Agile Testing Alliance
 
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
Agile Testing Alliance
 
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
Agile Testing Alliance
 
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
Agile Testing Alliance
 
#Interactive Session by Aniket Diwakar Kadukar and Padimiti Vaidik Eswar Dat...
#Interactive Session by Aniket Diwakar Kadukar and  Padimiti Vaidik Eswar Dat...#Interactive Session by Aniket Diwakar Kadukar and  Padimiti Vaidik Eswar Dat...
#Interactive Session by Aniket Diwakar Kadukar and Padimiti Vaidik Eswar Dat...
Agile Testing Alliance
 
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...
Agile Testing Alliance
 

More from Agile Testing Alliance (20)

#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
#Interactive Session by Anindita Rath and Mahathee Dandibhotla, "From Good to...
 
#Interactive Session by Ajay Balamurugadas, "Where Are The Real Testers In T...
#Interactive Session by  Ajay Balamurugadas, "Where Are The Real Testers In T...#Interactive Session by  Ajay Balamurugadas, "Where Are The Real Testers In T...
#Interactive Session by Ajay Balamurugadas, "Where Are The Real Testers In T...
 
#Interactive Session by Jishnu Nambiar and Mayur Ovhal, "Monitoring Web Per...
#Interactive Session by  Jishnu Nambiar and  Mayur Ovhal, "Monitoring Web Per...#Interactive Session by  Jishnu Nambiar and  Mayur Ovhal, "Monitoring Web Per...
#Interactive Session by Jishnu Nambiar and Mayur Ovhal, "Monitoring Web Per...
 
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
#Interactive Session by Pradipta Biswas and Sucheta Saurabh Chitale, "Navigat...
 
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
#Interactive Session by Apoorva Ram, "The Art of Storytelling for Testers" at...
 
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
#Interactive Session by Nikhil Jain, "Catch All Mail With Graph" at #ATAGTR2023.
 
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
#Interactive Session by Ashok Kumar S, "Test Data the key to robust test cove...
 
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
#Interactive Session by Seema Kohli, "Test Leadership in the Era of Artificia...
 
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
 
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
#Interactive Session by Srithanga Aishvarya T, "Machine Learning Model to aut...
 
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
#Interactive Session by Kirti Ranjan Satapathy and Nandini K, "Elements of Qu...
 
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
#Interactive Session by Sudhir Upadhyay and Ashish Kumar, "Strengthening Test...
 
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
#Interactive Session by Sayan Deb Kundu, "Testing Gen AI Applications" at #AT...
 
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
#Interactive Session by Dinesh Boravke, "Zero Defects – Myth or Reality" at #...
 
#Interactive Session by Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
#Interactive Session by  Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...#Interactive Session by  Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
#Interactive Session by Saby Saurabh Bhardwaj, "Redefine Quality Assurance –...
 
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
#Keynote Session by Sanjay Kumar, "Innovation Inspired Testing!!" at #ATAGTR2...
 
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
#Keynote Session by Schalk Cronje, "Don’t Containerize me" at #ATAGTR2023.
 
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
#Interactive Session by Chidambaram Vetrivel and Venkatesh Belde, "Revolution...
 
#Interactive Session by Aniket Diwakar Kadukar and Padimiti Vaidik Eswar Dat...
#Interactive Session by Aniket Diwakar Kadukar and  Padimiti Vaidik Eswar Dat...#Interactive Session by Aniket Diwakar Kadukar and  Padimiti Vaidik Eswar Dat...
#Interactive Session by Aniket Diwakar Kadukar and Padimiti Vaidik Eswar Dat...
 
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...
#Interactive Session by Vivek Patle and Jahnavi Umarji, "Empowering Functiona...
 

Recently uploaded

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
jpupo2018
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 

Recently uploaded (20)

How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Project Management Semester Long Project - Acuity
Project Management Semester Long Project - AcuityProject Management Semester Long Project - Acuity
Project Management Semester Long Project - Acuity
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 

#ATAGTR2021 Presentation - "Test Craftmanship: Crafting Continuously Evolving Test Strategy for Testing Micro Services" by Mayur Chitnis

  • 1. CRAFTING CONTINUOUSLY EVOLVING TEST STRATEGY FOR TESTING MICRO SERVICES AUTHOR : MAYUR CHITNIS AUTHOR CODE – 045 AMDOCS , PUNE DESIGNATION : SW TEST SPECIALIST
  • 2. SUMMARY Title: Crafting Continuously Evolving Test Strategy for Testing Micro Services Micro Service architecture offers you the advantages of breaking your business logic into multiple services. With micro services architecture, business can aim faster product development with the help of multiple parallel dev teams. On the other hand, shifting to ever evolving micro service architecture means you need to adopt new development and test strategies. You test strategy plays very important role in quality as well as the time to market of software. What is importance of test craftmanship for testing Micro Services? Test Craftmanship for QA, testing Micro Services is like being caddy for golfer. In Micro Service world, QA’s main job comprises, is to prevent defects instead find them in higher environment than dev environments. Test case design plays vital role in this case. After test case design, which test case will come in which test layer (Unit, Micro Service, Contract etc.) comes as part of your test strategy. Foundation of your test strategy is our mocking strategy. Mocks are of type: stubs, mocks, virtual services. Which will be used where is another important aspect. Test Design, Test strategy, Mocking Strategy are all inter linked. They are together in the journey of product development. And their driver for this journey is test craftmanship. Smart Test Case Design Intelligent and Smart test case design of Micro Services testing involves very detailed and discipline effort. While designing test case, we need to decide the type of test it will be. Test strategy After test case design, test strategy comes into picture. Quality of our testing lie on the strategy that we have adopted. Mocking Strategy Mocking Strategy decides time to market of software. Efficient mocking strategy avoids duplicate effort in testing same test case again and again. Selecting type of Mock, preparing test data for it, using it for test (such as unit / component / integration etc) and who will be responsible for it, are all very important aspects. Test case design, test strategy and mocking strategy exhibit the quality of software product. And defines how software development can be maintained in future. Every software has something unique in its testing style. Also, every QA has his/her own unique way of testing. Ultimately, testing is an art. To attain the certain level of test craftmanship, an individual should work for considerable time on given product test development. Also, his/her contribution should be towards improving quality and time to market of software. Test solution architect can help his/her team gaining test craftmanship at individual level. Test solution architects are those who are not just technology focused but they are responsible for building QA processes. Test solution architect is our CAPATAIN of the test craftman-SHIP. Test Craftmanship in testing Micro Services is ever evolving process and it should be evaluated time to time.
  • 3. Agility is about building the right thing, Craftsmanship is about building the thing right CRAFT , CRAFTMANSHIP AND TEST CRAFTMANSHIP craft an activity involving skill in making things by hand Craftsmanship skill in a particular craft Test Craftmanship Building process to test Software with highly skilled professionals ..
  • 4. “The golden rule: can you make a change to a service and deploy it by itself without changing anything else?”
  • 5.
  • 6.
  • 7. “IF YOU ARE SELFISH… THEN YOU SHOULD MAKE PERSON-LESS API .”
  • 8. TEST CRAFTMANSHIP FOR ‘TESTWARE’ In any software project , most important deliverable is Software; But, Tests are the single most effective way of documenting business requirements And, In the world of Micro Services , everyone is fan of ‘Shift-Left’ Practice Where , Test Automation is back-bone of any ‘Shift-Left’ Practice Also, No one writes tests to test automated tests written So, For Continuous Integrated and Continuous Delivery , Test Craftmanship plays vital role , to build ‘Testware’ which is robust , fast and has well covered functional tests.
  • 9. CRAFTING YOUR CODE ? “FOCUS ON WHAT ARE YOU DOING INSTEAD WHY YOU DOING IT” Domain Specific Language – Easy to read Less Complex – Easy to maintain No hard coded test data – makes test repeatable , crisp and clear Relevant assertions – Write should & expect methods, conditional and guard asserts Less Test code – Less test failures. Write test names as a process.
  • 10. DON’T WRITE TEST FOR COMPILER .. Test without DSL import applicationDriver import applicationClicker import AssertapplicationDriver.create() theWindow = applicationDriver.getWindow("Welcome Screen") buttonResult = applicationClicker.leftClickOnButton(theWin dow, "theButtonName") applicationDriver.close()Assert(buttonResult ).isNotEmpty() Test with DSL import dsl import theWindow import AsserttheWindow { perform leftClick on theButton clickResult = getResult() Assert(clickResult).isNotEmpty()
  • 11. NO CONDITIONAL ASSERTS PLS .. Avoid conditional Asserts .. @Test public void test() { if (systemIsInStateA()) { assertThat(system, shouldPerformInWay(X)); } else { assertThat(system, shouldPerformInWay(Y)); } } Use Test Specific Assert Statements @Test public void testStateA() { assertThat(system, shouldPerformInWay(X)); } @Test public void testStateB() { assertThat(system, shouldPerformInWay(Y)); }
  • 12. DON’T HARD CODE YOUR TEST DATA .. Hard coded test data .. public function testGetTranslationFileTimestamp() { $this->fileManagerMock->expects($this- >once()) ->method('getTranslationFileTimestamp') ->willReturn(1445736974); $this->assertEquals(1445736974, $this- >model->getTranslationFileTimestamp()); } Instead Parameterized it .. public function testGetTranslationFileTimestamp() { $translationFileTimestamp = 1445736974; $this->fileManagerMock->expects($this->once()) ->method('getTranslationFileTimestamp') ->willReturn($translationFileTimestamp); $this->assertEquals($translationFileTimestamp, $this->model->getTranslationFileTimestamp()); }
  • 13. TEST TOOL .. “FAST, GOOD, CHEAP: PICK ANY TWO.” At one side you have your test strategy and at other side you list of tools to choose one test tool from it. Tool selection should be from the perspective of Functional and Non- functional both. Tool preference also depends on type of test
  • 14. “IN TIME OF TEST , FAMILY IS BEST …” • Tool preference also depends on type of test. • Such as .. • Component test aka. Service level test will look for tool • Where test can be written in tear down approach • Which has easy integration with external components such as DB , Kafka • Where external dependencies can be mocked , stubs can be integrated easily • Where QA can write human readable script from business user point of view • Contract test aka. Integration test will look for tool • Where test can be written from consumer and producer point of view. • Where tests can be easily shared between consumer and producer service. • Where service virtualization is available in built
  • 15. 0 4 2 0.3 0 0 0.5 2 4 0 PLAN & DESIGN DEVELOP & BUILD TEST DEPLOY & RELEASE MONITOR & ANALYZE Attention To Quality Built in Quality Shift Left Traditional ULTIMATE GOAL : SHIFT LEFT
  • 16. I AM SOFTWARE TEST DEVELOPER Hi, I am Martin. I am SW Test Developer. My job is to prevent bug before build gets deployed in higher environments. I do write maintainable test ware, so that my fellow test developers can happily make additions to test.
  • 17. EVOLUTION OF SW TEST DEVELOPER
  • 18.
  • 19. GOAL OF SW TEST DEVELOPER Knowledge : Understand tools and techniques , use them wisely. Skill : Ability to apply one’s scientific and artistic knowledge Diligence : Put your constant efforts and time to achieve quality output. Craftsman possess ability to balance between need for quality and need for speed. Judgement : Craftsman combines experience , common sense and institution to create valuable product.
  • 20. REFERENCES • The Software Craftsman By Sandro Mancuso • Testing Java Microservices: Using Arquillian, Hoverfly, AssertJ, JUnit, Selenium, and Mockito • The Art of Unit Testing, 2nd Edition • https://testcraftsmanship.com/#about
  • 21. ABOUT AUTHOR • Hard core software QA at heart. Over 15 plus years of experience in the software industry. Initially started my career as software developer, later moved to software testing. Currently working as a Software Test Specialist at Amdocs development center, Pune. For the last 8 years , I have been working as an API test engineer for developing products in the Payment industry. • Enjoy being an innovation enthusiast. Won several innovation contests at organizational level. Always ready to bring new ideas and innovation in day to day work. • I am responsible for driving all QA activities and implementing QA best practices at my project level. Have delivered sessions on Micro services testing at my organization level. • I strongly believe that learning is a continuous process. Always ready to learn new things and contribute from my side in the area of Micro services , cloud computing, devops,