Continuous Testing The new must-have skill of
tomorrow's tech leaders
Nadav YeheskelAgents Team Lead @ SeaLights
AT&T (Senior Developer, Instructor, Web Expert)Any Technologies (Founder)John Bryce (Instructor)SRL & CV Trust (Developer, Tech Lead)
Agenda
The transition to Agile and Devops
Understand the changes that QA department is facing
What’s Continuous Testing and how tech leaders can
implement it
Learn about new metrics that you can use
Demo
The State of QA & DevOpsContinuous Delivery is becoming the de-facto standard
The Industry’s Reaction
Organizational People Skills Tools Practices Communication
Now that the hysteria has passed
The Future of QA
Continuous IntegrationHow we build software
Continuous DeploymentHow we deploy software
Continuous TestingHow we test software
Continuous Delivery
Continuous Testing to The Rescue
“Testing is a cross functional activity that involves the whole team, and should be done continuously from the
beginning of the project”
- Continuous Delivery, Jez Humble & Dave Farley
Continuous Delivery
Increase quality while increasing speed
CI + CT + CD
The Long: Leading a development team is no easy task. An effective Tech Lead establishes a technical vision with
the development team and works with developers to turn it into reality.
Tech Leader - Definition
The Short: A Tech Lead is a developer who is responsible for leading a development team.
Becoming a Continuous Testing Expert
● Master testing types and techniques● Identify which sections of the code should be tested and how● Set the culture of the team and train them (Ongoing)● Have tools and supporting processes
○ Collect & aggregate meaningful data○ Analyze the data and create insights○ Use the insights (internal processes)Rפ○
In order for a Tech Lead to become a Continuous Testing Expert, one should:
Automated Unit TestsAutomated Component TestsAutomated Integration Tests
Automated API Tests
Automated GUI Tests
Manual Based Testing
Testing Techniques and the Test Pyramid
Where you are today
What you think you need
Where you should be
"When you can measure what you are speaking about, and can express it in numbers, you know something about it." - Lord Kelvin
Understand what is causing quality to decrease when speed is increased
Data Collection
Understanding Your Test Quality
How do you measure end-to-end test quality?
Green is Not Enough
How do you know if tests were skipped or missed?
Quality Risks
How do you stop untested code changes from reaching production?
Centralized Quality Dashboard
How do you collect quality metrics across environments and tools?
Find / develop a solution for the identified root cause problems
Real Code Coverage
Unit Integration Functional UI API Exploratory
Our Technical Stack
1. Node.js, Java, .NET, JavaScript, and Python
2. Microservices architecture, Mongo DB
3. CI: Jenkins
4. SCM: Github
5. Test automation frameworks: Mocha, TestNG, JUnit, NUnit and Py.test
6. Infrastructure: AWS
7. CD: homegrown
Let’s see some Continuous Testing in Action...
Demo
Our Process
Our CI/CD Workflow1. Pull request
2. Build + unit test
3. Verify that all tests passed, no decrease in coverage, and no quality risks
4. Integration build
5. Setup and deploy build to integration lab (AWS)
6. Run integration tests
7. Verify that all tests passed, no decrease in coverage, and no quality risks
8. Ready for production » Deploy
Q&A
References
The Day the QA Department Diedhttps://www.infoq.com/articles/day-qa-dept-died
The Definition of a Tech Leadhttps://www.thekua.com/atwork/2014/11/the-definition-of-a-tech-lead/
Technical Leadership: The Often Overlooked Skills and Responsibilities of a Technical Team Leaderhttps://www.infoq.com/articles/technical-leadership-overseen
Diffy (Twitter’s API testing tool)https://blog.twitter.com/engineering/en_us/a/2015/diffy-testing-services-without-writing-tests.html
How Solid Are Your Tests - Mutation Testing by the awesome Dror Arazihttps://www.sealights.io/resources/solid-tests-mutation-testing-action-recording/