Qaanalysttraining 09 15 2016 170715060500
Qaanalysttraining 09 15 2016 170715060500
Qaanalysttraining 09 15 2016 170715060500
reference document
Defines project goals into defined functions and operation of the intended application. It is the process
of gathering and interpreting facts, diagnosing problems and recommending improvements to the
system. Analyzes end-user information needs and also removes any inconsistencies and incompleteness
in these requirements.
This is done by Business Analyst or Business system Analyst or Quality Assurance Professionals or
technical writer in companies.
The requirement analysis is done the next step is to clearly define and document the product
requirements and get them approved from the customer or the market analysts. This is done through
.SRS. . Software Requirement Specification document which consists of all the product requirements to
be designed and developed during the project life cycle.
Business Requirement Specification or BRS, System Requirement Specification or SRS, Business
Requirement Document or BRD are different document names used for Requirement document in the
market.
Stage 3: Design
Based on the requirements specified in SRS, usually more than one design approach for the product architecture
is proposed and documented in a DDS - Design Document Specification.
A design approach clearly defines all the architectural modules of the product along with its communication and
data flow representation with the external and third party modules (if any). The internal design of all the modules
of the proposed architecture should be clearly defined with the minutest of the details in DDS.
Functional Design Document or FDD, Design Document Specification or DDS or Functional Document are
commonly used name for design document in the companies.
This document is prepared by Senior Developer, Architect, software architect or software engineers.
Stage 4: Implementation
This consists of Coding , Testing & Deployment of the software testing life cycle.
Coding – Software is written using different programming languages. Integration of software
to do testing is done during coding phase. Coding is done by Developers.
Testing: All integrated modules are tested and defects re reported for fix using Requirements.
Testing is Done by QA Analyst, testers, software testers, software test engineers.
Deployments: Final mode of application to go live for real users.
Deployment is done by Developers, networking engineers and system analysts, support
analyst. Depends on company to company.
Stage 5: Maintenance
During the maintenance stage of the SDLC, the system is assessed to ensure it
does not become obsolete. This is also where changes are made to initial software.
It involves continuous evaluation of the system in terms of its performance.
Maintenance is handled by support teams. But it depends on company to
company process. Sometimes its maintained by Developers or system analysts.
Software Development Methodologies
1. Waterfall Methodology
2. Agile Methodology (Scrum)
3. Spiral Methodology
4. V Model
5. Big Bang Model
6. Iterative Model
1. Waterfall Methodology
This methodology is mostly used by all companies. The waterfall model is a sequential
development approach, in which development is seen as flowing steadily downwards (like
a waterfall) through several phases, typically:
1. Requirements analysis resulting in a software requirements specification
2. Software design
3. Implementation
4. Testing
5. Integration, if there are multiple subsystems
6. Deployment (or Installation)
7. Maintenance
2. Agile (Scrum) Methodology
Static Testing:
Example of static testing is verification:
static testing is an important testing technique that takes the form of Business requirement review, Functional requirement review,
design reviews, code walkthroughs and test documentation review. It is a continuous activity and not done just by testers.
Static Testing : It is the process of testing the application code(and/or related documents) with out running it, it can be code review,
walk through etc.
Dynamic Testing:
Example of Dynamic testing is Validation.
The dynamic testing part is more hands on and happens on the product itself and not on an artifact or a representation of the
product. A much formal process of test case/condition identification, coverage considerations, execution and defect reporting all
mark the dynamic testing methods.
Dynamic Testing : It is the process of testing the application/code by running it. (ie black box testing).
Verification & Validation Differences
Functional testing verifies that each function of the software application operates
in conformance with the requirement specification. This testing mainly involves
black box testing and it is not concerned about the source code of the application.
Each and every functionality of the system is tested by providing appropriate
input, verifying the output and comparing the actual results with the expected
results. This testing involves checking of User Interface, APIs, Database, security,
client/ server applications and functionality of the Application Under Test. The
testing can be done either manually or using automation
Example of functional testing: login functionality, Register, Forget Password etc.
Regression Testing
Regression testing is a type of software testing that verifies that software previously
developed and tested still performs correctly after it was changed or interfaced with
other software. Changes may include software enhancements, patches, configuration
changes, Defect Fixes etc.
EG: You have running Skype Voice call application. You want to integrate new
functionality on skype with Video call abilities. Now the Regression testing will be done
on the voice call functions to make sure the video call functionality will not impact the
already running voice call feature of the application.
Most of the Regression testing are encouraged to do automated (Automation testing)
to save time and money.
This testing is done both ways> Automated or Manual
Retesting, Smoke testing
Re-testing: Re-testing is something we have to test after and after for validation
purpose. Example: Once defect is fixed we need to re-test the defects to make sure
failing function/operation passes. If first time re-test fails we again need to re-test after
second fix. Retesting is done to make sure that bug is fixed and failed functionality is
working fine or not, This is kind of verification method followed in testing field for the
fixed bugs.
Smoke Testing: Smoke Testing is to make sure all most important(Critical)
functionalities are working as expected after developed.
These test cases are executed prior to start actual testing to
check critical functionalities of the program is working fine. This set of test cases
written such a way that all functionality is verified but not in deep. The objective is not to
perform exhaustive testing
Sanity Testing
The objective of this testing is to verify the "stability" of the system in order to The objective of the testing is to verify the "rationality" of the system in order to
proceed with more rigorous testing proceed with more rigorous testing
This testing is performed by the developers or testers Sanity testing is usually performed by testers
Smoke testing is usually documented or scripted Sanity testing is usually not documented and is unscripted
Smoke testing is a subset of Regression testing Sanity testing is a subset of Acceptance testing
Smoke testing exercises the entire system from end to end Sanity testing exercises only the particular component of the entire system
Smoke testing is like General Health Check Up Sanity Testing is like specialized health check up
AD-Hoc Testing
Adhoc testing is an informal testing type with an aim to break the system. This
testing is usually an unplanned activity . It does not follow any test design
techniques to create test cases. In fact is does not create test cases altogether!
This testing is primarily performed if the knowledge of testers in the system under
test is very high. Testers randomly test the application without any test cases or
any business requirement document.
Adhoc Testing does not follow any structured way of testing and it is randomly
done on any part of application. Main aim of this testing is to find defects by
random checking. Adhoc testing can be achieved with the testing technique
called Error Guessing. Error guessing can be done by the people having enough
experience on the system to "guess" the most likely source of errors.
Unit Testing, Integration Testing, System
Testing, UAT,(Testing Levels)
Unit testing: Unit testing of software applications is done during the development (coding) of an application. The
objective of unit testing is to isolate a section of code and verify its correctness. In procedural programming a unit
may be an individual function or procedure. The goal of unit testing is to isolate each part of the program and show
that the individual parts are correct. Unit testing is usually performed by the developer.
Integration Testing: Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase
in software testing in which individual software modules are combined and tested as a group. It occurs after
unit testing and before validation testing.
System Testing: In the world of software testing, system testing is the testing of a complete and fully integrated
software product. Usually software is only one element of a larger computer based system. Ultimately, software is
interfaced with other software/hardware systems. System testing is actually a series of different tests whose
sole purpose is to exercise the full computer based system. System testing falls under the black box testing
category of software testing. White box testing is the testing of the internal workings or code of a software
application. In contrast, black box or system testing is the opposite. System testing involves the external workings of
the software from the user's perspective.
UAT: UAT = User Acceptance Testing: This testing is done after Unit, Integration, System testing. This testing is
done by real application users to make sure system meet business requirement.
Alpha Testing, Beta Testing,
Alpha Testing: This is done before product goes live by client or real users to meet their expectations.. Alpha testing
performed by Testers who are usually internal employees of the organization. Alpha Testing performed at developer's
site. Reliability and security testing are not performed in-depth Alpha Testing. Alpha testing involves both the white box
and black box techniques
Alpha testing requires lab environment or testing environment. Long execution cycle may be required for Alpha
testing. Critical issues or fixes can be addressed by developers immediately in Alpha testing. Alpha testing is to
ensure the quality of the product before moving to Beta testing. Beta testing: This testing is done with a some group
of real users in production environment to meet their requirement expectations.
Beta Testing:
Beta testing is performed by Clients or End Users who are not employees of the organization. Beta testing is
performed at client location or end user of the product
Reliability, Security, Robustness are checked during Beta Testing. Beta Testing typically uses black box testing. Beta
testing doesn't require any lab environment or testing environment. Software is made available to the public and is said
to be real time environment. Only few weeks of execution are required for Beta testing. Most of the issues or feedback is
collected from Beta testing will be implemented in future versions of the product. Beta testing also concentrates on
quality of the product, but gathers users input on the product and ensures that the product is ready for real time users.
MODULE: 2- 09/09/2016- Day 3
White Box Testing: is a method of testing software that tests internal structures or
workings of an application, as opposed to its functionality. White-box testing is a method
of testing the application at the level of the source code.
White box testing technique is used in below levels:
Unit testing. White-box testing is done during unit testing to ensure that the code is working as
intended, before any integration happens with previously tested code.
Integration testing. White-box testing at this level are written to test the interactions of each
interface with each other.
Regression testing. White-box testing during regression testing is the use of recycled white-box
test cases at the unit and integration testing le
White Box and Black box testing-2
Black Box Testing: Black-box testing is a method of software testing that examines the functionality of
an application without peering into its internal structures or workings. This method of test can be
applied to virtually every level of software testing: unit, integration, system and acceptance.
Specific knowledge of the application's code/internal structure and programming knowledge in general
is not required. The tester is aware of what the software is supposed to do but is not aware of how it
does it.
Test cases are built around specifications and requirements, i.e., what the application is supposed to do.
Test cases are generally derived from external descriptions of the software, including specifications,
requirements and design parameters. Although the tests used are primarily functional in nature, non-
functional tests may also be used. The test designer selects both valid and invalid inputs and
determines the correct output,
Non-functional Testing-checks how system
operates
Non-functional testing is the testing of a software application or system for its non-functional
requirements: the way a system operates, rather than specific behaviors of that system.
Non-functional testing includes:
Baseline testing, Compliance testing
Documentation testing, Endurance testing
Load testing, Localization testing and Internationalization testing
Performance testing, Recovery testing
Resilience testing, Security testing
Scalability testing, Stress testing
Usability testing, Volume testing
Performance Testing
GUI Testing is to test look and feel of the application. GUI testing involves checking the screens with the controls like menus, buttons, icons, and
all types of bars - toolbar, menu bar, dialog boxes and windows, etc.
What do you Check in GUI Testing?
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.
Graphical USER Interface (GUI Testing)-2
Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence to ensure that the quality goals have been
met. In STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals and deliverables. Different organizations have
different phases in STLC; however the basis remains the same.
Below are the phases of STLC:
Requirements phase: During this phase of STLC, analyze and study the requirements. Have brain storming sessions with other teams and try to find out
whether the requirements are testable or not.
Planning Phase : In practical scenarios, Test planning is the first step of the testing process. In this phase we identify the activities and resources which would
help to meet the testing objectives.
Analysis phase: This STLC phase defines “WHAT” to be tested. We basically identify the test conditions through the requirements document, product risks and
other test basis. The test condition should be traceable back to the requirement. There are various factors which effect the identification of test conditions:
– Levels and depth of testing
– Complexity of the product
– Product and project risks
– Software development life cycle involved.
– Test management
– Skills and knowledge of the team.
– Availability of the stakeholders.
Design Phase: This phase defines “HOW” to test. This phase involves the following tasks:
– Detail the test condition. Break down the test conditions into multiple sub conditions to increase coverage.
– Identify and get the test data
– Identify and set up the test environment.
– Create the requirement traceability metrics
– Create the test coverage metrics.
STLC(Software Testing Life cycle)-2
Software Testing Life Cycle refers to a testing process which has specific steps to be executed in a definite sequence to ensure that the
quality goals have been met. In STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals
and deliverables. Different organizations have different phases in STLC; however the basis remains the same.
Below are the phases of STLC:
Requirements phase, Planning Phase , Analysis phase, Design Phase
Implementation Phase: The major task in this STLC phase is of creation of the detailed test cases. Prioritize the test cases also identify
which test case will become part of the regression suite. Before finalizing the test case, It is important to carry out the review to ensure the
correctness of the test cases. Also don’t forget to take the sign off of the test cases before actual execution starts. If your project involves
automation, identify the candidate test cases for automation and proceed for scripting the test cases. Don’t forget to review them!
Execution Phase: As the name suggests, this is the Software Testing Life Cycle phase where the actual execution takes place. But before you
start your execution, make sure that your entry criterion is met. Execute the test cases, log defects in case of any discrepancy. Simultaneously
fill your traceability metrics to track your progress.
Conclusion Phase: This STLC phase concentrates on the exit criteria and reporting. Depending on your project and stakeholders choice, you
can decide on reporting whether you want to send out a daily report of weekly report etc.
Closure Phase: Tasks for the closure activities include the following: Check for the completion of the test. Whether all the test cases are
executed or mitigated deliberately. Check there are no severity 1 defects opened.
– Do lessons learnt meeting and create lessons learnt document.( Include what went well, where are the scope of improvements and what
can be improved)
Test Plan
Test Plan: A Test Plan is a document describing the scope, approach, resources,
and schedule of intended testing activities. It identifies test items, the features to
be tested, the testing tasks and who will do each task (roles and responsibilities)
and any risks and its solutions. Test Plan is a dynamic document. The success of
a testing project depends on a well written test plan document that is current at
all times. Test Plan is more or less like a blue print of how the testing activity is
going to take place in a project.
Test Plan template is attached below.
Test design
Test Design means creating test cases based on test plan. Basically test design is
the act of creating and writing test suites for testing a software. Test analysis and
identifying test conditions gives us a generic idea for testing which covers quite a
large range of possibilities. But when we come to make a test case we need to be
very specific. In fact now we need the exact and detailed specific input. But just
having some values to input to the system is not a test, if you don’t know what the
system is supposed to do with the inputs, you will not be able to tell that whether
your test has passed or failed.
Test Data and Test Cases-1
Test Cases: A Test Case is a document that describes step by step process how to test the application. A Test Case includes
Test Case ID, Steps Description, Expected Output, Actual Output, Pass/Fail, Remarks.
Test Case Sample document is attached below.
What is Test Data Generation? Why test data should be created before test execution?
Depending on your testing environment you may need to CREATE Test Data (Most of the times)or at least identify a
suitable test data for your test cases (is the test data is already created).
Typically test data is created in-sync with the test case it is intended to be used for.
Test Data can be Generated -
Manually
Mass copy of data from production to testing environment
Mass copy of test data from legacy client systems
Automated Test Data Generation Tools
Test Data Generation Techniques:
Manually create data
Copy data from production stores
Get data from other vendors/tolls.
RTM(Requirement traceability matrix)
Test closure is a document which gives the information's about the testing status
before completing the testing process. This document consists of:
1)Total no of test cases
2)Total no of bugs found
3)Total no of bugs fixed
4)Total no of bugs not fixed
5)Total no of bugs rejected
Defect life cycle, also known as Bug Life cycle is the journey of a defect cycle,
which a defect goes through during its lifetime. It varies from organization to
organization and also from project to project as it is governed by the software
testing process and also depends upon the tools used.
All New, Assign etc. are status of defect given when we open a defect.
Defect Life Cycle States:
New - Potential defect that is raised and yet to be validated.
Assigned - Assigned against a development team to address it but not yet
resolved.
Active/Open - The Defect is being addressed by the developer and investigation is
under progress. At this stage there are two possible outcomes; viz - Deferred or
Rejected.
Test- The Defect is fixed and ready for testing.
Verified - The Defect that is retested and the test has been verified by QA.
Closed - The final state of the defect that can be closed after the QA retesting or
can be closed if the defect is duplicate or considered as NOT a defect.
Reopened - When the defect is NOT fixed, QA reopens/reactivates the defect.
Deferred - When a defect cannot be addressed in that particular cycle it is deferred
to future release.
Test metrics and Status reporting
Test Metrics are used to do test status report to the development/management/business team or stake holders.
Below are different types of reporting done during and after test execution. It is not 100% same across the companies but it is somehow
used by each and every companies.
Below are mostly used test metrics to do reporting.
Test case execution productivity metrics
Test case preparation productivity metrics
Defect metrics
Defects by priority
Defects by severity
Defect slippage ratio
Test Execution report weekly
Test Execution report Daily
Defect Fix report
New Defect report
Status reporting
Test lead will do the status reporting of testing. It can be done everyday or weekly
depends on the company requirements.
Status report is sent to manager/team members on what’s going on in the project
testing. Writing effective status report is as important as the actual work you did!
How to write a effective status report of your weekly work at the end of each week?
Here I am going to give some tips. Weekly report is important to track the important
project issues, accomplishments of the projects, pending work and milestone
analysis. Even using these reports you can track the team performance to some extent.
From this report prepare future actionable items according to the priorities and make
the list of next weeks actionable
Attached is sample Weekly testing status report.
Module 5- Quality Center | HP ALM ? Test
Management Tool- 09/11/2016
Vendor = HP
Modules?
Management, Requirements, Testing & Defects are four main modules used in ALM.
http://alm.abc.com.com.com/qcbin/start_a.jsp
If you click on the link the login screen looks like showing in right screenshot. It has login NAME= Ususally your company user id, Password: Company
password, Domain: It will get assigned to you by manager based on what domain you work.
Project depends on what project you work. It will be given, or assigned to you by Manger/Lead.
History of QC
Quality Center was formerly known as Test Director, a product of mercury interactive. The below table provides us a better insights about the version history of
QC.
Following functionalities are very important in order to understand in the test plan module
better. Click on each one of the functionalities to know more about it.
Functionality Description
Creating Tests This module describes how to create folders of test subjects in the test
plan tree and also to add tests.
Uploading Tests Uploading Tests using ALM-MS Excel Add-ins
Requirement and Test Coverage Enables how to define the relationship between the
requirements and tests.
Test Configuration Specifies the subset of data or a run-time environment that the
test should use.
Mapping the test cases in Test Set of test
lab.
In order to execute test cases ( Run
the test cases in ALM) We need to
use Test Lab module. Under this
module we need to create Test set
exactly same as in the requirement.
It makes sure it covers all
requirements we have during the
testing. After the test set is created
we need to add or assign test cases
from test plan module. We need to
assign test case based on what kind
of testing we are doing and what is
needed.
Attached screen shows the menu to
do the test case assignment.
Defect Reporting
SQL Stands for Structured Query language. It is used in most of the Relational database systems to query/get data results from
database.
What is Database???
a structured set of data held in a computer, especially one that is accessible in various ways. Data is saved in tables in the form of Row &
Columns.
What are the different type of database applications?
Relational Databases
This is the most common of all the different types of databases. In this, the data in a relational database is stored in various data
tables. Each table has a key field which is used to connect it to other tables. Hence all the tables are related to each other through
several key fields. These databases are extensively used in various industries and will be the one you are most likely to come across
when working in IT.
Different database management clients?
Oracle
MySQL
IBM DB2
Microsoft access
Mongo DB
All Database mentioned above saves data in structured way. If someone wants to get data they have to write sql query to get the results.
SQL CREATE DATABASE Statement: SQL DROP TABLE Statement: ALTER TABLE table_name RENAME TO
new_table_name;
CREATE DATABASE database_name; Drop table pet;
SQL COMMIT Statement:
SQL DROP DATABASE Statement: SQL CREATE INDEX Statement : COMMIT;
DROP DATABASE database_name; CREATE UNIQUE INDEX index_name SQL ROLLBACK Statement:
SQL USE Statement:
ON table_name ( column1, ROLLBACK;
USE database_name; column2,...columnN);
UNIX/LINUX Commands09-13
UNIX/LINUX
Important UNIX commands,
What is the Tester’s Role in Unix/LINUX
How to login to UNIX / Linux using Putty tool
FTP commands
UNIX/LINUX
www.tutorialspoint.com/unix/u
nix-useful-commands.htm
Click on above link to see
mostly used LINUX/UNIX
Commands.
TO connect to Unix/LINUX We
have to use SSH/TEL NET
Putty is mostly used by
companies to connect to
Unix/linux box.
You need to enter host/ip
address and load. Then enter
username and password for
the ip (Ip is give3n for each
server)
MOSTLY USED UNIX/LINUX Commands
Command Description
Command Description
cat Display File Contents
vi Opens vi text editor
cd Changes Directory to dirname
vim Opens vim text editor
chgrp change file group compress Compress files
chmod Changing Permissions gunzip Uncompress gzipped files
cp Copy source file into destination gzip GNU alternative compression method
file Determine file type uncompress Uncompress files
find Find files unzip List, test and extract compressed files in a ZIP arch
grep Search files for regular expressions. zcat Cat a compressed file
head Display first few lines of a file zcmp Compare compressed files
zdiff Compare compressed files
ln Create softlink on oldname
zmore File perusal filter for crt viewing of compressed tex
ls Display information about file type.
ftp File transfer program
mkdir Create a new directory dirname
rcp Remote file copy
more Display data in paginated form.
rlogin Remote login to a UNIX host
mv Move (Rename) a oldname to newname.
rsh Remote shell
pwd Print current working directory. tftp Trivial file transfer program
Final Module- 09/16/2016- 09/18/2016
Test Automation techniques
Selenium/QTP
Web Services, API Testing, Module, Build, Code management, Version Control
Programming languages, Database, Scripting , Operating systems, Hardware,
software, Networking applications differences.
Practice of all slides with MOCK Interview type of questions. ???
Interview Preparation Questions & Answers sessions
Resume Preparation & Practice for projects
Apply the job? How to apply the job- how to get phone calls?
Reply to the emails, How to response to the recruitment team?
Prepare phone interview, Prepare In person interview
Prepare for First day of office
Prepare for First week of office
Prepare for Manger/lead questions?
Finally Join the job….. ????