33
Software testing Introduced to: Dr. Bilal Owaidat Prepared by: Sara Shall Date: 27/2/2017

software testing

Embed Size (px)

Citation preview

Page 1: software testing

Software testing

Introduced to: Dr. Bilal OwaidatPrepared by: Sara Shall

Date: 27/2/2017

Page 2: software testing

Outline• What is software testing?• Why we need software testing?• Types of software testing.• Software testing lifecycle.• Regression Testing.• Unit Testing.• Distributed Testing.• Software testing in the cloud.

Page 3: software testing

What is software testing?

• Software testing is a method of assessing the functionality of a software program.

Page 4: software testing

Why we need software testing?

1. To deliver the best application we can.

2.To test compatibility.

Page 5: software testing

Why we need software testing?

3. To make sure that your website is always up and running.

4.To ensure that what we create does what it’s supposed to do.

Page 6: software testing

Software testing lifecycle(STLC)

Page 7: software testing

Software testing lifecycle(STLC)

• Requirements/design review:

In case of confusion

Page 8: software testing

Software testing lifecycle(STLC)

• Test planning:In this phase the QA manager prepare the Test Plan and Test strategy documents. 

Page 9: software testing

• Test Case Development:

Software testing lifecycle(STLC)

Verification of Creation of

Page 10: software testing

• Environment Setup:This phase includes the setup or installation process of software and hardware which is required for testing the application.

Software testing lifecycle(STLC)

Page 11: software testing

• Test Execution:In Test Execution phase the test cases are executed in the testing environment.

Software testing lifecycle(STLC)

Page 12: software testing

• Test Cycle Closure: In Test Cycle phase the QA team will meet and discuss about the testing artifacts.

Software testing lifecycle(STLC)

Page 13: software testing

Types of software testing

Acceptance testing

Load testing

Stress testing

Performance testing

Usability testing

Install/uninstall testing

Recovery testing

Security testing

Compatibility testing

Comparison testing

Alpha testing

Beta testing

System testing

Integration testing

Acceptance testing

Page 14: software testing

Software testing levels

Page 15: software testing

Unit Testing• Unit testing is a method by which individual units

of source code are tested to determine if they are fit for use.

Page 16: software testing

Unit Testing

Page 17: software testing

• Types of testing:Unit Testing

Page 18: software testing

• Unit testing is supported by frameworks which are available in different programming languages( JUnit , Google test framework).

• The main elements of a unit framework:

Test case. Test suite. Test fixture. Test result.

Unit Testing

Page 19: software testing

Integration testing• Integration testing is executed to establish

whether the components interact with each other consort to the specification or not.

• Types of Integration Testing:

1)Top-Down Integration Testing

2) Bottom-Up Integration Testing

Page 20: software testing

System testing• System testing is the type of testing to check

the behavior of a complete and fully integrated software product based on the software requirements specification (SRS) document. 

Page 21: software testing

Acceptance testing• Acceptance testing: Formal testing with

respect to user needs, requirements, and business processes conducted to determine  whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system.(Definition by ISTQB)

• It is basically done by the user or customer .

Page 22: software testing

Regression Testing• What is Regression Testing?It is a test that is made after any modification or update occurs to the software to ensure that  the existing functionality is intact or not and that system update does not re-introduce errors.

Page 23: software testing

Regression TestingGiven program P, its modified version P’, and a test set Tthat was used to previously test P, find a way to utilize T to gain sufficient confidence in the correctness of P’

Page 24: software testing

Regression testing is used when:• Any new feature is added• Any enhancement is done• Any bug is fixed• Any performance related issue is fixed

Regression Testing

Page 25: software testing

• Regression Techniques:

Regression Testing

Page 26: software testing

• Regression process:Regression Testing

Page 27: software testing
Page 28: software testing

Software testing in the Cloud• Cloud testing is migrating testing to the cloud in

which reduce the execution time for regression testing.

• Benefits:1. virtualized hardware.2. Unlimited storage.3. Software services that help in reducing the

execution time.

Page 29: software testing

Cloud testing & the supported types:

Software testing in the Cloud

Page 30: software testing

• SMART-T:The decision of whether or not to migrate software testing to the cloud depending on three issues:• the business drivers outlined • the technical factors • the operational results

Software testing in the Cloud

Page 31: software testing

SMART-T

Page 32: software testing

Software testing in the Cloud• Hadoop: is a framework free and open source written in Java to facilitate the creation of applications distributed and scalable for applications to work with thousands of nodes and petabytes of data. 

• The cloud enables organizations to deploy Hadoop without acquiring hardware or expertise. •Vendors with a cloud offer include: Microsoft, Amazon, IBM 9 and Google.

Page 33: software testing

• Thank you