Presentation on theme: "Proposed Test Strategy. Proposed Test Strategy – process flow."— Presentation transcript:
Proposed Test Strategy
Proposed Test Strategy – process flow
Acceptance Test and Unit Test Relationship
Acceptance Test and Unit Test detailed relationship feature file (BDD) unit test (TDD) Image credit: Scott W. Ambler
Test Strategy – More Detail
Test Approach UnitAcceptance criteria test System Integration Manual / Exploratory Demo ApproachAutomated (TDD) Automated (BDD) AutomatedManual ToolsJunit Mockito Cucumber selenium Mockito Cucumber SOAPUI Fitnesse Selenium Manual Manual EnvironmentCI (TDD)CI (BDD)PreRelease1 Prerelease2 Notes(1)May include Regression Testing Includes Regression Testing May include Regression Testing Notes(2)CI is continuous Integration area this is where all the systems come together
Common Vision ItemVision AgileShared ownership Testing is embedded in teams Functional deliverables Flexible, automated approach AutomationFlexible, designed with change in mind Software is tested continuously Prioritisation on test failure resolution ExploratoryTests areas that were not previously covered Test-First (Develop later)Acceptance tests are designed and drafted in advance of Development & Unit Test creation Requirements directedAcceptance testing for user stories Acceptance tests have traceability Defect resolutionAddress immediately in a sprint Create spike/user story to capture defects that cross sprints/ involve 3 rd party systems Only capture live defects (else fix in sprint)
Testing levels defined LevelDefinition UnitUnit / Code level testing allows the implementation of the solution to be tested. This is at a low level and checks classes and methods. This is testing 'How' the item has been done. AcceptanceAcceptance is testing the item at a business level. The collection of these tests should be centred around a particular slice/feature, e.g. creating an iso file. This level will use test frameworks and stubs/mocks of any external systems or sections of the implementation. This is testing 'Why' the item has been done. System IntegrationSystem Integration tests that, when we are connected with any other systems or sections of the implementation, the functionality we have delivered works and complements the other components/features.
Testing levels defined - continued LevelDefinition RegressionRegression testing will be considered as mandatory at System Integration for each build/release, but should also be considered at Acceptance level and run on an adhoc bases to make sure new builds are not breaking any items that have been delivered previously or concurrently. ExploratoryTesting of areas not previously covered.
Continuous integration and automated deployment ItemTools CIJenkins, SVN, GIT, MAVEN, Cucumber-JVM, RSpec Automated deploymentPuppet, ServerSpec, Rspec-puppet, Chef itemdescription PuppetPuppet Enterprise is IT automation software that gives system administrators the power to easily automate repetitive tasks, quickly deploy critical applications, and proactively manage infrastructure, on-premises or in the cloud. ServerSpecServerSpec tests a servers' actual state through SSH access Rspec-puppetunit Tests of puppet (uses Ruby code)