Embed
Email

testing

Document Sample

Categories
Tags
Stats
views:
13
posted:
11/5/2011
language:
English
pages:
24
What is testing?

Why Software Testing?



What are we aiming for?

Error distribution

Critical choice: what, when and how to test,

Framework for Testing,

Test deliverables,

Current practices, trends, challenges,





Who has to do it? And why?

The Testing objectives:

The Testing Principles:

How testing is related with Cost of Quality?

Testing Strategies:

Developing Testing Strategy:

Testing Techniques:

Testing Methods:

Hierarchy of Test Documents:

Test Plan:

Phases of Software System:

Why it is not recommended that a developer to do testing?

Test Procedure:

Test Policy:

Testing Tactics:

Distinguish Functional v/s Structural Testing.

Distinguish Static v/s Dynamic Testing.

Distinguish Manual v/s Automated Testing.

Test Case Design:

Test completion criteria:

Why the need of Software Testing?

 IT industry has becoming more competitive,

 Stay in the business,

 Delight and Satisfy the customer,

 Deliver Quality Product,

 Quality is absence of defects and meeting the customers’ expectations,

 By a good Test Process,

 The Quality of Test Process determines the success of the Test Effort,

 Prevent defect migration by early life cycle testing techniques,

 Use proper Test Tools at appropriate time,

 Testing is a professional discipline requiring trained and skilled persons,





What is testing then?

 Testing is a process of demonstrating that errors are not present,

 The purpose of testing is to show a program performs its intended function

correctly,

 Testing is a process of establishing confidence that a program does what it is

supposed to do,

 Testing is a process of executing a program with the intent of finding the

errors.





Error Distribution

 Errors are concentrated in the early stages of the development process,

 Undetected errors will migrate down in the process,

 Errors detected late in the process are very costly,

 Time for Continues Testing Process Throughout the life cycle,



Code

7% Others

Design 10%

27%









Requirements

56%





Ref: Software Testing in the Real World, Improving the Process – Edward Kit.

Economics of Software Development Life Cycle (SDLC)

Traditional Testing Continuous Testing



Test Cost Accumulated Accumulated Test Cost

Errors Errors

Requirement

0 20 20 Errors, 10 10

Defect Cost 1





Design

0 40 20 Errors 15 25

Defect Cost 1





Code

0 60 20 Errors 18 42

Defect Cost 1





Test

480 12 80 % Detected 4 182

Defect Cost 10







Production

1680 0 „0‟ Defects 0 582

Defect Cost 100





Ref: Effective Methods of Software Testing – William Perry.







How testing is related with Cost of Quality?

 Cost of Quality - Total cost of Preventive, Appraisal and Failure,

 Increases mainly because of the rework,

 Can be reduced by Continuous Testing Approach,



Fix Failure



Cost of Quality Test Appraisal



Process Prevention



Build Production cost

Role of Testers in Software Life Cycle:

 Concept Phase,

o Evaluate Concept Document,

o Learn as much as possible about the product and project,

o Analyze Hardware/software Requirements,

o Strategic Planning,

 Requirement Phase,

o Analyze the Requirements,

o Verify the Requirements,

o Prepare Test Plan,

o Identify and develop requirement based test cases,

 Design Phase,

o Analyze design specifications,

o Verify design specifications,

o Identify and develop Function based test cases,

o Begin performing Usability Tests,

 Coding Phase,

o Analyze the code,

o Verify the code,

o Code Coverage,

o Unit test,

 Integration & Test Phase,

o Integration Test,

o Function Test,

o System Test,

o Performance Test,

o Review user manuals,

 Operation/Maintenance Phase,

o Monitor Acceptance Test,

o Develop new validation tests for confirming problems,





The Testing objectives:

As per Pressman,

 Testing is a process of executing a program with the intent of finding the errors.

 A good test case is one that has a high probability of detecting an as yet

undiscovered error,

 A successful test case is one that detects an as yet undiscovered error,



As per CSTE material,

 The main objective of the testing is to reduce the risks inherent in the computer

system.

 Determine whether the system meets the specifications (Developers‟ view)

 Determine whether the system meets the business and user needs (customers‟

view),

 Instilling the confidence in the system,

 Providing insight into the software delivery process,

 Continuously improving the software test process,







Testing Techniques:

 Human Testing,

o Inspection,

o Walkthrough,

 White Box Testing,

o Statement coverage,

o Decision coverage,

o Condition coverage,

o Decision / condition coverage,

o Multiple condition coverage,

 Black Box Testing,

o Equivalence Partitioning,

o Boundary Value Analysis,

o Error guessing.

o Comparison testing.

o Functional testing,

 Integration (Incremental) Testing,

o Top Down Integration,

o Bottom Up Integration,

 System Testing,

o Recovery Testing,

o Security Testing,

o Volume Testing,

o Stress Testing,

o Performance Testing,

o Alpha and Beta Testing,

o







White Box Testing: (Logic Driven)

 Also known as Glass Box Testing, structural test, code based test, design based

test,

 The tests are based on “how the system operates”,

 This needs the detailed knowledge of the system,

 Usually the test cases are designed by looking at the code,



Types of White box test:

 Statement coverage,

 Decision coverage,

 Condition coverage,

 Decision / condition coverage,

 Multiple condition coverage,



Black Box Testing: (Data Driven)

 Focus on the feature testing,

 Used to find the bugs at the level of features, operational profile, customers

scenario,

 The tests are based on “What the system do”

 The tester will not be knowing the internal implementation,

 He will be knowing only what is the input data set and what is the out put data set

for a program/module,





Types of Black box test:

 Equivalence Partitioning,

 Boundary Value Analysis,

 Error guessing.

 Comparison testing.

 Functional testing





Integration Testing:

 Some times known as Incremental Testing,

 This involves the testing the interfaces between the tested unit programs or system

components, by adding one by one and testing the resultant combination,



 Top Down Integration,

o Begins from the top of the module hierarchy and works down,

o Modules are added in the descending order,

o Stubs are used as bottom modules,

 Bottom Up Integration,

o Begins from the bottom of the module hierarchy and works up,

o Modules are added in the ascending order,

o Drivers are used in place of higher modules, which give input data for the

module to be tested,







System Testing:

 Recovery Testing,

Tests how well a system recovers from crashes, hardware failures, or other

catastrophic problems.

 Security Testing,

Tests how well the system protects against unauthorized internal or external

access, willful damage, etc; may require sophisticated testing techniques.

 Volume Testing,

 Stress Testing,

 Performance Testing,

 Alpha and Beta Testing,









Testing Methods:

Unit Testing:

 Unit testing is the verification of a smallest unit of the software development or

module.

 White Box testing Techniques are used for the Unit testing.

The Unit test involves the following sequence of testing:

 Interfaces – ensures that the information is properly flow into and out of the

program module under test,

 Local Data Structure – ensures that the data stored temporarily maintains its

integrity during all the steps execution of the program,

 Boundary Conditions – ensures that the module operates at all boundary values,

 Independent Paths – ensures that all the independent paths executed at least once,

 Error Handling Paths – ensures the all the error handling paths are tested,



 Unit testing is performed once the coding is completed.

 Usually the developers perform the Unit Testing.

 Since the modules are not standalone program, Drivers and stub are used for the

Unit testing.

 Usually the driver is nothing but the main program, which takes the test case data

and passes the data to the module.

 Stubs serve to replace the modules that are subordinate to the module to be tested.

The stubs are dummy programs, may be a print statement.





Installation Testing:



Acceptance Testing:



Regression Testing:

Why it is not recommended that a developer to do testing?

 Misunderstandings will not be detected, because the checker will assume that

what the other individual heard from him or her is correct.

 Improper use of the development process may not be detected because the

individual may not understand the process.

 The individual may be “Blinded” into accepting erroneous system specifications

and coding.

 Without a formal division between development and test, an individual may be

tempted to improve the system structure and documentation, rather than allocate

that time and effort to test.



Test completion criteria:

 Wrong criteria:

o Stop when the scheduled time for testing expires,

o Stop when all the test cases executes without detecting errors,

 Correct Criteria:

o When the test manager is able to report, with some confidence, that the

application will perform as expected in production,

o This can be decided based on whether the quality goals, defined at the

starting of the project have been met,

o Is there any opened defects and their severity level,

o The risks associated with the product moving to the production,







How to acquire Skills and get recognize in the testing profession?

 IT industry has become more competitive,

 Time to distinguish the professional and skilled individuals,

 Certified Software Test Engineer (CSTE) Certification is a formal

reorganization across the World,

 Started in 1996 at Quality Assurance Institute (QAI),

 In 1999 examination process started,





QAI emphasizes on 3 C’s

 Change: Skill improvement,

 Complexity: IT becoming more complex, so as testing to achieve Quality,

 Competition: In present competitive atmosphere, CSTE is a one of

Reorganization across the world,





What CSTE talks about?

 General management skills,

 Quality Principles and Concepts,

 QA and QC Roles,

 Testing Skills, Approaches, Planning, Execution, Defect Tracking, Analysis,

Reporting and then Improvements in Test Process,

 Evaluates the Principles and Practices of Software Testing,

 Emphasizes on Continues Software Testing Process,





Best Practices

 One among 2500 across the world,











What are we aiming for? And what is our ultimate goal?

 Delight and Satisfy the customer,

 Stay in the business,

 Aim for the quality,

 Quality is absence of defects and meet the customers expectations,

 Defect prevention at the early phases of the development,

 QA and QC role is important,







What does testing mean to a Tester?

 Testers hunt errors,

 Testers are destructive,

 Testers pursue errors, not people,

 Testers add value,





How to Test?

 By examining the internal structure and design,

 By examining the Functional user interface,

 By examining the design objectives,

 By examining the user’s requirements,

 By executing the code,

 Many more…



Critical choice: what, when and how to test,

 Testing is never ending process,

 Exhaustive testing is impossible,

 So start the testing early,



The Testing Principles:

 All the tests should be traceable to customers requirements,

 Tests should be planned long before the testing begins,

 The Pareto Principle applies to the software testing,

 Testing should begin “in the small” and progress towards testing “in the large”,

 Exhaustive testing is not possible,

 To be most effective the testing should be conducted by the third party,





How testing is related with Cost of Quality?

 The cost of quality is the total cost of Preventive, Appraisal and Failure

associated with the product,

 The cost of a software product increases mainly because of the rework,

 The cost of quality can be reduced by applying the concept of continuous testing

to the software development process,



Fix Failure



Cost of Quality Test Appraisal



Process Prevention



Build Production cost



Testing Strategies:

 The objective of the testing is to reduce the risks inherent in the computer, the

strategy must address the risk and present a process that can reduce those risks,

 Two components of the testing strategy are:

o Test Factor: The risk or issue that needs to be addressed as part of the test

strategy. The strategy will select those factors that need to be addressed in

the testing of a specific application,

o Test Phase: The phase of the system development life cycle in which the

testing will occur.

 A Strategy for the software testing integrates the software test case design

methods into a well planned series of steps that result in the successful

construction of the software.

 It provides a road map for –

o Software developers,

o The quality assurance organizations,

o The customer,

 The road map describes the steps to be undertaken while testing, and the effort,

time and resources required for the testing,

 The test Strategy should incorporate test planning, test case design, test execution,

resultant data collection and data analysis,

 In designing a test strategy, the Risk factors becomes the basic or the objective of

the testing,

 A strategy must provide a guidance for the tester and a set of milestones for the

manager,



Developing Testing Strategy:

 Select and rank the test factors,

 Identify the system development phases,

 Identify the business risks associated with the system under development,

 Place the risks in the Test Factor / Test Phase matrix,







Test Phase Requirements Design Build Dynamic Integration

testing



Test Factors









Factors Risks









Testing Techniques:

 Human Testing,

 White Box Testing,

 Black Box Testing,

 Integration (Incremental) Testing,

 Validation Testing,



Human Testing:

 Inspections:

 Walkthroughs:







 Inspection and Walkthroughs involve reading or visual inspection of a program

(code) by a team of people. This type of the testing is known as “Static Testing”,

 The difference between the inspection and walkthrough is in the procedure that is

followed in doing and the different error detection techniques used.

 A walkthrough is an informal meeting for evaluation or informational purpose,

while Inspection is some what formal procedure,

 The objective is to find the errors but not the solutions.

 This is done by people other than the author,

 This type of “Static Test” should be conducted even for the code modification,



Inspections:

 The objective of the inspection is find the errors in the program,

 Inspection usually consists of a team of four people,

o Moderator,

 Not an author,

 Distributing the material,

 Scheduling,

 Inspecting the session,

 Leading the session,

 Recording all errors found,

 Ensuring that the errors are subsequently corrected,

 Is a quality control engineer,

o Programmer,

o Designer,

o Test Specialist,

 The moderator distributes the material well in advance,

 Programmer will go through each of the statement by statement, checks for

logical errors,

 The program is analyzed with respect to the check list of historically common

programming errors,

 The moderator is responsible for ensuring that the discussion is proceeding along

productive lines and that the participants focus their attention on identifying the

errors, not correcting them,

 The programmer is given a list of errors,

 He will fix the errors,



Walkthrough:

 Like inspection, this is also a static testing,

 It consists of 3-5 members,

 One person play a role of moderator,

 One person play a role of secretary, who records all the errors,

 One is a tester,

 And remaining are programmers,

 The walkthrough is like “play computer”.

 The tester will bring a test case with set of input and expected output,

 Other will mentally execute the module to be tested,

 By this the logical path can be checked,



White Box Testing: (Logic Driven)

 Also known as Glass Box Testing, structural test, code based test, design based

test,

 The tests are based on “how the system operates”,

 This needs the detailed knowledge of the system,

 Usually the test cases are designed by looking at the code,





Types of White box test:

 Statement coverage,

 Decision coverage,

 Condition coverage,

 Decision / condition coverage,

 Multiple condition coverage,



Black Box Testing: (Data Driven)

 Focus on the feature testing,

 Used to find the bugs at the level of features, operational profile, customers

scenario,

 The tests are based on “What the system do”

 The tester will not be knowing the internal implementation,

 He will be knowing only what is the input data set and what is the out put data set

for a program/module,





Types of Black box test:

 Equivalence Partitioning,

 Boundary Value Analysis,

 Error guessing.

 Comparison testing.

 Functional testing



Equivalence Partitioning:

 It is impossible to define test cases with an extensive input test data (input

domain).

 Hence the input data is divided in to subsets of all possible inputs.

 Then testing is done by selecting a data from each data set.

 Thus this contains two steps:

o Identifying the equivalence classes,

o Defining test cases.



Boundary value analysis:

Boundary value analysis leads to a selection of test cases that exercise boundary values.

The input data includes the on, above and beneath the edges of input and output

equivalence classes.



Integration Testing:

 Some times known as Incremental Testing,

 This involves the testing the interfaces between the tested unit programs or system

components, by adding one by one and testing the resultant combination,



 Top Down Integration,

o Begins from the top of the module hierarchy and works down,

o Modules are added in the descending order,

o Stubs are used as bottom modules,

 Bottom Up Integration,

o Begins from the bottom of the module hierarchy and works up,

o Modules are added in the ascending order,

o Drivers are used in place of higher modules, which give input data for the

module to be tested,







System Testing:

 Recovery Testing,

Tests how well a system recovers from crashes, hardware failures, or other

catastrophic problems.

 Security Testing,

Tests how well the system protects against unauthorized internal or external

access, willful damage, etc; may require sophisticated testing techniques.

 Volume Testing,

 Stress Testing,

 Performance Testing,

 Alpha and Beta Testing,









Testing Methods:

Unit Testing:

 Unit testing is the verification of a smallest unit of the software development or

module.

 White Box testing Techniques are used for the Unit testing.

The Unit test involves the following sequence of testing:

 Interfaces – ensures that the information is properly flow into and out of the

program module under test,

 Local Data Structure – ensures that the data stored temporarily maintains its

integrity during all the steps execution of the program,

 Boundary Conditions – ensures that the module operates at all boundary values,

 Independent Paths – ensures that all the independent paths executed at least once,

 Error Handling Paths – ensures the all the error handling paths are tested,



 Unit testing is performed once the coding is completed.

 Usually the developers perform the Unit Testing.

 Since the modules are not standalone program, Drivers and stub are used for the

Unit testing.

 Usually the driver is nothing but the main program, which takes the test case data

and passes the data to the module.

 Stubs serve to replace the modules that are subordinate to the module to be tested.

The stubs are dummy programs, may be a print statement.





Installation Testing:



Acceptance Testing:



Regression Testing:



Hierarchy of Test Documents:

 Test Plan: Defines overall direction for all testing activities,

 Test Design Specification: Gives the Test approaches and identifies the features to

be covered by the design and its associated tests,

 Test Case Specification: Documents the input data set and expected data set,

 Test Procedure Specification: Identifies all the steps required to exercise the

specified test cases,



Test Plan:

 What we are going to do,

 How we are going to do it,

 What testing methods we are going to use,

 What are the documents we are referring,

 What resources required,

 How work is distributed,

 How long it will take,

 What is the test completion criteria,

 How we are measuring testing effectiveness,







Test Plan:

a. Test Scope: Answers two questions - What is covered in the test? And

what is not covered in the test?

b. Test Objective: State the goal of the Testing. States what the tester is

expected to accomplish or validate during the testing. This guides in

development of test cases, procedures and test data. Enable the tester and

manager to gauge the testing progress and success.

c. Assumptions: This states the prerequisites that are to be needed. This

could be the Entrance and Exit criterion for each stage of the testing. If it

is not documented, it may have impact on the risk.

d. Reference: List the applicable References.

e. Budgets: Funds allocated to the testing.

f. Software Description: Provide a chart and briefly describe the inputs,

outputs and functions of the software being tested as a frame of references

for the test descriptions.

g. Risk Analysis: This documents the risks associated with the testing and

their possible impact on the test effort. The possible risks are system

integration, regression testing, new tools used, new technology used, skill

level of the tester, testing techniques used, etc.,

h. Test Design: States what type of tests must be conducted, what sequence

and how much time,

i. Roles and Responsibilities: States who is responsible for each stage of

testing,

j. Test Schedule and Planned Resources: States the major test activities,

sequence, dependence on other project activities, initial estimation on each

activity. Resource planning include the people, tools, facilities etc.,

k. Test Data Management: States the data set required for the Testing, and

the infrastructure required maintaining the data. Includes the methods for

preparing the teat data,

l. Test Environment: States the environment Required for each stage of the

testing,

m. Tools: States the tools needed for the Testing in different phases,

n. Expected Defect Rates: State the estimated number of defects of this type

of system.

o. Specifications:

p. Evaluation: Describes the evaluation criteria of the test results,



Phases of Software System:

a. Requirements

i. Determinate the verification approach

ii. Determine the adequate of requirements

iii. Generate the functional test data.

iv. Determine the consistency of the design with requirements.

b. Design

i. Determine the adequate of design.

ii. Generate the structural and functional test data.

iii. Determine the consistency with the design.

c. Coding

i. Determine the adequacy of implementation.

ii. Generate the structural and functional test data for programs.

d. Testing

i. Test application systems.

e. Installation, Operation and maintenance

i. Place tested system into production.

ii. Modify and retest.



Why it is not recommended that a developer to do testing?

a. Misunderstandings will not be detected, because the checker will assume

that what the other individual heard from him or her is correct.

b. Improper use of the development process may not be detected because the

individual may not understand the process.

c. The individual may be “Blinded” into accepting erroneous system

specifications and coding.

d. Without a formal division between development and test, an individual

may be tempted to improve the system structure and documentation, rather

than allocate that time and effort to test.







Test Procedure:

 Recommended steps in the Test Process:

a. Test Criteria: The questions to be answered by the test team.

b. Assessment: The test team‟s evaluation of the test criteria,

c. Recommended Tests: Recommended test to be conducted,

d. Test Techniques: The recommended test Techniques to be used in

evaluating the test criteria,

e. Test Tools: The tools to be used to accomplish the test techniques.



Test Policy:

 The testing policy will contain:

e. Definition of testing: A clear, brief and unambiguous definition of the

testing.

f. Testing Systems: The method through which testing will be achieved and

enforced

g. Evaluation: How information service management will measure and

evaluate testing.

h. Standards: The standards against which the testing is measured

Testing Tactics:

 The eight steps to develop the Testing Tactics

a. Acquire and study the test strategy.

b. Determine the type of the development project.

c. Determine the type of the software system.

d. Determine the project scope.

e. Identify the tactical risks.

f. Determine when the testing should occur.

g. Build the system test plan.

h. Build the unit test plans.



Distinguish Functional v/s Structural Testing.

Functional testing ensures that the requirements are properly satisfied by the

application system. The functions are those tasks that the system is designed to

accomplish. Functional testing is not concerned with how processing occurs, but

rather, with the results of the processing.

Structural testing is designed to verify that the developed system and programs

work. The intent of the structural testing is to assess the implementation by

finding test data that will force the sufficient coverage of the structures present in

the implemented application. Structural testing evaluates both that all aspects of

the structure have been tested and that structure is sound.

Distinguish Static v/s Dynamic Testing.

In Static testing, the verification is performed without executing the system‟s

code, such as syntax testing. Requirements phase and design phase testing are

examples for the static testing.

In Dynamic testing the verification and validation is performed by executing the

system‟s code. This involves running the program by some test cases and

comparing the results with the predefined data.

Distinguish Manual v/s Automated Testing.

The tests performed by the manual are known as manual testing, such as walk-

through, code inspection.

The tests performed by the computer are known as Automated testing.



Test Case Design:

 While designing the Test Cases, keep the “Test Objective” in mind.

 Design the test cases which have highest likelihood of finding the errors with a

minimum time and effort,

 Tests cases can be designed by two approaches:

o By knowing the Functions / Requirements, (Black Box Approach)

o By knowing the internal implementations, (White Box Approach)

 Apply Black Box and White Box techniques while designing the Test Cases,



Test Data:

 The in put data used for testing is known as the Test Data,

 The test data set contains both the valid and invalid data for the test case,

 The test data are generated during the design and analysis phase for all test cases

which are identified during the Requirement analysis phase,

 The test cases along with the test data ensures the test team that all the

requirements are in the testable form, If it is not so, then the requirements are

rewritten in the testable form,

 Exhaustive testing with all possible test data is impracticable, so some techniques

(Equivalence partitioning, Boundary value analysis, etc.,) are used selecting the

test data,

 The test data should check for the form, format, value and unit types,



Testing Tools:

 Tools are needed to help the testing,

 The kind of tools needed depends upon the kind of the testing to performed and

the environment in which the test will be performed,

 The tool selection depends upon the following criteria:

o Test Phase,

o Test Objective,

o Test Targets or Deliverables,

o Test Techniques,

o Software Category,

o Test History (Error / defect History),





Code Coverage:

 The purpose of the Code Coverage tools is to find out the statement, path which is

not covered at least once during the execution of the program,

 This gives the simplest metric of number of computer statements executed during

the test compared to the total number of statements in the program,

 This help in finding the dead code in the program, logical errors,

 The tools help in finding the paths in the program that have been designed so that

no data will cause the execution of those paths,





Managing Risks – Elaine M. Hall

 Risk is a condition that can result in a loss,

 The risk is related with the probability that loss may occur,

 Risk situation is always exists, but the chances of loss may not be occur,

 Risks can not be eliminated but the occurrence and/or the impact of loss can be

reduced,

 Risk management is a general procedure for resolving the risks,

 Software Risk Management is the practice of assessing and controlling risk that

affects the software project, process, or product,

 Risk management is said to resolve a risk if, when it is applied to any instance, the

possible consequences are all acceptable,

 Acceptance Risk: Acceptance Risk means that we can live with the worst-case

outcome,

 There are two major activities in any risk management process: Risk

Assessment and Risk Control,

 Risk Assessment: Defines a Risk. Risk assessment is a discovery process of

identifying sources of risk and evaluating their potential effects,

 Risk Control: Resolves the Risk. Risk control is a process of developing the risk

resolution plans, monitoring risk status, implementing the risk resolution plans

and correcting the deviations from the plan,

 You do not need to know what the risks are to begin risk management. It is

normal to start the risk management process with the fuzzy issues, concerns,

doubts and unknowns. The process of risk management transforms this

uncertainty into acceptable risk,

 Software Risks:

Software risk is a measure of the likelihood and loss of an unsatisfactory

outcome affecting the software project, process, or product,

I. Software Project Risk:

i. Project Risk is primarily a management Responsibility,

ii. This defines the operational, organizational and contractual software

development parameters,

iii. Project Risk includes: Resource constraints, external interfaces,

suppliers relationships, contract restrictions, unresponsive vendors and

lack of organizational support,

iv. Funding is the most significant project risk reported in the risk

management.

II. Software Process Risk:

i. Process Risk includes both management and Technical work

procedures,

ii. Process Risk associated with the management are: planning, staffing,

tracking, quality assurance, and configuration management,

iii. Process Risk associated with the Technical work (Engineering

activities) are: requirement analysis, design, code, and test,

iv. Planning Risk in the Process Management and Development Risk in

the Process Technical are the most often reported risks,

III. Software Product Risk:

i. Product Risk is primarily a Technical Responsibility,

ii. Product Risk contains: requirement stability, design performance, code

complexity, test specifications,

iii. Because the requirements are often perceived as flexible, it is difficult

to manage the Product Risk,

iv. Requirements are the most significant Risk in the Software Product

Risk.

 Usually the software risk are discussed in terms of Potential cost, schedule, and

technical consequences,



Software Risk Management:

 Software Risks can be discovered by working back word,

 First define the goals and objectives,

 Then describe the uncertainty, loss and time clearly,

 This will help in sort out the priority and provides knowledge to make intelligence

decisions,





 Risks are dynamic, meaning that they change over time,

 Edwards Deming is known as the father of the Statistical Process Control,

 He proposed two models on the managing the Product development:

b. Continuous Process Improvement, based on the evolutionary key process area

of the SEI Capability Maturity Model for Software,

c. Re-engineering: based on the revolutionary innovation,

Both approaches are based on the Deming‟s Quality work, Plan-Do-Check-Act, is a

closed loop approach for process Optimization. This is a evolutionary model for

product improvement,









Test completion criteria:

 Wrong criteria:

o Stop when the scheduled time for testing expires,

o Stop when all the test cases executes without detecting errors,

 Correct Criteria:

o When the test manager is able to report, with some confidence, that the

application will perform as expected in production,

o This can be decided based on whether the quality goals, defined at the

starting of the project have been met,

o The test manager look in to the test metrics, including Mean Time

Between Failure or % of coverage achieved by the tests,

o Is there any opened defects and their severity level,

o The risks associated with the product moving to the production is also

considered,





Some important points:

 Testing is a destructive process,

 A programmer should not test his or her own program,

 Testing is an unnecessary and unproductive activity if its goal is to validate that

the specifications are implemented as written,

 Test cases should be written for valid and expected, as well as invalid and

unexpected input conditions,

 A good test case is one that has a high probability of detecting an as yet

undiscovered error,

 A successful test case is one that detects an as yet undiscovered error,

 A test case is a document that describes an input, action, or event and an expected

response to determine if a feature of an application is working correctly.

 Good testing does not just happen, it must be planned, and a testing policy should

be the corner stone of that plan.

 When a testing should occur:

Testing should occur through out the project life cycle. The type of the

testing is determined after identifying the type of the software system, project

scope and the technical risks.

 A tool is a vehicle for performing a test process. A tool is a resource to the tester,

but by itself is insufficient to conduct testing.

 First start developing the test cases using the black box methods and then develop

supplementary test cases as necessary by using the white box methods,

 Functional testing is a process of attempting to find discrepancies between the

program and its external specifications,

 System testing is not just testing all the functions of the complete system or the

program; it tests for its initial objective, such as information, structural and quality

requirements.

 Cyclomatic complexity is a software metric that provides a quantitative measure

of the logical complexity of a program.

 Verification refers to the set of activities that ensures that software correctly

implements a specific function.

 Validation refers to a different set of activities that ensures that the software that

has been built is traceable to customer‟s requirements.

 Verification – “Are we building the product right”

 Validation – “Are we building the right product”.





 Black box testing - not based on any knowledge of internal design or code. Tests

are based on requirements and functionality.

 White box testing - based on knowledge of the internal logic of an application's

code. Tests are based on coverage of code statements, branches, paths, conditions.

 Unit testing - the most 'micro' scale of testing; to test particular functions or code

modules. Typically done by the programmer and not by testers, as it requires

detailed knowledge of the internal program design and code. Not always easily

done unless the application has a well-designed architecture with tight code; may

require developing test driver modules or test harnesses.

 Incremental integration testing - continuous testing of an application as new

functionality is added; requires that various aspects of an application's

functionality be independent enough to work separately before all parts of the

program are completed, or that test drivers be developed as needed; done by

programmers or by testers.

 Integration testing - testing of combined parts of an application to determine if

they function together correctly. The 'parts' can be code modules, individual

applications, client and server applications on a network, etc. This type of testing

is especially relevant to client/server and distributed systems.

 Functional testing - black-box type testing geared to functional requirements of

an application; this type of testing should be done by testers. This doesn't mean

that the programmers shouldn't check that their code works before releasing it

(which of course applies to any stage of testing.)

 System testing - black-box type testing that is based on overall requirements

specifications; covers all combined parts of a system.

 End-to-end testing - similar to system testing; the 'macro' end of the test scale;

involves testing of a complete application environment in a situation that mimics

real-world use, such as interacting with a database, using network

communications, or interacting with other hardware, applications, or systems if

appropriate.

 Sanity testing - typically an initial testing effort to determine if a new software

version is performing well enough to accept it for a major testing effort. For

example, if the new software is crashing systems every 5 minutes, bogging down

systems to a crawl, or destroying databases, the software may not be in a 'sane'

enough condition to warrant further testing in its current state.

 Regression testing - re-testing after fixes or modifications of the software or its

environment. It can be difficult to determine how much re-testing is needed,

especially near the end of the development cycle. Automated testing tools can be

especially useful for this type of testing.

 Acceptance testing - final testing based on specifications of the end-user or

customer, or based on use by end-users/customers over some limited period of

time.

 Load testing - testing an application under heavy loads, such as testing of a web

site under a range of loads to determine at what point the system's response time

degrades or fails.

 Stress testing - term often used interchangeably with 'load' and 'performance'

testing. Also used to describe such tests as system functional testing while under

unusually heavy loads, heavy repetition of certain actions or inputs, input of large

numerical values, large complex queries to a database system, etc.

 Performance testing - term often used interchangeably with 'stress' and 'load'

testing. Ideally 'performance' testing (and any other 'type' of testing) is defined in

requirements documentation or QA or Test Plans.

 Usability testing - testing for 'user-friendliness'. Clearly this is subjective, and

will depend on the targeted end-user or customer. User interviews, surveys, video

recording of user sessions, and other techniques can be used. Programmers and

testers are usually not appropriate as usability testers.

 Install/uninstall testing - testing of full, partial, or upgrade install/uninstall

processes.

 Recovery testing - testing how well a system recovers from crashes, hardware

failures, or other catastrophic problems.

 Security testing - testing how well the system protects against unauthorized

internal or external access, willful damage, etc; may require sophisticated testing

techniques.

 Compatability testing - testing how well software performs in a particular

hardware/software/operating system/network/etc. environment.

 Exploratory testing - often taken to mean a creative, informal software test that

is not based on formal test plans or test cases; testers may be learning the software

as they test it.

 Ad-hoc testing - similar to exploratory testing, but often taken to mean that the

testers have significant understanding of the software before testing it.

 User acceptance testing - determining if software is satisfactory to an end-user or

customer.

 Comparison testing - comparing software weaknesses and strengths to

competing products.

 Alpha testing - testing of an application when development is nearing

completion; minor design changes may still be made as a result of such testing.

Typically done by end-users or others, not by programmers or testers.

 Beta testing - testing when development and testing are essentially completed

and final bugs and problems need to be found before final release. Typically done

by end-users or others, not by programmers or testers.

 Mutation testing - a method for determining if a set of test data or test cases is

useful, by deliberately introducing various code changes ('bugs') and retesting

with the original test data/cases to determine if the 'bugs' are detected. Proper

implementation requires large computational resources.



Related docs
Other docs by Stariya Js @ B...
Info pack - Level 1
Views: 0  |  Downloads: 0
f1098746053
Views: 0  |  Downloads: 0
file_116
Views: 3  |  Downloads: 0
Trade
Views: 0  |  Downloads: 0
McKenzie_Law.April
Views: 0  |  Downloads: 0
110208attachmentEndingtheUseofCoalCampaign
Views: 0  |  Downloads: 0
Titration Curve _CBL_ _AP_
Views: 0  |  Downloads: 0
FSSC cover note
Views: 0  |  Downloads: 0
link_130115
Views: 0  |  Downloads: 0
Index_of_Supplementary_Tables_and_Dataset
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!