Manual Testing Important
Manual Testing Important
Test
Table of Contents
1. Software
2. Software Testing
2.1. Software Testing Definition
2.2. History of Testing
2.3. Significance Of testing
3. Software Quality
3.1. Software Quality Assurance
3.2. Software Quality Control
4. Software Development Life Cycle (SDLC)
4.1 Pre-SDLC
Sign-in:
Kick of meeting:
PIN (Project Initiation Note)
4.2. Software Development Life Cycle (SDLC)
4.2.1. Initial-Phase/ Requirements phase:
4.2.2. Analysis Phase:
4.2.3. Design Phase:
4.2.4. Coding Phase:
4.2.5. Testing Phase:
4.2.6. Delivery & Maintenance phase
4.3. SDLC Models
4.3.1. WaterFall Model
4.3.2 Incremental Models
4.3.3. Prototype Model:
4.3.4. Spiral Model
4.3.5. V Model
4.3.6. Agile Model
5. Verification and Validation Testing Strategies
5.1 Verification Strategies
5.1.1 Review’s
5.2 Validation Strategies
6. Testing Methodologies:
6.1. Kinds of testing:
Conventional Testing
Unconventional Testing
6.2. Methods of testing
1. White box Testing
2. Black box Testing
3. Gray box Testing
6.3 Levels of Testing
1) Unit level testing
2) Module level testing
3) Integration level testing
i) Top Down Approach (TDA)
STUB
ii) Bottom Up Approach (BUA)
DRIVER
iii) Hybrid Approach
iv) Big Bang Approach
4) System level testing
5) User acceptance testing
6.4. TYPES OF TESTING
1. Sanitary Testing / Build Verification Testing / Build Accepting Testing.
2. Regression Testing
3. Re – Testing:
4. Alpha - Testing:
Advantages:
5. Beta - Testing:
6. Static Testing:
7. Dynamic Testing:
8. Installation Testing:
9. Compatibility Testing:
10. Monkey Testing:
11. Exploratory Testing:
12. Usability Testing:
13. End – To – End Testing:
14. Port Testing:
15. Reliability Testing (or) Soak Testing:
16. Mutation Testing:
17. Security Testing:
18. Adhoc Testing:
19 .Scalability Testing
20. Heuristic Testing
21. Accessibility Testing
22. Performance Testing
23. Load Testing
24. Stress testing
25. Volume Testing
26. Context-driven testing
27. comparison testing
28. Globalization testing
7. ENVIRONMENT
1) Stand alone environment (Or) One – Tire Architecture.
2) Client – Server Environment (Or) Two – Tire Architecture
3) Web Environment
4) Distributed Environment
8. Test Design Techniques
8.1.) White box Testing
a) Basis Path Testing
b) Flow Graph Notation
c) Cyclomatic Complexity
d) Graph Matrices
e) Control Structure Testing
f) Loop Testing
8.2.) Black box Testing
a. Graph Based Testing Methods:
b. Error Guessing:
c. Boundary Value Analysis:
d. Equivalence Partitioning:
8.3. Structural System Testing Techniques
8.4 Functional System Testing Techniques
9. Software Testing Life Cycle (STLC)
9.1. TEST PLANNING:
9.2. TEST DESIGN STAGE:
9.2.1. Test Scenario
9.2.2. Test Case
9.2.3. Requirement Traceability Matrix
9.3. TEST EXECUTION PHASE:
9.4. RESULT ANALYSIS:
9.5. BUG TRACKING AND REPORTING:
9.5.1 Difference between Bug, Defect and Error
9.5.2. Reporting Of bugs
9.5.3. DPD (Defect Profile Document)
9.5.2. Final summary report
9.6. TEST CLOSURE:
10. Defect metrics
11. when to stop testing
12. Maturity Levels
a) SEI
b) CMM
c) ISO
d) IEEE
e) ANSI
1. Software
2. Software Testing
3. Software Quality
4.1 Pre-SDLC
PRE-SDLC PROCESS
Sign-in:
Kick of meeting:
It is the first meeting conducted soon after the project came with in
the development company in order to discuss and do the following:
Overview of the project, Nature of the customer, Project team
selection (project manager the development team, quality head and
quality team).
The participants of this meeting are HOO (Head of Operations), Technical
Manager and the Software Quality Manager. Once the project manager is
selected he will release a PIN (Project Initiation Note).
Process: The Chief Architect will divide the whole project into
modules by drawing some graphical layouts using Unified Modeling
Language (UML). The Technical lead will further divide those modules into
sub modules using UML. And both will be responsible for visioning the GUI
(The screen where user interacts with the application OR Graphical User
Interface.) and developing the Pseudo code (A dummy code or usually,
it’s a set of English Instructions to help the developers in coding the
application.)
Proof: TDD Technical Design Document.
Roles: Developers/programmers
Task : Testing
Process:
Tasks : Delivery
: Post delivery maintenance
Waterfall Model
Incremental model
Prototype Model
Spiral Model
‘V’ Model
Agile Model
For a naïve client, who has no proper idea of the outcome he wants, the
developers initially design a prototype model and customer is approached
for evaluation and once the client approves the actual development is
made.
Advantages
Another advantage of having a prototype modeled software is that the
software is created using lots of user feedbacks. In every prototype
created, users could give their honest opinion about the software. If
something is unfavorable, it can be changed. Slowly the program is
created with the customer in mind.
Disadvantages
There is also a great temptation for most developers to create a prototype
and stick to it even though it has flaws. Since prototypes are not yet
complete software programs, there is always a possibility of a designer
flaw. When flawed software is implemented, it could mean losses of
important resources
4.3.4. Spiral Model
Advantages
a. Dynamic requirement changes present.
b. Time taken to deliver the product is more.
c. Only intended to large and complicated project.
Disadvantages
a. The spiral model is intended for large, expensive and complicated
projects.
b. Requires considerable expertise in risk evaluation and reduction.
c. Complex, relatively difficult to follow strictly.
4.3.5. V Model
Advantages
a) The team does not have to invest time and effort and finally find that by
the time they delivered the product, the requirement of the customer has
changed.
b) The documentation is crisp and to the point to save time.
Disadvantages
c) There is lack of emphasis on necessary designing and documentation.
d) The project can easily get taken off track if the customer representative
is not clear what final outcome that they want.
5.1.1 Review’s
The Validation Strategies, persons / teams involved in the testing, and the
deliverable of that phase of testing is briefed below:
6. Testing Methodologies:
Conventional Testing
It is a sort of testing in which the test engineer will test the application in
the testing phase of SDLC.
Unconventional Testing
Once the modules are developing the developers will develop some
interfaces and integrate the module with the help of those interfaces while
integration they will check whether the interfaces are working fine or not.
It is a white box testing and usually developers or white box testers
perform it.
The developers will be integrating the modules in any one of the following
approaches.
In this approach the parent modules are developed first and then
integrated with child modules.
STUB
In this approach the child modules are developed first and the integrated
that to the corresponding parent modules.
DRIVER
Once all the modules are ready at a time integrating them finally is known
as big bang approach.
The same system testing done in the presents of the user is known
as user acceptance testing. It’s a black box testing usually done by the
Test engineers.
2. Regression Testing
3. Re – Testing:
4. Alpha - Testing:
It is a type of testing in which one (I.e., out Test Engineer) will perform
user acceptance testing in our company in the presents of the customer.
Advantages:
5. Beta - Testing:
It is a type of testing in which either third party testers or end users will
perform user acceptance testing in the client place before actual
implementation.
6. Static Testing:
7. Dynamic Testing:
8. Installation Testing:
9. Compatibility Testing:
It is a type of testing in which one may have to install the application into
multiple number of environments prepared with different combinations of
environmental components in order to check whether the application is
suitable with these environments or not. This is use usually done to the
products.
19 .Scalability Testing
localization testing
It is the testing done to check the application is working on
different platforms of local languages.
Ex: - Win 95/98/2000 etc.
7. ENVIRONMENT
This environment contains all the three layers that is Presentation layer,
Business layered and Database layer in a Single tier.
3) Web Environment
In this Environment three tiers will be there client resides in one tier,
application server resides in middle tier and database server resides in
the last tier. Every client will have the presentation layer, application
server will have the business layer and database server will have the
database layer.
4) Distributed Environment
White box testing strategy deals with the internal logic and structure of
the code. White box testing is also called as glass, structural, open box or
clear box testing. In order to implement white box testing, the tester has
to deal with the code and hence is needed to possess knowledge of coding
and logic i.e. internal working of the code.
The flow graph depicts logical control flow using a diagrammatic notation.
Each structured construct has a corresponding flow graph symbol.
c) Cyclomatic Complexity
d) Graph Matrices
The procedure for deriving the flow graph and even determining a set of
basis paths is amenable to mechanization. To develop a software tool that
assists in basis path testing, a data structure, called a graph matrix can
be quite useful.
A Graph Matrix is a square matrix whose size is equal to the number of
nodes on the flow graph. Each row and column corresponds to an
identified node, and matrix entries correspond to connections between
nodes.
Condition Testing
Condition testing is a test case design method that exercises the logical
conditions contained in a program module.
The data flow testing method selects test paths of a program according to
the locations of definitions and uses of variables in the program.
f) Loop Testing
The following sets of tests can be applied to simple loops, where ‘n’ is the
maximum number of allowable passes through the loop.
1. Skip the loop entirely.
2. Only one passes through the loop.
3. Two passes through the loop.
4. ‘m’ passes through the loop where m<n.
5. n-1, n, n+1 passes through the loop.
Nested Loops
If we extend the test approach for simple loops to nested loops, the
number of possible tests would grow geometrically as the level of nesting
increases.
1. Start at the innermost loop. Set all other loops to minimum values.
2. Conduct simple loop tests for the innermost loop while holding the
outer loops at their minimum iteration parameter values. Add other tests
for out-of-range or exclude values.
3. Work outward, conducting tests for the next loop, but keeping all other
outer loops at minimum values and other nested loops to “typical” values.
4. Continue until all loops have been tested.
Concatenated Loops
Concatenated loops can be tested using the approach defined for simple
loops, if each of the loops is independent of the other. However, if two
loops are concatenated and the loop counter for loop 1 is used as the
initial value for loop 2, then the loops are not independent.
Unstructured Loops
1. Test Planning
2. Test development
3. Test execution
4. Result Analysis
5. Bug Tracking
6. Reporting
Software testing has its own life cycle that intersects with every stage of
the SDLC. The basic requirements in software testing life cycle is to
control/deal with software testing – Manual, Automated and
Performance.
vi.Test environment:
Environmental components and combinations that will be
simulated for testing the product will be made sure that it is very close to
the actual environment when the end user works on the product. All the
details will be mentioned here in this section that is to be used for testing
the application.
vii. Resource planning:
Roles to be performed or in other words who has to do what will be
mentioned clearly here.
viii. Scheduling:
The starting dates and ending dates for each and every task and
module will be listed here in this section.
ix. Staffing and Training:
How much staff is to be recruited and what kind of training is to be
provided to accomplish this project successfully will be described here in a
detailed fashion.
xi. Assumptions:
Some features or testing methods have to be done mandatorily even
though, the customer does not mention it in his requirements document.
These assumptions are listed out here in this section.
This is the most important stage of the testing life cycle, in this
phase of the testing; the testers will develop the test scenarios and test
cases based against the requirements of the customer.
A set of test cases that ensure that the business process flows are
tested from end to end. They may be independent tests or a series of
tests that follow each other, each dependent on the output of the
previous one.
The following is the test scenario template of iSpace
Test Development simply involves writing Test cases from test scenarios.
Every Company follows a particular format for test cases called test case
template
Test cases are broadly divided into two types.
· G.U.I Test Cases.
· Functional test cases.
Functional test cases are further divided into two types.
· Positive Test Cases.
· Negative Test Cases.
The Test cases ensure that all the functionalities are being covered
in testing but these should be mapped with business requirements to
ensure that all the requirements are met. For this we need to prepare
RTM, to verify 100% Coverage of Requirements.
Requirement Traceability matrix typically consists of
In this phase test engineers will execute the test cases and log the
defects. During the test execution phase the test engineer will do the
following.
a) He will perform the action that is described in the description column.
b) He will observe the actual behavior of the application.
c) He will document the observed value under the actual value column.
The following is the Test Execution Template of iSpace
It consists of entire list of defects you have come across while testing
your application. We have a defects meeting where QA, Developers and
PM attend and discuss the defects. If they think it’s a valid defect then QA
lead assigns it to development lead who in turn will assign it to the
developer to fix the defect.
Error: Any mismatches while compiling the code is called Error. A human
action which produces an incorrect result. In simple words error in
programming or coding is an error
Defect: A flow in a component or system that can cause the component
or system to fail to perform its required function. The gaps in functionality
or any mismatches in functionality are called a defect.
Bug: The defects accepted by developers are bugs.
Fault: Fault is similar to a defect.
Failure: Deviation of the component or system from its expected
delivery, service or result.
Issue: It’s same as defect.
Suggestion: The points not covered in BRD but which can improve
quality can be suggested by testers to the developers
Project Lead
Test Lead
PL
TL
Common
repository
Repository
TL
PL
Very Important stage to update the DPD (Defect profile document) and
the let the developers know of the defects.
a) High: Bug must be fixed immediately; the product cannot ship with this
bug.
b) Medium: These are important problems that should be fixed as soon as
possible. The problem should be fixed within the time availab
c) Low: It is not important that these bugs be addressed.
Fix these bugs after all other bugs have been fixed
Test case ID: Test case Number that is written in the test case
Document.
Assigned To: Person (developer) to whom the bug is assigned to fix.
Defect Density:
The defect density is measured by adding up the number of defects
reported by the Software Quality Assurance to the number of defects that
are reported by the peer and dividing it by the actual size (which can be
in either KlOC, SLOC or the function points to measure the size of the
software product).
Test effectiveness:
There are several approaches towards analyzing test effectiveness, one of
them is
t/(t+Uat) and in this formula "t" is the total number of defects reported
during the testing, whereas Uat means the total number of defects that
are reported during the user acceptance testing.
Schedule Variance:
Just like above formula it is similarly calculated as.
{(Actual Duration - Estimated Duration)/Estimated Duration} *100
Schedule Slippage:
When a task has been delayed from its original baseline schedule then the
amount of time that it has taken is defined as schedule slippage. Its
calculation is as simple as.
(Actual End date - Estimated End date) / (Planned End Date – Planned
Start Date) * 100
Requirements Creep:
(Total Number of requirements added/Number of initial requirements) *
100
And at the end we’d like to tell you that purpose of metrics isn't just to
measure the software performance but also to understand the progress of
the application to the organizational goal. Below we will discuss some
parameters of determining metrics of various software packages:
• Duration
• Complexity
• Technology Constraints
• Previous Experience in Same Technology
• Business Domain
• Clarity of the scope of the project
And one of the interesting and beneficial approaches is using the
GQM (Goal.
-Question-Metric) technique. This technique consists of three stages: A
Goal, a set of questions, and a set of corresponding metrics and therefore
it's a hierarchical structure that specifies the purpose of measure, the
object that has to be measured, issues that need to be measured, and
viewpoint from which the measures are taken.
a) SEI
'Software Engineering Institute' at Carnegie-Mellon University;
initiated by the U.S. Defense Department to help improve software
development processes.
b) CMM
'Capability Maturity Model', now called the CMMI ('Capability
Maturity Model Integration'), developed by the SEI. It's a model of 5
levels of process 'maturity' that determine effectiveness in delivering
quality software. It is geared to large organizations such as large U.S.
Defense Department contractors. However, many of the QA processes
involved are appropriate to any organization, and if reasonably applied
can be helpful. Organizations can receive CMMI ratings by undergoing
assessments by qualified auditors.
Level 1 - characterized by chaos, periodic panics, and heroic efforts
required by individuals to successfully complete projects. Few if any
processes in place; successes may not be repeatable.
Level 2 - software project tracking, requirements management,
realistic planning, and configuration management processes are in place;
successful practices can be repeated.
Level 3 - standard software development and maintenance
processes are integrated throughout an organization; a Software
Engineering Process Group is is in place to oversee. Software processes,
and training programs are used to ensure understanding and
compliance.
Level 4 - metrics are used to track productivity, processes, and
products. Project performance is predictable, and quality is consistently
high.
Level 5 - the focus is on continuous process improvement. The
impact of new processes and technologies can be predicted and
effectively implemented when required.
c) ISO
'International Organization for Standardization' - The ISO
9001:2008 standard (which provides some clarifications of the previous
standard 9001:2000) concerns quality systems that are assessed by
outside auditors, and it applies to many kinds of production and
manufacturing organizations, not just software. It covers documentation,
design, development, production, testing, installation, servicing, and
other processes. The full set of standards consists of: (a) Q9001-2008 -
Quality Management Systems: Requirements; (b) Q9000-2000 - Quality
Management Systems: Fundamentals and Vocabulary; (c)Q9004-2000 -
Quality Management Systems: Guidelines for Performance Improvements.
To be ISO 9001 certified, a third-party auditor assesses an organization,
and certification is typically good for about 3 years, after which a
complete reassessment is required. Note that ISO certification does not
necessarily indicate quality products - it indicates only that documented
processes are followed.
ISO 9126 is a standard for the evaluation of software quality and
defines six high level quality characteristics that can be used in software
evaluation. It includes functionality, reliability, usability, efficiency,
maintainability, and portability.
d) IEEE
'Institute of Electrical and Electronics Engineers' - among other
things, creates standards such as 'IEEE Standard for Software Test
Documentation' (IEEE/ANSI Standard 829), 'IEEE Standard of Software
Unit Testing (IEEE/ANSI Standard 1008), 'IEEE Standard for Software
Quality Assurance Plans' (IEEE/ANSI Standard 730), and others.
e) ANSI
No comments:
Post a Comment
▼ 2012 (4)
o ► December (1)
o ▼ June (3)
SQL Question & Answers
Manual Testing Concepts
100 QTP Questions you should know before interview...
About Me
Sprit Technologies
View my complete profile
Simple template. Powered by Blogger.