Principles of Software Testing for Testers Module 1
- Slides: 29
Principles of Software Testing for Testers Module 1: Software Engineering Practices (Some things Testers should know about them)
Objectives w Identify some common software development problems. w Identify six software engineering practices for addressing common software development problems. w Discuss how a software engineering process provides supporting context for software engineering practices. Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 2
Module 1 Content Outline (Agenda) èSoftware development problems w Six software engineering practices w Supporting software engineering practices with process Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 3
Symptoms of Software Development Problems û User or business needs not met û Requirements churn û Modules don’t integrate û Hard to maintain û Late discovery of flaws û Poor quality or poor user experience û Poor performance under load û No coordinated team effort û Build-and-release issues Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 4
Trace Symptoms to Root Causes Needs not met Incorrect requirements Software Engineering Practices Develop Iteratively Requirements churn Ambiguous communications Manage Requirements Modules don’t fit Brittle architectures Hard to maintain Overwhelming Undetected complexity inconsistencies Undetected Insufficient testing inconsistencies Subjective assessment Insufficient testing Symptoms Late discovery Poor quality Poor performance Colliding developers Build-and-release Root Causes Subjective assessment Model Visually (UML) Continuously Verify Quality Waterfall development Uncontrolled change Insufficient automation Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved Use Component Architectures 5 Manage Change
Module 1 Content Outline (Agenda) w Software development problems èSix software engineering practices w Supporting software engineering practices with process Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 6
Practice 1: Develop Iteratively Software Engineering Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 7
Waterfall Development Characteristics Waterfall Process Requirements Analysis Design Code & Unit Test Integrate System Test Total Elapsed Time Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 8 w Delays confirmation of critical risk resolution w Measures progress by assessing work products that are poor predictors of time to completion w Delays and aggregates integration and testing w Precludes early deployment w Frequently results in major unplanned project extensions
Iterative Development Produces an Executable Analysis & Design Implementation Requireme nts Planning Manageme nt & Environme nt Evaluation Each iteration Deployment results in an executable release Initial Planning Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved Test 9
Risk Profiles Risk Waterfall Risk Reduction Iterative Risk Time Iterative development drives risks out early. Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 10
Practice 2: Manage Requirements Software Engineering Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 11
Manage Requirements Map of the Territory Problem Space Needs Tra cea Features Solution Space bil ity Software Requirements Tests Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved The Product To Be Built Design 12 User Docs
Concepts Use cases are a rich source for identifying test scenarios Actor An actor represents a person or another system that interacts with the system. A use case defines a sequence of actions a system performs that yields a result of observable value to an actor. Use Case Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 13
Practice 3: Use Component Architectures Software Engineering Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 14
Resilient Component Based Architectures w Resilient § Meets current and future requirements § Improves extensibility § Enables reuse § Encapsulates system dependencies w Component based § Reuse or customize components § Select from commercially available components § Evolve existing software incrementally Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 15
Purpose of a Component Based Architecture w Basis for reuse § Component reuse § Architecture reuse w Basis for project management § Planning § Staffing § Delivery Application specific Business specific w Intellectual control § Manage complexity § Maintain integrity Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved Componentbased Architecture with layers Middleware System software 16
Practice 4: Model Visually (UML) Software Engineering Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 17
Why Model Visually? w To help manage complexity § To capture both structure and behavior § To show system elements fit together § To hide or expose details as appropriate w To keep design and implementation consistent w To promote unambiguous communication § UML provides one language for all practitioners Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 18
Visual Modeling Using UML Diagrams Use-case diagram Class diagram Statechart diagram Document. List File. Mgr Document add( ) delete( ) fetch. Doc( ) sort. By. Name( ) Use Case 1 name : int docid : int num. Field : int get( ) open( ) close( ) read( ) sort. File. List( ) create( ) fill. Document( ) File. List f. List Actor A Actor B add( ) delete( ) read() fill the code. . 1 Use Case 2 rep File Repository Use Case 3 (from Persistence) read( ) Grp. File name : char * = 0 read. Doc( ) read. File( ) Use-case diagrams outline the system scope Collaboration 9: sort. By. Name ( ) main. Wnd : Main. Wnd 1: Doc view request ( ) L 2: fetch. Doc( ) g. File : Grp. File 4: create ( ) 8: fill. File ( ) user : Clerk file. Mgr : File. Mgr 3: create ( ) diagram 6: fill. Document ( ) 7: read. File ( ) 5: read. Doc ( ) document : Document repository : Repository read( ) open( ) create( ) fill. File( ) Repository Document. List File. Manager Deployment diagram Windows 95 Document ¹®¼ °ü¸® Ŭ¶óÀ̾ðÆ®. EXE ¹®¼ °ü¸® ¾ÖÇø´ Windows NT Solaris Graphic. File ¹®¼ °ü¸® ¿£Áø. EXE File Alpha UNIX File. List ÀÀ¿ë¼ ¹ö. EXE Windows NT IBM Mainframe µ¥ÀÌŸº£À̽º¼ ¹ö main. Wnd user ƯÁ¤¹®¼ ¿¡ ´ëÇÑ º¸±â¸¦ » ç¿ëÀÚ°¡ ¿äû ÇÑ´Ù. file. Mgr : File. Mgr document : Document g. File Component diagram repository 1: Doc view request ( ) 2: fetch. Doc( ) 3: create ( ) 4: create ( ) 5: read. Doc ( ) È ÀÏ°ü¸®ÀÚ´ ÀÐ¾î¿ ¹®¼ ÀÇ Á¤º¸¸¦ ÇØ´ç ¹®¼ °´Ã¼¿¡ ¼³Á¤À» ¿äû ÇÑ´Ù. 6: fill. Document ( ) 7: read. File ( ) Sequence diagram Forward and Reverse Engineering 8: fill. File ( ) È ¸é °´Ã¼´ ÀоîµéÀÎ °´Ã¼µé¿¡ ´ëÇØ À̸§º°·Î Á¤·ÄÀ» ½ÃÄÑ È ¸é¿¡ º¸¿©ÁØ´Ù. 9: sort. By. Name ( ) Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 19 Target System
Practice 5: Continuously Verify Quality Software Engineering Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 21
Continuously Verify Quality – in each Iteration A Software Build triggers a cycle of testing Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 22
Continuously Verify Quality – Software Models Various disciplines produce Models … Realized By Assessment Artifacts are part of and present in all software each of models … those models is Assessed Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved Business Modeling Require ments Business Use Case Model B B Business Object Model Use Case Model Automated By Analysis & Design Implement ation Realized By Implemented By Design Model Implementation Model Verified By Assessment 23 Validated By
Practice 6: Manage Change Software Engineering Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 24
What Do You Want to Control? w Changes to enable iterative development § Secure workspaces for each worker § Parallel development possible w Automated integration/build management Good CM practices help to prevent certain types of software errors Process Integration Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved Parallel Development Workspace Management 25 REPORTALERT Build Management
Software Engineering Practices Reinforce Each Other Software Engineering Practices Develop Iteratively Manage Requirements Ensures users involved as requirements evolve Use Component Architectures Validates architectural decisions early on Model Visually (UML) Addresses complexity of design/ implementation incrementally Continuously Verify Quality Measures quality early and often Manage Change Evolves baselines incrementally Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 27
Module 1 Content Outline (Agenda) w Software development problems w Six software engineering practices èSoftware engineering process and software engineering practices Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 28
An Engineering Process Implements Engineering Practices Software Engineering Practices Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Software Engineering Process Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 29
A Team Based Definition of Process A process defines Who is doing What When, and How, in order to reach a certain goal. New or changed requirements Software Engineering Process New or changed system This course is about the What, When and How of Testers’ activities in the process. Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 30
Module 1 Review w Software engineering practices guide software development by addressing root causes of problems. w Software engineering practices reinforce each other. w Process guides a team on who does what when and how. w A software engineering process provides context and support for implementing software engineering practices. Principles of Software Testing for Testers Copyright © 2002 Rational Software, all rights reserved 32
- Dot cylinder requalification
- Wireline formation tester
- Module testing in software engineering
- Domain testing in software testing methodologies
- Kv charts in software testing
- Data flow testing strategies in software testing
- Globalization testing in software testing
- Language testing
- Control structure testing in software engineering
- Decision table testing in software testing
- Decision table testing example
- Decision table testing is white box
- Rigorous testing in software testing
- Testing blindness in software testing
- Domain example
- C device module module 1
- Ford eec
- Positive testing vs negative testing
- Cs3250
- Functional testing vs unit testing
- Makalah white box dan black box testing
- Behavior testing adalah
- Component testing is a black box testing
- Principles of marketing quarter 2 module 9
- Principles of marketing module 7
- Principles of marketing module 6
- Principles of marketing module 5
- Principles of marketing
- Principles of marketing module 10
- Principles of marketing module 8