fundamentals of software testing

28
Fundamentals of Software Testing Noha Gamal QA Engineer

Upload: noha-gamal

Post on 06-Aug-2015

89 views

Category:

Engineering


2 download

TRANSCRIPT

Page 1: Fundamentals of software testing

Fundamentals of Software Testing

Noha GamalQA Engineer

Page 2: Fundamentals of software testing

Agenda

● Software testing definition● Bug report and severity● Test cases● Software testing techniques● Software testing types● Introduction to selenium web-driver ● Demo

Page 3: Fundamentals of software testing

Software testing

Software Testing is the process used to find defects in a product. Testing should focus on both a containment effort to remove defects from your software to gain confidence about the level of quality and to provide information

Page 4: Fundamentals of software testing

What are bugs?!

Bugs are unexpected product behaviors compared to expectations. A bug can be the absence of an expected feature from the product.

Page 5: Fundamentals of software testing

Causes of Software bugs

Bugs arise from mistakes and errors made by developers and also because of:● time pressure.● Last minute changes.● Communication failure.

Page 6: Fundamentals of software testing

Bug Report

● Summary

● Steps to reproduce

● Actual Result

● Expected Result

● Attachments

● Browser● OS● Severity● Priority

Page 7: Fundamentals of software testing

Bug Severity

Blocker: When entry point to the system is blocked

Critical: When a feature is blocked. No workaround.

Major: When a feature is blocked with workaround.

Minor: For features with missing acceptance criteria,

alignment issue

Trivial: For cosmetics, typos, text difference, misspelling.

Page 8: Fundamentals of software testing

Bug life cycle

Page 9: Fundamentals of software testing

Test Case

● A test case is a set of conditions or scenarios under which a tester will determine whether a system under test satisfies requirements or works correctly.

● It should be negative and positive scenarios.● It can be manual and automated.● Examples

Page 10: Fundamentals of software testing

Software testing techniques

1) Black Box Testing Technique:

● Also known as specification based testing● Testing without knowing the internal workings of

the code ● WHAT a system does, rather than HOW it does It● Test phases by testing teams

Page 11: Fundamentals of software testing
Page 12: Fundamentals of software testing

Software testing techniques

2) White Box Testing Technique:● Also known as structural or glass box testing.

● Testing based upon the structure of the code

● Test phases by development teams

Page 13: Fundamentals of software testing
Page 14: Fundamentals of software testing

Testing levels/types

1) Unit testing

● A unit is smallest testable piece of software.● It is basically done by the developers to make

sure that their code is working fine. They test their piece of code which they have written like classes, functions, interfaces and procedures.

● It is a white box type of testing.

Page 15: Fundamentals of software testing

2) Integration testing

● It is basically done by the developers and It is done when two units are integrated, in order to test the behavior and functionality of both the units after integration.

● It is a white box type of testing.

Page 16: Fundamentals of software testing

3) Functional test:

● It is the type of testing done against the business requirements of application. It is a black box type of testing.

● Functional testing involves following sub-types of testings:

➢Regression test➢Smoke test➢Usability test

Page 17: Fundamentals of software testing

➢ Smoke test: It is performed to ascertain that the critical functionalities of the program is working fine. Smoke testing is a subset of Regression testing.

➢ Regression test: It is always done to verify that modified code does not break the existing functionality of the application and works within the requirements of the system .

Page 18: Fundamentals of software testing

➢ Usability test: Usability involves making a web-site's interface easier to use and simpler to understand, so that the user’s experience is as enjoyable as possible.

Page 19: Fundamentals of software testing

4) Non-Functional testing:

● It is totally different from the functional testing. Tests the application based on the client and performance requirements.

● The non functional tests can be effective by using testing tools.

● Non-functional testing involves following sub-types of testings:

➢ Load testing➢ Stress testing

Page 20: Fundamentals of software testing

➢ LOAD TESTING – Also Known as Scalability Testing. During this test, test engineers execute application build under customer expected configuration and load to estimate performance.

➢ STRESS TESTING – During this test, Test engineers estimates the peak load. To find out the maximum number of users for execution of out application user customer expected configuration to estimate peak load.

PEAK LOAD > CUSTOMER LAOD (EXPECTED)

Page 21: Fundamentals of software testing

5) Alpha Testing

● The first testing should occur in-house with different operating systems and different browsers.

● An alpha version may not yet contain all of the planned features.

Page 22: Fundamentals of software testing

6) Beta Testing

● Beta testing is considered the second phase after alpha testing.

● Beta tests are typically external tests to identify any performances issues or bugs prior to an official release.

● Beta tests can be open or closed. A closed beta test is used to control the number of users participating. An open test is open to anyone who has an interest in beta testing.

Page 23: Fundamentals of software testing

7) User acceptance testing (UAT)

● Usually the final stage of validation● Conducted by or visible to the end user and

customer● Usually for ensuring the system is ready for

deployment into production● Testing is based on the defined user

requirements

Page 24: Fundamentals of software testing

Selenium Web-driver

● Selenium is a Functional Automation tool for Web applications.

● An open source tool (No cost Involved in it).● Supports the languages like Java, PHP, Perl, Python,

Ruby and C#.● Supports the browsers like IE, Mozilla Firefox, Safari,

Google Chrome and Opera.● Supports the operating systems like Windows, Linux

and Mac.

Page 25: Fundamentals of software testing

Selenium Methods(samples)

➢ Navigation: get(“www.example.com”)➢ Locating an element:

➢ find_element_by_id(“id”)➢ find_element_by_class_name(“”)

➢ click()➢ send_keys(“hello“)➢ close()

Page 26: Fundamentals of software testing

Demo Time

Page 27: Fundamentals of software testing

References

● ISTQB books – http://www.istqb.org/

● http://selenium-python.readthedocs.org/getting-started.html

Page 28: Fundamentals of software testing