software quality in a modern development team...process quality “individuals and interactions....
TRANSCRIPT
![Page 1: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/1.jpg)
Software Quality in a Modern Development TeamPresented by Timothy Bauguess and Marty Lewis
![Page 2: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/2.jpg)
High-Quality SoftwareWho benefits?
• End users• Development• Stakeholders
![Page 3: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/3.jpg)
Components of Software Quality
Functional quality• Specifications• Few defects• User experience
Structural quality• Efficiency• Maintainability• Scalability• Security• Testability
![Page 4: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/4.jpg)
Process Quality
“Individuals and interactionsover processes and tools
Working softwareover comprehensive documentation
Customer collaborationover contract negotiation
Responding to changeover following a plan”
- The Agile Manifesto
![Page 5: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/5.jpg)
Agile Testing Practices• Continuous Integration
• Test the impact of your changes as they are committed
• Test-driven development
• Create the unit test before implementation
• Support tools
• Testing frameworks• Code review • Version control• Work tracking
![Page 6: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/6.jpg)
Why do we test?
![Page 7: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/7.jpg)
Iterate.Test.Deliver to end-users faster!
![Page 8: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/8.jpg)
Benefits of Rapid Development Iterations
![Page 9: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/9.jpg)
Test-Driven Development Paradigm
Write test
Write code for test
Run test
Optional refactoring
Run additional system tests
REPEAT UNTILPASSING
![Page 10: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/10.jpg)
Test-Driven Development Paradigm• Benefits
• High code coverage• Short cycle, highly compatible with Agile methodologies• Test is your spec• Bite-size tasks, focus on one code unit at a time
• Considerations• Spend time up front for requirement validation
• But Minimize rework• New, may be met with resistance to change• Developer focused
![Page 11: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/11.jpg)
Agile Development Methods• Behavior-driven development
• Domain-specific language
![Page 12: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/12.jpg)
Behavior-Driven Development
• Write tests using business readable
and domain-specific language
• Write code to satisfy the testing condition
• Refactor your code to standards.
![Page 13: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/13.jpg)
Agile Development Methods• Behavior-driven development
• Domain-specific language• Behavior-driven development
• Domain-specific language
• Feature-driven development
![Page 14: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/14.jpg)
Feature-Driven Development• Create a platform
independent model
• Build a feature list• <action> <result> <object>
• Construct a schedule
• Design by feature
• Build by feature
![Page 15: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/15.jpg)
Agile Development Methods• Behavior-driven development
• Domain-specific language
• Feature-driven development
• Behavior-driven development• Domain-specific language
• Feature-driven development
• Lean development
![Page 16: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/16.jpg)
Lean Development
• Eliminate waste / rework
• Amplify learning
• Decide as late as possible
• Deliver as quickly as possible
• Empower the team
• Build integrity
• See the whole
![Page 17: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/17.jpg)
Agile Development Methods• Behavior-driven development
• Domain-specific language
• Feature-driven development
• Lean development
• Behavior-driven development• Domain-specific language
• Feature-driven development
• Lean development
• Extreme programming
![Page 18: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/18.jpg)
Extreme Programming• Coding / Iteration
• Listening
• Unit Tests / Acceptance Tests
• Small Releases
![Page 19: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/19.jpg)
Agile Development Methods
• Behavior-driven development• Domain-specific language
• Feature-driven development
• Lean development
• Extreme programming
• Behavior-driven development• Domain-specific language
• Feature-driven development
• Lean development
• Extreme programming
• Scrum
![Page 20: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/20.jpg)
Scrum• Sprints
• Continuous Integration
• User stories
• Meetings• Sprint Planning• Daily Stand Up• Sprint Review• Sprint Retrospective
![Page 21: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/21.jpg)
User Stories• Small, manageable work items
• As an admin, I want to approve image uploads, so I can make sure they are appropriate
• Intended user• What the user wants• Why the user wants it
• Acceptance Criteria
• Story points• Velocity
![Page 22: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/22.jpg)
Testing Methodologies
White Box
BlackBox
![Page 23: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/23.jpg)
Testing Methodologies
• Testing as a developer• Testing individual units• Design according to parameters• Data domains well tested• Used to test algorithms
White Box
![Page 24: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/24.jpg)
Testing Methodologies
• Testing as a user• Internals are unknown• Based on output• Fully integrated• Does not test algorithms
BlackBox
![Page 25: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/25.jpg)
Testing Methodologies
White Box
Grey Box
BlackBox
![Page 26: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/26.jpg)
Unit Testing Overview• Tests individual units of code
• Typically white box testing
• Should be able to run in isolation from one another
• Aimed at covering all code paths
• Limited coverage of requirements
• Lowest resources required to maintain
![Page 27: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/27.jpg)
Unit Test Platforms (.NET)• NUnit
• xUnit.net
• MSTest – ships with Visual Studio!1. File New Project2. Write test3. Execute test
![Page 28: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/28.jpg)
Integration Testing Overview
• Tests integrated code units• Functional testing
• Typically black box testing
• Who should write integration tests?
• If UI testing is required, automate it!
![Page 29: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/29.jpg)
Integration Testing Variants
• Smoke testing
• System testing• Testing completely integrated system• Functionality of system as a whole• Test cases and data are used
• Acceptance testing• Purely functional requirements• Ideally, final testing before deployment• Real production data• Can be performed by end users
![Page 30: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/30.jpg)
Integration Test Platforms
• Selenium – web
• CodedUI – web, desktop
• Postman – web service / API
• TestComplete – web, desktop, mobile
• Appium – desktop, mobile
![Page 31: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/31.jpg)
Regression Testing
• Can be unit or integration tests
• Prevent regression of user-impacting issues
• Verify new changes meet previous requirements
• Always run before deploying to users
![Page 32: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/32.jpg)
Improving Our Process Quality
![Page 33: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/33.jpg)
Improving Our Process Quality• Azure DevOps
![Page 34: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/34.jpg)
Improving Our Process Quality• Test repeatability project
• Reliable, maintainable UI automation
• New tools• Agile methodology• VSCode / Visual Studio• Git Flow
![Page 35: Software Quality in a Modern Development Team...Process Quality “Individuals and interactions. over processes and tools Working software. over comprehensive documentation Customer](https://reader033.vdocuments.site/reader033/viewer/2022050118/5f4f15f5378ecc6f6059ba79/html5/thumbnails/35.jpg)
Thanks!Who has the first question?