dise - software testing and quality management

45
Diploma in Software Engineering Module VIII: Software Testing and Quality Management Rasan Samarasinghe ESOFT Computer Studies (pvt) Ltd. No 68/1, Main Street, Pallegama, Embilipitiya.

Upload: rasan-samarasinghe

Post on 19-Feb-2017

36 views

Category:

Engineering


5 download

TRANSCRIPT

Page 1: DISE - Software Testing and Quality Management

Diploma in Software Engineering

Module VIII: Software Testing and Quality Management

Rasan SamarasingheESOFT Computer Studies (pvt) Ltd.No 68/1, Main Street, Pallegama, Embilipitiya.

Page 2: DISE - Software Testing and Quality Management

Contents

1. Introduction to Testing2. Verification and Validation3. Testing Methods4. Black Box Testing5. White Box Testing6. Testing Strategy7. Testing Stages8. Unit Testing9. Integration Testing10. Bottom-up Integration11. Top-Down Integration12. Validation Testing13. Alpha Testing

14. Beta Testing15. System Testing16. Recovery Testing17. Security Testing18. Stress Testing 19. Performance Testing20. Test Case21. Debugging22. Testing, QA and QC23. Quality Management24. Quality Planning Process25. Quality Assurance Process26. Quality Control Process

Page 3: DISE - Software Testing and Quality Management

Introduction to Testing

1. Testing is a process of executing a program with the intent of finding an error.

2. A good test case is one that has a high probability of finding an as yet undiscovered error.

3. A successful test is one that uncovers an as yet undiscovered error.

Page 4: DISE - Software Testing and Quality Management

Verification and Validation

Verification - Set of activities which ensure software correctly implements a given function.

“Are we building the product right?”

Validation - Set of activities which ensures software that has been built satisfies customer requirements.

“Are we building the right product?”

Page 5: DISE - Software Testing and Quality Management

Testing Methods

There are two main testing approaches

• Black Box Testing• White Box Testing

Page 6: DISE - Software Testing and Quality Management

Black Box Testing

Black box testing is a testing technique that ignores the internal mechanism of the system and focuses on the output generated against any inputs of the system.

Page 7: DISE - Software Testing and Quality Management

White Box Testing

White box testing is a testing technique that investigate the internal logic and structure of the code in detail.

Page 8: DISE - Software Testing and Quality Management

Black Box Testing and White Box Testing ComparisonBlack Box Testing White Box Testing

Internal Workings of an application are not required to be known

Tester has full knowledge of the Internal workings of the application

Also known as closed box testing, data driven testing and functional testing

Also known as glass box testing, structural testing or code based testing

Performed by testers and developers and also by end users

Normally done by testers and developers

Based on external expectations - Internal behavior of the application is unknown

Internal workings are fully known and the tester can design test data accordingly

Least time consuming and exhaustive The most exhaustive and time consuming type of testing

Not suited to algorithm testing Suited for algorithm testing

Done by trial and error method Data domains and Internal boundaries can be better tested

Page 9: DISE - Software Testing and Quality Management

Testing Strategy

Page 10: DISE - Software Testing and Quality Management

Testing Stages

Page 11: DISE - Software Testing and Quality Management

Unit Testing

• Refers to tests that verify the functionality of a specific section of code at the function level.• Performed by the developers before the setup is

handed over to the testing team.

Page 12: DISE - Software Testing and Quality Management

Integration Testing

• In integration testing, individual software modules are combined and tested as a group. • Integration testing is verifying the interfaces

between components against a software design.

Page 13: DISE - Software Testing and Quality Management

Integration Testing

There are two methods of doing Integration

1. Bottom-up integration2. Top-Down integration

Page 14: DISE - Software Testing and Quality Management

Bottom-up Integration

This testing begins with unit testing, followed by tests of progressively higher-level combinations of units called modules or builds.

Page 15: DISE - Software Testing and Quality Management

Top-Down Integration

This testing, the highest-level modules are tested first and progressively lower-level modules are tested after that.

Page 16: DISE - Software Testing and Quality Management

Validation Testing

• Validation testing ensure software functions in a manner that can be reasonably expected by the customer.• Like all other testing steps, validation tries to

uncover errors, but the focus is at the requirements level on things that will be immediately apparent to the end-user.

Page 17: DISE - Software Testing and Quality Management

Alpha Testing

• The alpha test is conducted at the developer's site by a customer. • The software is used in a natural setting with the

developer "looking over the shoulder" of the user and recording errors and usage problems.• Alpha tests are conducted in a controlled

environment.

Page 18: DISE - Software Testing and Quality Management

Beta Testing

• The beta test is conducted at one or more customer sites by the end-user of the software.• Unlike alpha testing, the developer is generally

not present.• The customer records all problems that are

encountered during beta testing and reports these to the developer at regular intervals.

Page 19: DISE - Software Testing and Quality Management

System Testing

System testing validates software once it has been incorporated into a large computer system. (hardware, people, information)

Page 20: DISE - Software Testing and Quality Management

System Testing

System Testing includes the following tests.

• Recovery Testing• Security Testing• Stress Testing • Performance Testing

All these tests are fallen down into the category non-functional testing.

Page 21: DISE - Software Testing and Quality Management

Recovery Testing

Recovery testing is the activity of testing how well an application is able to recover from crashes, hardware failures and other similar problems.

Page 22: DISE - Software Testing and Quality Management

Security Testing

Security testing verifies that the protection mechanism built on the system successfully prevents unauthorized access to the system.

Page 23: DISE - Software Testing and Quality Management

Stress Testing

During stress testing, the system is monitored after subjecting the system to heavy load, frequency or volume to ensure that the system can sustain the stress.

Page 24: DISE - Software Testing and Quality Management

Performance Testing

Performance testing is designed to test the runtime responsiveness, stability and resource usage of software within the context of an integrated system.

Page 25: DISE - Software Testing and Quality Management

Test Case

Test cases involve the set of steps, conditions and inputs which can be used while performing the testing tasks.

A. Test Case IDB. Test ScenarioC. Test Case DescriptionD. Test StepsE. PrerequisitesF. Test DataG. Expected ResultH. Actual ResultI. Comments

Page 26: DISE - Software Testing and Quality Management

Test Cases Example

We need to check an input field that can accept maximum of 10 characters.

Scenario Test Steps Expected Result Actual OutcomeVerify that the input field that can accept maximum of 10 characters

Login to application and enter 10 characters

Application should be able to accept all 10 characters.

Application accepts all 10 characters.

Verify that the input field that cannot accept more than 10 characters

Login to application and enter 11 characters

Application should NOT accept all 11 characters.

Application accepts all 11 characters.

Page 27: DISE - Software Testing and Quality Management

Debugging

• When a test case uncovers an error, debugging is the process that removes the error.• Debugging occurs as a consequence of successful

testing.

Page 28: DISE - Software Testing and Quality Management

Debugging Process

Page 29: DISE - Software Testing and Quality Management

Testing, Quality Assurance and Quality Control

Quality Assurance Quality Control TestingActivities for ensuring quality in the processes that develop software.

Activities for ensuring quality in the software.

Activities which ensure the identification of error/defects in the Software.

Process oriented activities.

Product oriented activities.

Product oriented activities.

Preventive activities. Corrective process. Corrective process.Everyone is responsible

QA team is responsible

QA team is responsible

QA is a managerial tool QC is a subset of Quality Assurance.

Testing is a subset of Quality Control.

Page 30: DISE - Software Testing and Quality Management

Quality Management

Quality Management includes the processes required to ensure that the project will satisfy the needs for which it was undertaken.

Processes:Quality PlanningQuality AssuranceQuality Control

Page 31: DISE - Software Testing and Quality Management

Quality Planning Process

Quality Planning Process identifying which quality standards are relevant to the project and determining how to satisfy them.

Page 32: DISE - Software Testing and Quality Management

Inputs for Quality Planning Process

• Quality policy - the overall intentions and direction of an organization with regard to quality• Scope statement. • Product description.• Standards and regulations - Application area

specific standards or regulations that may affect the project.• Other process outputs.

Page 33: DISE - Software Testing and Quality Management

Tools and Techniques for Quality Planning Process

• Benefit/cost analysis. • Benchmarking - comparing one's business

processes and performance metrics to best practices from other companies.• Flowcharting.• Design of experiments - analytical technique

which helps identify which variables have the most influence on the overall outcome.

Page 34: DISE - Software Testing and Quality Management

A Sample Process Flow Chart

Page 35: DISE - Software Testing and Quality Management

Quality Planning Process Outputs

• Quality management plan - describe how the project management team will implement its quality policy.• Operational definitions - what something is and

how it is measured by the quality control process. • Checklists - set of required steps has been

performed.• Inputs to other processes.

Page 36: DISE - Software Testing and Quality Management

Quality Assurance Process

Quality Assurance Process evaluating overall project performance on a regular basis to provide confidence that the project will satisfy the relevant quality standards.

Page 37: DISE - Software Testing and Quality Management

Inputs for Quality Assurance Process

• Quality management plan. • Results of quality control measurements -

records of quality control testing and measurement.• Operational definitions.

Page 38: DISE - Software Testing and Quality Management

Tools and Techniques for Quality Assurance Process

• Quality planning tools and techniques.• Quality audits - structured review of other quality

management activities.

Page 39: DISE - Software Testing and Quality Management

Quality Assurance Process Outputs

• Quality improvement - taking action to increase the effectiveness and efficiency

Page 40: DISE - Software Testing and Quality Management

Quality Control Process

Quality Control Process monitoring specific project results to determine if they comply with relevant quality standards and identifying ways to eliminate causes of unsatisfactory performance.

Page 41: DISE - Software Testing and Quality Management

Inputs for Quality Control Process

• Work results - both process results and product results.• Quality management plan.• Operational definitions. • Checklists.

Page 42: DISE - Software Testing and Quality Management

Tools and Techniques for Quality Control Process

• Inspection - activities such as measuring, examining and testing to determine whether results conform to requirements.• Control charts - graphic display of the results of a process over

time.• Pareto diagrams - histogram, ordered by frequency of

occurrence that shows how many results were generated by type or category of identified cause.• Statistical sampling - eg: selecting ten engineering drawings at

random from a list.• Flowcharting.• Trend analysis - using mathematical techniques to forecast

future outcomes based on historical results.

Page 43: DISE - Software Testing and Quality Management

Pareto diagrams

Page 44: DISE - Software Testing and Quality Management

Quality Control Process Outputs

• Quality improvement.• Acceptance decisions - items inspected will be

either accepted or rejected.• Rework - action taken to bring a defective item

into compliance with requirements.• Completed checklists.• Process adjustments - immediate corrective or

preventive action

Page 45: DISE - Software Testing and Quality Management

The End

http://twitter.com/rasansmn