fundamentals of testing section 1/6

16
Fundamentals of Testing - Section 1 ISTQB Foundation

Upload: international-personal-finance-plc

Post on 13-Apr-2017

35 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Fundamentals of Testing   Section 1/6

Fundamentals of Testing - Section 1ISTQB Foundation

Page 2: Fundamentals of Testing   Section 1/6

Summary

What you will learn in this first section

- Why Testing?- Causes of software defects- Tester objectives- Testing and debugging- Principles of testing- Test activities

- Retesting- Resource triangle- Completion criteria- Static and dynamic testing- Testing independencies- Code of ethics

Page 3: Fundamentals of Testing   Section 1/6

Why Testing Is Necessary

People make mistakes due to fallibility but also other pressures.

i.e.:

- Attention to detail

- Time constraint

- Lack of Knowledge

- Experience

Software (Program Code) is present everywhere.

From Banking, e-commerce to Cars, Electrical Appliances, Arms, Heating Systems and many more.

Failure results in financial loss, waste of time, loss of reputation or, in worst cases, injury and death.

Testing reduces the risk of software failure.

Page 4: Fundamentals of Testing   Section 1/6

Causes Of Software Defects

Error: Human make a mistake in code. Development of a document specification.

Defect: A problem caused by an error.

Fault: A failure of the system or component caused by a defect.

Failure: Failures don’t only happen due to defects, but also environmental conditions, hardware problems, etc.

All defects start with a human error (for example a typo, misunderstanding, lack planning, capability, etc.) The tester’s job is to expose the defect by causing a failure before the software gets to production.

Page 5: Fundamentals of Testing   Section 1/6

Objectives Of Testing

Avoid and rectify errors.

Ensure that key functional and non-functional requirements are examined.

Testing is not about removing defects, but about notifying developers about them.

Testing is also about reducing risk in releasing.Testing can give confidence in the quality of the software if it finds few or no defects. Tests can and must be measured. Typical measurements are:- Number of defects found- Number of failures in a given time period (reliability)- Usability rating- Maintainability

Page 6: Fundamentals of Testing   Section 1/6

Difference Between Testing And Debugging

Debugging is a process used to identify causes of bugs in code and correct them.

Testing is the exploration of the system in order to find defects.

Dynamic Testing Debugging

(Developer)(Tester)

Observe failure

Re-test to confirm failure

no longer occurs

Investigate andIsolate defect

Fix defect

Check fix works

Report incident

Report fix

Page 7: Fundamentals of Testing   Section 1/6

Fundamental Principles Of Testing

1. Testing shows the presence of bugs.

2. Exhaustive testing (testing all possible data combinations) is impossible.

3. Early testing saves money.

4. Defect clustering happens. If there is a bug in one part of the software, chances are there are other, related bugs nearby.

5. “The pesticide paradox”: continuing to run the same tests won’t find new bugs.

6. Testing is context dependent. Testing is done differently in different contexts.

7. Software with no known errors is not necessarily ready to be shipped. Does it match user/business expectations?

Page 8: Fundamentals of Testing   Section 1/6

Five Fundamental Test Activities And Tasks From Planning To Test Closure

Planning - Verify the mission of testing. Planning and Control

Analysis and Design

Implementation and Execution

Evaluating Exit Criteria and Reporting

Test Closure Activities

Control -  Monitor, check progress and take action.Test analysis and test design is the testing objectives to create test conditions and test designs. Activity where test procedures or scripts are in order, the environment is setup and tests are run.Activity where test execution is assessed against the defined objectives.

Occurs at project milestones such as release, completion, cancellation or maintenance release has been complete.

Page 9: Fundamentals of Testing   Section 1/6

Retesting & Regression Tests

Retest - Running the tests again after they fail and the bugs have been in theory fixed.Regression – Running testing to check the cross impact of defect fix in the whole

functionality or system.

Defect/Bug Raised

Dev Team

Fixed

Test Team

Retest

Regression Tests

Page 10: Fundamentals of Testing   Section 1/6

Resource Triangle

Time, Cost, and Quality. You can’t have them all, only pick two.

You are given the options of Fast, Good, and Cheap, and told to pick any two. Here Fast refers to the time required to deliver the product, Good is the quality of the final product, and Cheap refers to the total cost of designing and building the product. This triangle reflects the fact that the three properties of a project are interrelated, and it is not possible to optimize all three – one will always suffer. In other words, you have three options:

Design something quickly and to a high standard, but then it will not be cheap.Design something quickly and cheaply, but it will not be of high quality.Design something with high quality and cheaply, but it will take a relatively longer time.

Fast(Time)

Cheap(Cost)

Good(Quality)

Page 11: Fundamentals of Testing   Section 1/6

Completion Criteria

Criteria you set at the beginning of a project that determines when it is safe to stop testing. Exit criterion is connected to the test coverage, test case design technique adopted, risk level of the product varies from one test level to another.

• Specified coverage has been achieved.

• No Showstoppers or critical defects.

• There are very few known medium or low-priority defects that don't affect the usage of the product.

• If Exit criterion has not met, the test cannot be stopped.

• The Exit criterion has to be revamped or the time should be extended for testing based on the quality of the product.

• Any changes to the test completion criterion must be documented and signed off by the stakeholders.

• The test ware can be released upon successful completion of exit criteria.

Page 12: Fundamentals of Testing   Section 1/6

Static & Dynamic Testing

Static - Testing where code is not exercised: document specification analysis, reviews, even code itself, etc.

Can be done as Review by humans carrying out manual examination of documents or Static Analysis of the code and software models by using automation tools.

Dynamic - Kind of testing that exercises the program with some test data.

Dynamic testing is performed by executing software under test and comparing actual and expected results.

Page 13: Fundamentals of Testing   Section 1/6

Testing Independence

Developers are least independent, whereas outsourced testing companies are most independent, because they don’t take defects as criticism.

Several levels of independence can be defined as shown below:

• Tests designed by the person(s) who wrote the software under test

• Tests designed by another person(s) within the development team

• Tests designed by a person(s) from a different organisational group (i.e.: an independent test team) or test specialists (i.e.: usability or performance testers)

• Tests designed by a person(s) from a different organisation or company (i.e.: outsourcing or certification by an external body)

Low

High

Page 14: Fundamentals of Testing   Section 1/6

Code of Ethics

Involvement in software testing enables individuals to lean confidential and privileged information. A code of ethics is necessary, the ISTQB® states the following code of ethics:Public – Testers shall act consistently with the public interest

Client and Employer – Testers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest

Product – Testers shall ensure that the deliverables they provide (on the products and systems they test) meet the highest professional standards possible

Judgement – Testers shall maintain integrity and independence in their professional judgement

Management – Test managers and leaders shall subscribe to and promote an ethical approach to the management of software testing

Profession – Testers shall advance the integrity and reputation of the profession consistent with the public interest

Colleagues – Testers shall be fair to and supportive of their colleagues, and promote cooperation with software developers

Self – Testers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession

Page 15: Fundamentals of Testing   Section 1/6

Review

This is what you have learned so far...

• Why Testing is necessary

• Common causes of software defects

• What is testers objectives

• Differences between testing and debugging

• Fundamentals principles of testing

• Five fundamental test activities and tasks from planning to closure

• Why retesting is one of the most important tasks in testing

• Resource triangle - Time, Money and Quality

• Definition of completion criteria

• When carryout a static and dynamic testing

• Why is important to get testing independence

• Why code of ethics is necessary

Page 16: Fundamentals of Testing   Section 1/6

End of Section 1

Do the Quiz (attached) for Section 1

Questions?Comments?

Thumbs up and Share it if you like this.

Fundamentals of Testing - Section 1ISTQB Foundation

Thank You