Requirements Engineering and Management INFO 627 System Validation and Change Management Glenn Booker INFO 627 Lecture #9
Download ReportTranscript Requirements Engineering and Management INFO 627 System Validation and Change Management Glenn Booker INFO 627 Lecture #9
Requirements Engineering and Management INFO 627 System Validation and Change Management Glenn Booker INFO 627 Lecture #9 1 Validation Even with meticulous verification, you can still be missing a warm fuzzy feeling that the customer won’t be happy with the product User or customer involvement in testing can help provide that warm fuzzy feeling Other tests will support verification INFO 627 Lecture #9 2 Customer-involved Testing Several kinds of testing may involve the customer, and help discover whether they like the product’s approach INFO 627 Prototype testing Alpha testing Beta testing Acceptance testing Lecture #9 3 Prototype Testing Prototype testing may only use a small part of the product’s capabilities Looking for overall look and feel of the application, scope of features, and other basic features Useful to avoid major disconnects in the approach used for the product INFO 627 Lecture #9 4 Alpha and Beta Testing Commercial vendors may use alpha and beta testing to validate the product Alpha and beta testing are done in that order, and toward the end of system development Also are a major means used to find additional bugs (free testers - yippee!) INFO 627 Lecture #9 5 Alpha Testing Alpha testing is very limited in scope Only the most active and adventuresome users are allowed to get alpha test copies Product is somewhat to mostly functional Feature limitations expected INFO 627 Lecture #9 6 Beta Testing Beta testing involves more users than alpha testing; may even be open to the public Beta products are nearly complete Might have noticeable bugs, incompatibilities, or other issues unresolved Some may use many rounds of beta testing, even if ill named (e testing, anyone?) INFO 627 Lecture #9 7 Acceptance Testing Acceptance testing is done when the system is complete (or so the developers think) and the customer is ready to accept the system Often acceptance tests are formal tests of every !@#$%&^* requirement to prove that the delivered system really does what it is supposed to do Often the basis for final contract payment INFO 627 Lecture #9 8 Verification Testing Most other forms of testing support verification that the system meets its requirements IEEE 829:1998 is the main industry standard for software testing Testing involves its own little life cycle INFO 627 Lecture #9 9 Testing “Life Cycle” Plan testing activities Design the tests Decide what the scope of testing will be Prepare test plans Determine test cases Conduct testing Allow time to fix problems found Retest INFO 627 Lecture #9 10 Testing Scope Testing generally based on different levels the system to be tested Unit tests for a module or small group Integration tests for components or subsystems System tests for the whole system INFO 627 Might have external interfaces available or not Lecture #9 11 Tracing Tests Hence each test should be traceable to whatever parts of the system it’s verifying Want to look for redundant, missing, or extraneous tests through that tracing INFO 627 Lecture #9 12 Requirements-based Testing Great buzzword-of-the-month Just means that testing (presumably at the system level) is directly mapped or traced to the system requirements Often looking for overall system response to intended activities May be based on scenarios or use cases INFO 627 Lecture #9 13 Positive and Negative Testing Positive test cases look for proper response when a correct or valid input is given to the system Test the main success scenario of a use case Negative test cases look for proper error handling when an incorrect, missing, or invalid input is provided INFO 627 Test some extensions or variations Lecture #9 14 Negative Test Conditions Negative testing might include INFO 627 What happens if the data server goes down? Illogical or inconsistent input combinations Misplaced inputs (city = “NJ”) Fields too long or too short Numbers in alphabetic fields What if an external system isn’t available? Redundant or repeated inputs Lecture #9 15 Black Box Testing Black box testing looks only for overall response of the system, without regard for its internal structure, characteristics, or limitations INFO 627 “Black” since you can’t see what’s inside the system Often like requirements-based testing Often used for system level tests Lecture #9 16 White Box Testing White box testing is when we are allowed to construct the test based on internal structure of the system INFO 627 “White” since we presumably turned on a light to see what’s inside the system Allows test cases for extreme conditions Better for low level testing; impractical at the system level Lecture #9 17 White Box Test Conditions White box testing might look for extremes such as INFO 627 Start and end conditions (new customer) Odd combinations of conditions Initial conditions (the first blah event ever) Critical values or numbers (0, 1, 2, etc.) Rare events (leap day, holidays) Lecture #9 18 Development Testing Overview Types of Testing Unit Testing Class or Module Testing Package Testing Integration Testing Component Testing System Testing Subsystem Testing Acceptance Testing Alpha Testing Beta Testing Types of Test Cases Requirements-based Testing White Box Testing Black Box Testing Positive Testing Negative Testing INFO 627 Lecture #9 19 Tracing Test Cases Integration or system testing might map directly to use cases or to requirements Just like any other verification, we can analyze the traceability matrix the same way discussed last week INFO 627 Look for omitted and extra relationships, then check completeness and correctness manually Lecture #9 20 Testing Design Constraints Many design constraints need special types of “testing” “Inspection” can be a verification method For example, to prove that the right programming language was used INFO 627 Just look at it! Then record the observation somehow Lecture #9 21 Defect Identification The purpose of testing is often to find defects in the system Need a consistent method for reporting those defects, so they can be removed Example which follows is from the Team Software Process INFO 627 Lecture #9 22 Defect Identification For every defect, we need to identify INFO 627 Date, and who identified the defect Test case executed and conditions Some identifier number (defect #264) Description What phase or activity the defect was found What phase the defect was created (harder!) Type of defect (see next slide) Lecture #9 23 Defect Types per TSP Documentation or comments Syntax, typos Build or packaging Assignment, declaration Interface, procedure calls INFO 627 Lecture #9 Checking, errors, or validation Data structure or content Function logic, loops System configuration, memory Environment or support system 24 How Much Verification Effort? The depth and coverage of verification for a system component may be done at several levels, depending on the importance and complexity of the component Need to assess the impact of failure by the component in question INFO 627 Lecture #9 25 Depth of Verification Possible verification methods, in increasing depth of coverage detail, are INFO 627 Examination; review by one or two people to inspect an item briefly Walkthrough; A more structured review by a group of peers to look for defects Independent review; a walkthrough by someone not from the developer’s organization Lecture #9 26 Depth of Verification INFO 627 Black box testing; is often done with automated testing tools to simulate system operation (e.g. WinRunner) White box testing; verification that every logical path has been exercised is a possible test goal, in addition to deliberately extreme input conditions Lecture #9 27 Coverage of Verification The coverage of verification and validation (V&V) could include INFO 627 V&V Everything Use hazard or risk analysis to determine needed V&V scope Lecture #9 28 V&V Everything In cases of extreme quality needs, a clear but expensive option is to check everything in detail Often people will find parts which still need minimal V&V – might allow on a case-bycase basis INFO 627 Hence the amount of V&V needed might vary from one component to another Lecture #9 29 Hazard Analysis Sometimes hazard or risk analysis can help define what portions of the system need extensive V&V Often mandated for safety reasons Main idea is to determine the impact of a component’s failure on the overall functionality of the system INFO 627 Lecture #9 30 Hazard Analysis Much effort is needed to determine how the system would respond if part of it fails In such cases, degraded modes of operation could be considered Even if system failure isn’t life threatening, it could have severe financial, public relations, marketing, or liability issues INFO 627 Lecture #9 31 Return on Investment (ROI) Another approach to deciding V&V scope is basing it on cost/benefit analysis (CBA) Main concept is to determine the cost of failure of a component, and compare that to the cost of V&V activities INFO 627 See lecture 8 of INFO 503 for additional details on ROI Lecture #9 32 Return on Investment ROI is defined as ROI = (benefits – costs)/costs ROI usually expressed in percent total, or percent per year Where ‘benefits’ is the dollar value of things we avoided by doing good V&V, and ‘costs’ is the cost of doing the V&V activities INFO 627 Lecture #9 33 Return on Investment The ‘benefits’ could be estimated by risk impact analysis (benefit ~ avoided risk) INFO 627 What is the chance or risk of the component failing, in percent, during the life of the system? What is the dollar value of a failure? Multiply those two things to get the ‘benefits’ value for a given component benefits = risk * value Lecture #9 34 Return on Investment The cost of V&V activities is based on the labor cost of people who plan, design, conduct, and report on those activities INFO 627 For the ‘costs’, need to know the cost/hour rate of those labor categories, and multiply it by the number of hours needed to perform V&V activities for a component costs = rate * hours Lecture #9 35 V&V Summary Hence the scope of V&V activities can be customized for each component (or package, or subsystem, etc.) depending on its value to the overall system (and hence, its value to the stakeholders) INFO 627 Lecture #9 36 Change Management Requirements need to be managed, since we know they will change and evolve over time Hence a change request (CR) system and change control process are usually needed as part of configuration management INFO 627 Lecture #9 37 Change Management Change management must do many things INFO 627 Plan for change Baseline the requirements Establish one channel to request change Use a system to process proposed changes Manage change throughout the hierarchy (system, requirements, use cases, SRS, Vision) Lecture #9 38 Plan for Change System needs and requirements change because of many factors INFO 627 External influences, such as changes to the problem being solved, the external environ-ment, or even the existence of the new system Internal factors, like requirements clarification Unofficial changes, such as through developer ideas, marketing ideas, response to competition Lecture #9 39 Baseline the Requirements After the requirements get fairly well defined, they need to start being formally controlled When they are first approved, they have become baselined Baseline establishes a line between existing requirements and new ones Typical change is 1-4% of req’ts per month INFO 627 Lecture #9 40 Establish One Channel There must be only one way to propose a change INFO 627 Might be called a change request system, which feeds the change control process Lecture #9 41 Process Proposed Changes A change control process must be used to process (analyze and guide implementation of) changes to the system INFO 627 The change control system must determine the impact of the change, estimate the effort to implement the change, then where and when (e.g. what release or build) May use a Configuration Control Board (CCB) Lecture #9 42 Manage Change What is the impact of this change? INFO 627 Need to determine if a change affects other parts of the system, or the design or requirements of the system Part of the CCB’s job may be to help look for such impacts, including training, installation, documentation, etc. Traceability matrices help look for impact Lecture #9 43 FAA Example See here for an FAA example of a change control process Added elements include INFO 627 Checking for interaction with external systems Checking for possible commercial solutions instead of custom code Getting external funding or technical expertise Lecture #9 44 Requirements Tools Tools specifically for requirements management may be used Custom databases may be used INFO 627 Advantage is that your change control process can be built into the tool Lecture #9 45 Implementing Changes Once a baseline has been defined for a system (often through a particular release), then changes to that baseline are controlled using the change control process Changes (fixes or improvements) are developed, and at some point added to the draft release build INFO 627 Lecture #9 46 Implementing Changes Then the system is built, and goes through integration, regression, and system testing Regression testing proves we didn’t break the baseline system Then the contents of the build are fixed, or bad parts removed Testing is repeated, until the final build contents are agreed upon INFO 627 Lecture #9 47 Change Control Feeds Releases iterate Development Testing Unit test each fix or feature separately Unit Test A Unit Test F Unit Test D Unit Test B Integration, Regression, and System Testing Fix bugs and/or adjust Retest release contents Unit Test E Unit Test C Last Release Freeze Contents Freeze New Contents Release Repeat INFO 627 Lecture #9 48 Implementing Changes After the build passes testing, the new baseline is defined New baseline = old baseline + specific CRs Then the process starts over again for changing the new baseline This is the system maintenance life cycle (CR = Change Request) INFO 627 Lecture #9 49