Fundamentals of software testing
-
Upload
noha-gamal -
Category
Engineering
-
view
86 -
download
2
Transcript of Fundamentals of software testing
Fundamentals of Software Testing
Noha GamalQA Engineer
Agenda
● Software testing definition● Bug report and severity● Test cases● Software testing techniques● Software testing types● Introduction to selenium web-driver ● Demo
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
What are bugs?!
Bugs are unexpected product behaviors compared to expectations. A bug can be the absence of an expected feature from the product.
Causes of Software bugs
Bugs arise from mistakes and errors made by developers and also because of:● time pressure.● Last minute changes.● Communication failure.
Bug Report
● Summary
● Steps to reproduce
● Actual Result
● Expected Result
● Attachments
● Browser● OS● Severity● Priority
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.
Bug life cycle
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
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
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
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.
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.
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
➢ 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 .
➢ 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.
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
➢ 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)
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.
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.
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
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.
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()
Demo Time
References
● ISTQB books – http://www.istqb.org/
● http://selenium-python.readthedocs.org/getting-started.html