18
qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjklzxcvb nmqwertyuiopasdfghjklzxcvbnmqwer tyuiopasdfghjklzxcvbnmqwertyuiopas dfghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq wertyuiopasdfghjklzxcvbnmqwertyuio pasdfghjklzxcvbnmqwertyuiopasdfghj klzxcvbnmqwertyuiopasdfghjklzxcvbn mqwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmrty uiopasdfghjklzxcvbnmqwertyuiopasdf ghjklzxcvbnmqwertyuiopasdfghjklzxc vbnmqwertyuiopasdfghjklzxcvbnmqw [Software Testing] [Manual Testing] 1/2/2015 Mehul Chauhan (B.E. Computer Engineering) Ahmedabad

Manual testing

Embed Size (px)

Citation preview

Page 1: Manual testing

qwertyuiopasdfghjklzxcvbnmqwertyui

opasdfghjklzxcvbnmqwertyuiopasdfgh

jklzxcvbnmqwertyuiopasdfghjklzxcvb

nmqwertyuiopasdfghjklzxcvbnmqwer

tyuiopasdfghjklzxcvbnmqwertyuiopas

dfghjklzxcvbnmqwertyuiopasdfghjklzx

cvbnmqwertyuiopasdfghjklzxcvbnmq

wertyuiopasdfghjklzxcvbnmqwertyuio

pasdfghjklzxcvbnmqwertyuiopasdfghj

klzxcvbnmqwertyuiopasdfghjklzxcvbn

mqwertyuiopasdfghjklzxcvbnmqwerty

uiopasdfghjklzxcvbnmqwertyuiopasdf

ghjklzxcvbnmqwertyuiopasdfghjklzxc

vbnmqwertyuiopasdfghjklzxcvbnmrty

uiopasdfghjklzxcvbnmqwertyuiopasdf

ghjklzxcvbnmqwertyuiopasdfghjklzxc

vbnmqwertyuiopasdfghjklzxcvbnmqw

[Software Testing]

[Manual Testing]

1/2/2015

Mehul Chauhan (B.E. Computer Engineering)

Ahmedabad

Page 2: Manual testing

Software Testing:-

Software testing is a process used to identify the correctness, completeness, and

quality of developed computer software.

Testing is the process of executing a program with the intention of finding errors.

Different Type of Testing:-

Unit testing: - Testing of individual software components or modules. Typically done

by the programmer and not by testers, as it requires detailed knowledge of the internal

program design and code.

Smoke Testing: - Smoke testing also known as “Build verification testing” is type of

software testing.

Smoke testing is a testing technique that is inspired from hardware testing.

Sanity Testing: - Testing to determine if a new software version is performing well

enough to accept it for a major testing effort. It is performed by the testing teams.

A Sanity test is used to determine a small section of the application is still working after a minor change.

Integration Testing: - Testing of integrated modules to verify combined functionality

after integration. Modules are typically code modules, individual applications, client and

server applications on a network, etc

White box testing: - knowledge of the internal logic of an application’s code. Known

as Glass box Testing.

Internal software and code working should be known for this type of testing.

Tests are based on coverage of code statements, branches, paths, conditions.

The other name is glass box testing, clear box testing.

Black box testing: - Internal system design is not considered in this type of testing.

Tests are based on requirements and functionality.

User Acceptance: - Normally this type of testing is done to verify if system meets the

customer specified requirements. User or customers do this testing to determine

whether to accept application.

Page 3: Manual testing

Alpha Testing: - In house virtual user environment can be created for this type of

testing. Testing is done at the end of development. Still minor design changes may be

made as a result of such testing.

Beta Testing: - Testing typically done by end-users or others. Final testing before

releasing application for commercial purpose.

Performance Testing: - Term often used interchangeably with ‘stress’ and ‘load’

testing. To check whether system meets performance requirements.

Load Testing: - It’s a performance testing to check system behavior under load.

Testing an application under heavy loads, such as testing of a web site under a range of

loads to determine at what point the system’s response time degrades or fails.

Volume Testing: - Volume testing refers to testing a software application or the

product with a certain amount of data.

Stress Testing: - System is stressed beyond its specifications to check how and when

it fails. Performed under heavy load like putting large number beyond storage capacity,

complex database queries, continuous input to system or database load.

Functional Testing: - Higher level tests are used.

Functional tests check for the correctness output with respect to the input in the

specification

Focus is given on the final output delivered.

System Testing: - Software testing is the testing of a complete and fully integrated

software product.

Entire system is tested as per the requirements. Black-box type testing that is

based on overall requirements specifications, covers all combined parts of a

system.

Usability Testing: - User-friendliness check. Application flow is tested, Can new user

understand the application easily, Proper help documented whenever user stuck at any

point. Basically system navigation is checked in this testing.

Incremental Testing: - After unit testing is completed developer performs integration

testing.

Page 4: Manual testing

The developers integrate the modules one by one using stubs or drivers to uncover the defects.

Monkey Testing: - It is random testing performed by automated testing tools (after the latter are developed by humans). These automated testing tools are considered "monkeys", if they work at random.

We call them "monkeys" because it is widely believed that if we allow six

monkeys to pound on six typewriters at random, for a million years, they will

recreate all the works of Isaac Asimov.

Smart monkeys - are valuable for load and stress testing they will find a significant number of bugs, but are also very expensive to develop.

Gorilla Testing: - Software testing technique which focuses on heavily testing of one

particular module. It is performed by quality assurance teams, usually when running full

testing.

Agile Testing: - A software testing practice that follows the principles of agile

software development is called agile testing.

Ad-hoc Testing: - It is a method of software testing without any planning and

documentation.

The tests are conducted informally and randomly without any formal expected

results.

Accessibility Testing: - Type of testing which determines the usability of a product to the people is having disabilities (deaf, blind, mentally disabled etc).

The evaluation process is conducted by persons having disabilities.

Exploratory Testing: - Without the knowledge of requirements testing is done by

giving random inputs.

Recovery Testing: - It is an extension of error handling testing.

Page 5: Manual testing

Bug Life Cycle:-

Bug: - Product is released in the market found before production.

Defect: - is released in the market found after production.

Failure: - External behavior in correct.

Fault: - Discrepancy in code that cases a failure.

Error: - Refers different between actual output and expected output.

Not an issue

Issue not Issue conforms

Resolved

Issue Resolved

Defect States:- New/open: - When QA files new bug.

Fixed: - When developer makes necessary code changes and verifies the changes then

he/she can make bug status as ‘Fixed’ and the bug is passed to testing team.

Verified:-

Closed: - If bug is verified by the QA team and if the fix is ok and problem is solved then

QA can mark bug as ‘Closed’.

Duplicate:- If the bug is repeated twice or the two bugs mention the same concept of

the bug, then one bug status is changed to “duplicate“.

Reject: - If the developer feels that the bug is not genuine, he rejects the bug. Then the

state of the bug is changed to “Rejected”.

Assigned: - ‘Assigned to’ field is set by project lead or manager and assigns bug to

developer.

New/open

Fixed Reject Double/Duplicate

Closed

Verified

Page 6: Manual testing

Test Initiation:-

Test Initiation is the first stage of STLC process. In this stage, Test

Strategy document will be created.

Test strategy is a business level document which informs the Managers, Developers and

testers about the testing process need to be followed.

1. Levels of Testing: In the normal testing process, there are three major levels named as Unit testing, Integration testing and System Testing. Generally Unit testing will be done by Developers itself. Integration testing and System testing will be done by Testers. These responsible people’s details will be named here. 2. Roles and Responsibilities: Generally in any Testing Project, Project Manager, Test Lead and Testers will be there. In this we specify what are the responsibilities should be done by individual as Role wise. 3. Test bed Requirements: In this, we specify the Hardware required, operating system, supporting software’s, Security packs, and prerequisites for the application are discussed here. 4. Tools: In this level, Depending on testing requirements appropriate testing tools will be selected. If any plans for automation, tools like QTP (Quick Test Professional), Selenium will be selected. Load Runner will be used for Performance Testing. For QA Management we use tool like QC (Quality Control). 5. Test Priorities: In the testing, Depending on the importance we assign the priorities for the test cases. We first execute the high priority test case first. The standards for assigning priority will be detailed here.

6. Test Closure: When to stop testing, when to proceed, what are the documents need to send to the customer...will be discussed here.

Software Development Life Cycle (SDLC) Model:-

Depends upon the Project Requirements, the appropriate model will be selected.

There are four Standard SDLC models.

Waterfall Model Prototype Model Incremental Model Spiral Model

Page 7: Manual testing

Waterfall Model Waterfall Model will be followed in a series of Steps. Its goes through following 6 stages one by one

Requirements Gathering

Analysis & Planning

Design

Coding

Testing

Release & Maintenance This model is also called as linear sequential model. This model is preferable when Customer requirements are clear and complete.

Prototype Model

If the customer requirements are unclear and still configuring...we use this method. After receiving the requirements from the customer, Prototype will be developed by a company and to get the feedback, will sends it to the customer. Depends upon the customer feedback, we will revert back him with new Prototype. Until the final prototype is fixed, we continue the same Process. Requirements gathering-->Develop Prototype-->Feedback

After the prototype is fixed it will be followed by another five stages

Analysis & Planning Design Coding Testing Release & Maintenance

Incremental Model

This model is useful, when the Customer requirements are clear but not complete. Customer is giving requirements in the installment basis. In this model, we will follow iteration with available requirements and when the new requirements are come...we follow the same process again. This process will be Continued up to the all the requirements are completed.

Stages followed are

Requirements gathering

Analysis & Planning

Design

Coding

Testing

Release & Maintenance

Above stages will be repeated up to the all requirements are completed.

Page 8: Manual testing

Spiral Model

If the Customer requirements are clear and complete but enhancing in future, we use this model. In this model all the stages will be completed as below mentioned

Requirements Gathering

Analysis & Planning

Design

Coding

Testing

Release & Maintenance

When the new enhancements need to be done in the future.we will go through all the stages of the process.

Verification and Validation:-

Verification is process confirming that software process meets its specification.

Validation is the process confirming that it meets the user’s requirement.

Verification:- is the process of determining whether one phase of a software process

conforms to its previous phase.

Validation:- is the process of determining whether a fully developed system conforms to its

requirements specification.

Verification: "Are we building the product right”.

The software should conform to its specification.

Validation: "Are we building the right product”.

The software should do what the user really requires.

Verification: Testing Quality work products (Documentation such as Test Plan, Test Cases Etc…) by performing Reviews and conducting meeting etc… and it is Static.

Validation: Testing the Working Software based on its Requirements and it is Dynamic.

Page 9: Manual testing

V-Models:-

The V - model is SDLC model where execution of processes happens in a sequential manner in V-shape. It is also known as Verification and Validation model. V model is a framework, which describes the software development life cycle activities right from requirements specification up to software maintenance phase. V - Model is an extension of the waterfall model and is based on association of a testing phase for each corresponding development stage.

Description of V Model:

It is Verification & Validation model, known as V Model, in this model all development phases can be integrated with testing phases.

It is considered to be an extension of the Waterfall model. This is because just like the waterfall model, it’s a well structured method in which the different phases progress in a sequential or linear way. That means each phase begins only after the completion of the previous phase.

User Requirements Vs Acceptance Testing:- Business Analyst category people gather requirements and the document the requirements, after documentation Reviews, Meetings like verifications will take place in order get correct & Complete Requirements.

Page 10: Manual testing

Software Requirements Vs System Testing:-

Development Manager/Tech Manager converts User Requirements as Software Requirements and Reviews, Meetings like verification methods will be performed on Software Requirements, after Verification Project manager provides Approval. Independent testers generate test cases from Software Requirements in order to perform System Testing.

Global Design Vs Integration Testing:- System Architect / senior developer creates Global design, Informal Review/ Walk through / Technical Review / Inspection like Verification methods will be applied on Design documents. Developers perform Integration Testing based on Software Global Design.

Detailed Design Vs Unit / Component Testing:- Developers perform Unit /Component Testing based on Software Detailed Design.

V- Model Pros and Cons:-

Pros:-

This highly disciplined model and phase are complete one at a time.

Simple and easy to understand and use.

Cons:-

High risk and uncertainty.

Poor model for long ongoing projects.

Software Testing Life Cycle (STLC)

Software Testing Life Cycle (STLC) is the testing process which is executed in systematic and planned manner. In STLC process, different activities are carried out to improve the quality of the product.

Below are the phases of STLC:

Requirement Analysis

Test Planning

Test Case Development

Environment Setup

Test Execution

Test Cycle Closure

Page 11: Manual testing

TEST PLANNING – Preparing the test strategy & planning

TEST DEVELOPMENT – Creating the testing environment

TEST EXECUTION – Writing the test cases/Creating & Executing the Test Script

RESULT ANALYSIS – Analysis result and Bug report

BUG TRACKING – Analyze Bugs and application errors

REPORTING – This is a post conditional process which involves collecting data from end users

Requirement Analysis:-

In this phase testers analyze the customer requirements and work with developers during the design phase to see which requirements are testable and how they are going to test those requirements. It is very important to start testing activities from the requirements phase itself because the cost of fixing defect is very less if it is found in requirements phase rather than in future phases. Activities: Prepare the list of question or queries and get resolved from Business Analyst, System Architecture, Client, Technical Manager/Lead etc. Deliverables: List of questions with all answers to be resolved from business i.e. testable necessities

Test Planning:- This phase is also called Test Strategy phase. Typically, in this stage, a Senior QA manager will determine effort and cost estimates for the project and would prepare and finalize the Test Plan.

A Software Test Plan is a document describing the testing scope and activities. It is the basis for formally

testing any software/product in a project.

Activities: Define object & scope of the project List down the testing type drawn in the STLC.

Test effort evaluation and resource planning.

Define the testing process overview.

Define the test environment necessary for entire project.

Requirement Analysis

Test Planning

Test Case

Development

Environment Setup

Test Execution

Test Cycle Closure

Page 12: Manual testing

Test Case Development:- This phase involves creation, verification and rework of test cases & test scripts. Test data , is identified/created and is reviewed and then reworked as well.

Identification of test scenario. Identification of test data for the identified scenarios Test cases signed off

Test Environment Setup:-

Test environment decides the software and hardware conditions under which a work product is tested.

Test environment set-up is one of the critical aspects of testing process and can be done in parallel with

Test Case Development Stage.

Test Execution:-

During this phase test team will carry out the testing based on the test plans and the test cases

prepared. Bugs will be reported back to the development team for correction and retesting will be

performed.

Test Cycle Closure:- Activities: Evaluate cycle completion criteria based on Test coverage, value, price, Time, important

Business Objectives, and Software set up test metrics based on the above parameters. Prepare Test

closure report.

Deliverables: Test Closure report Test metrics

Test Planning:-

The goal of test planning is to establish the list of tasks which, if performed, will identify all of the requirements that have not been met in the software.

Test Planning (Primary Role: Test Lead/Team Lead) Input:/Reference: a) Requirements specification b) Test Strategy c) Project plan d) Use cases/design docs/Prototype screen e) Process Guidelines docs

Page 13: Manual testing

Templates: Review Report Test Plan Roles: Test Lead/team Lead: Test Planning Test Engineers: Contribution to Test plan BA: Clarifications on Requirements Tasks: a) Understanding & Analyzing the Requirements b) Test Strategy Implementation c) Test Estimations (Time, Resources-Environmental, Human, Budget) d) Risk Analysis f) Team formation g) Configuration management plan h) Test Plan Documentation i) Test Environment set-up defining Output: Test Plan Document

Test Case:-

A test case is a document, which has a set of test data, preconditions, expected results and post conditions, developed for a particular test scenario in order to verify compliance against a specific requirement.

Typical Test Case Parameters:

Test Case ID

Test Scenario

Test Case Description

Test Steps

Prerequisite

Test Data

Expected Result

Actual Result

Environment Information

Comments

Page 14: Manual testing

Test cases for Pen:-

1. To check the pen type 2. To check the cap is present or not 3. To check the pen ink is filled or not 4. To check the pen writing or not 5. To check the pen color 6. To check the ink color

Test cases for fan:- 1: Check whether it moves or not. Description: Ensure that fan should moves properly. Expected result: Fan should be moving. 2: Check it should have minimum 3 blades. Description: Ensure that length of fan blades should be considered to 3 blades. Expected result: Length of fan blades should not be shorter than 3 blades. 3: Check it should be on when electric button (switch) is on. Description: Ensure that fan should start working when electric switch is on. Expected result: Fan should be on when electric button (switch) is on. 4: Check whether Speed of the fan definitely be controlled by the regulator. Description: Ensure that speed of fan should be controlled. Expected result: Fan speed should be controlled by the regulator. 5: Check it should be stop working once the electric switch off. Description: Ensure that fan should stop working once the electric switch is off. Expected result: Fan should be off once electric switch is off. 6: Check Fan should always work in clock-wise direction. Description: Ensure that direction of fan should be in clock-wise. Expected result: Fan should work in clock-wise direction. 7: Check the color of the fan blades. Description: Always ensure that all the blades of fan have same color. Expected result: Color of all the blades of fan should be of same color. 8: Check the size of the fan blades. Description: Always ensure that all the blades of fan have same size. Expected result: Size of all the blades of fan should be of same size. 9: Check whether speed varies when regulator adjusted. Description: Ensure that speed of fan varies when we adjust the regulator. Expected result: Speed of fan varies while adjusting the regulator.

Page 15: Manual testing

Test cases for ATM machine:-

1. To verify ATM card Insertion 2. To verify ATM card Insertion in wrong angle 3. To verify invalid ATM card Insertion 4. To verify Language selection 5. To verify Pin entry 6. To verify invalid Pin entry 7. To verify invalid Pin entry 3 times 8. To verify Account Type selection 9. verify withdrawal option selection 10. verify Amount entry 11. Verify operation when our entered amount is greater than possible balance. 12. Verify operation when our entered amount is greater than day limit. 13. Verify after successful transaction if customer doesn't take the money.

Test Scenario:-

Test Scenario - A Scenario is any functionality that can be tested.It is also called Test Condition or Test Possibility. Scenario testing is done to make sure that the end to end functioning of software is working fine, or all the business process flows of the software are working fine. In scenario testing, testers take assistance from clients, stakeholders and developers to create test scenarios.

Importance of Scenario Testing

As you know that exhaustive testing of any software application is not possible because of the following reasons:

Large number of data combinations. Large number of possible paths in software.

Page 16: Manual testing

Test Documentation:-

Test documentation is the complete suite of artifacts that describe test planning, test design, test execution, test results and conclusions drawn from the testing activity. As testing activities typically consume 30% to 50% of project effort, testing represents a project within a project. Testing activities must therefore be fully documented to support resource allocation, monitoring and control. Tests must be planned and documented to ensure that test coverage is systematic and complete.

GUI Testing:-

What is GUI? There are two types of interfaces in a computer application. Command Line Interface is where you type text and computer responds to that command. GUI stands for Graphical User Interface where you interact with the computer using images

rather than text.

What is GUI Testing? Graphical User Interface (GUI) testing is the process of testing the system's GUI of the System

under Test. GUI testing involves checking the screens with the controls like menus, buttons, icons, and all types of bars - tool bar, menu bar, dialog boxes and windows etc.

The following checklist will ensure detailed GUI Testing.

Check all the GUI elements for size, position, width, length and acceptance of characters or numbers.

For instance, you must be able to provide inputs to the input fields.

Check you can execute the intended functionality of the application using the GUI

Check Error Messages are displayed correctly

Check for Clear demarcation of different sections on screen

Check Font used in application is readable

Check the alignment of the text is proper

Check the Color of the font and warning messages is aesthetically pleasing

Check that the images have good clarity

Check that the images are properly aligned

Check the positioning of GUI elements for different screen resolution.

Page 17: Manual testing

Important Questions I will list out some Manual testing interview questions.

1. What is the software testing? 2. What is the importance of testing in product development? 3. Which SDLC (Software Development Life Cycle) followed by your company? 4. What is V-model? Importance of it? 5. What are the advantages of V-Model compared to previous SDLC models? 6. What is the Difference between Testing and QA (Quality Assurance)? 7. What is Unit testing? List out the White-box testing techniques? 8. Difference between White-box and Black-box testing? 9. What is integration testing? And Techniques used in it? 10. What is the difference between Functional Testing and Non-Functional Testing? 11. What is BRS (Business requirement Specification) and SRS (System Requirement Specification)? 12. What are Design documents? 13. What is STLC and Stages in the STLC process? 14. What is Test Deliverables? What are they? 15. What is Traceability matrix? 16. What is Test Plan? Format of the Test Plan? 17. What is the Test Strategy document? Who prepares it? 18. Is testing assures bug free product? 19. What is the difference between retesting and regression testing? 20. Difference between Globalization and Localization testing? 21. What is the Performance testing? Different types of Performance Testing? 22. Difference between Load testing and Stress testing?

Page 18: Manual testing

23. What is Functional Testing? Types of Functional Testing techniques? 24. What is Non-Functional Testing? Types of Non-Functional Testing? 25. What is black-box testing? Techniques used in black-box testing? 26. What is System Testing? 27. What are the review techniques? 28. What is Bug? And Life-cycle of Bug? 29. What are Entry Criteria and Exit Criteria? 30. What is the difference between Severity and Priority? 31. Tell me the sample scenario with Highest Severity and Lowest priority? 32. Tell me the sample scenario with Lowest Severity and Highest priority? 33. What is show-stopper? 34. What is User Acceptance testing? And where it’s performed? 35. What is the defect Leakage? And how you handle it as tester? 36. What is test-case, test suite and test-bed? 37. How you frame the test cases?