Software Development Model 0 The development process adopted will depend on the project aims and goal 0 There are numerous model have been developed to achieve different required objectives 0 The life cycle model that is adopted for a project will have a big impact on the testing that is carried out 0 Testing are highly related to software development activities 0 Testing is organized to fit the development life cycle Software Development Model 0 In every development life cycle, a part of testing is focused on verification testing and validation testing 0 Verification testing is concerned with evaluating a work product, component or system to determine whether it meets the requirement set 0 Validation testing is concerned with evaluating a work product, component or system to determine whether it meets the user needs and requirements Waterfall Model Need, wish, policy, law User Requirements Systems Requirements Global Design Detail Design Implementation Testing Testing at the End V-Model 0 Was developed to address some of the problems experienced using the traditional waterfall: 0 Defects were being found too late 0 The V-model provides guidance that testing needs to begin as early as possible 0 Testing – in parallel with development V-Model 0 Common V-model uses four test levels 0 Component testing – search defects & verifies the functioning of software components (module, programs, objects, classes) 0 Integration testing –tests interface between components, interface with OS, file systems and hardware 0 System testing – concerned with the behavior of the whole system 0 Acceptance testing – validation testing with respect to user needs, requirements, business process V-Model Need, wish, policy, law Operational systems Preparation Acceptance Test User Requirements Preparation Systems Test Systems Requirements Global Design System Test Execution Preparation Integration Test Detail Design Acceptance Test Execution Integration Test Execution Component Test Execution Implementation Iterative Life Cycle Implement Test Build Develop Define Phase 3 Implement Test Build Define Implement Test Build Develop Define Develop Phase 2 Phase 1 Delivery is divided into increments or builds Subsequence increments will need testing for new functionality, regression testing of the existing functionality, and integration testing of both new and existing parts Iterative Life Cycle Example 0 Rapid Application Development (RAD) – parallel development Function 1 Define Develop Build Test Function 2 Define Develop Build Test Function 3 Define Develop Build Test Function 4 Define Develop Build Test Iterative Life Cycle Example: Agile Development 0 Currently one of the most well-known development life- cycle model & human friendly 0 Characteristic: 0 Promotes the generation of business stories to define 0 0 0 0 functionality Promotes pair programming and shared code ownership State component test scripts shall be written before the code is written States that integration and testing of code shall happen several times States that we always implement the simplest solution to meet today’s problem Testing within a Life Cycle Model 0 Which ever life cycle model is being used, there are several characteristic of good testing: 0 Every development activity, there is a corresponding testing activity 0 Each test level has test objectives specific to that level 0 The analysis and design of tests for a given test level should begin during the corresponding development activity 0 Tester should be involved in reviewing documents as soon as drafts are available in the development cycle Test Levels: Component Testing 0 Also known as unit, module and program testing 0 Searches for defects and verifies the functioning of software 0 May be done in isolation from the rest of systems 0 Most often stubs and drivers are used to replace missing software 0 May include testing of functionality and specific nonfunctionality characteristic 0 Test cases are derived from work products – software design, data model 0 Occurs with access to the code being tested Test Levels: Component Testing Component A A Driver Component B Stub B Test Levels: Integration Testing 0 Test interfaces between components, interaction between different parts of systems 0 There are may be more than one level of integration testing 0 Greater the scope of integration – the more difficult to isolate failures 0 Approaches: 0 Big-bang 0 Incremental-testing Test Levels: Systems Testing 0 Concerned with the behavior of the whole system/product as defined by the scope of development project or product 0 Tests based on risks or requirement specification, business processes, use cases or high level descriptions of systems behavior 0 Should investigate both functional and non-functional requirements 0 Requires controlled test environment