Upload
mehul-chauhan
View
78
Download
2
Tags:
Embed Size (px)
Citation preview
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
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.
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.
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.
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
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
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.
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.
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.
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
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
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
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
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.
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.
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.
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?
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?