1) What Is Testing?
1) What Is Testing?
1) What Is Testing?
Testing is a process of executing a program with the intent of finding an error. A good test is one
that has a high probability of finding an as yet undiscovered error. A successful test is one that
uncovers an as yet undiscovered error. The objective is to design tests that systematically
uncover different classes of errors and do so with a minimum amount of time and effort.
Testing involves operation of a system or application under controlled conditions and evaluating
the results (eg, 'if the user is in interface A of the application while using hardware B, and does C,
then D should happen'). The controlled conditions should include both normal and abnormal
conditions. Testing should intentionally attempt to make things go wrong to determine if things
happen when they shouldn't or things don't happen when they should. It is oriented to 'detection'.
(See the Bookstore section's 'Software Testing' category for a list of useful books on Software
Testing.)
Organizations vary considerably in how they assign responsibility for QA and testing. Sometimes
they're the combined responsibility of one group or individual. Also common are project teams
that include a mix of testers and developers who work closely together, with overall QA processes
monitored by project managers. It will depend on what best fits an organization's size and
business structure.
The most 'micro' scale of testing is unit testing. To test a particular function or code module.
Typically done by the programmer and not by testers, as it requires detailed knowledge of the
internal program design and code. Not always easily done unless the application has a well-
1
designed architecture with tight code; may require developing test driver modules or test
harnesses.
Or
Unit Testing may be defined as the verification and validation of an individual module or 'unit' of
software. It is the most "micro" scale of testing for testing particular functions or code modules.
Unit testing may require developing test driver modules or test harnesses. In addition, unit testing
often requires detailed knowledge of the internal program design.
This approach works well for time critical projects and/or projects with geographically dispersed
members. However, test conditions created by a QA team should not be substituted for routine
unit testing. Instead, QA efforts are used to compliment routine unit tests.
'Routine unit testing' includes identifying all fields and testing for input, output, upper and lower
boundaries, as well as calculations when appropriate. All standard GUI elements should be
identified and validated. These include scroll bars, push buttons, links, etc.
It is vital to ensure that each unit of the application will be tested and documented before
inclusion in the next build.
Software development projects often contain a mix of developer experience levels. Using a third
party to create unit test conditions and scripts adds team structure, which in turn reduces risks
associated with software development.
While the individual development team members are executing unit tests for all code written, the
Qa team creates unit test conditions using design, requirements or other documents including the
application itself, if it exists.
Test conditions are then allocated to the development team using a central network repository
such as Visual Source Safe. The method in which test conditions are allocated is determined by
the Project Manager and is often based on the modules each person is working on. Thus, test
conditions and scripts designed by the Qa team are executed in conjunction with routine unit
tests. Each executed set of test conditions and scripts are then posted in the repository by the
developer who executed them unless otherwise noted by the PM. This method allows the lead
developer to track all unit test results. This is particularly helpful on projects, which require a close
working relationship with the client's development team. The results serve as a checklist for fixes.
Failed conditions and scripts can also be associated with 'larger' defects found later in the
development cycle, if not fixed early on.
2
Testing of combined parts of an application to determine if they function together correctly. The
'parts' can be code modules, individual applications, client and server applications on a network,
etc. This type of testing is especially relevant to client/server and distributed systems.
We need to get a set of ‘rules’ that ‘Surnames’ will obey. This will probably be different from
system to system. Foreign surnames, for example, will have characters other than those in the
English language. French, for example, might contain characters like é, or German like ü. Also,
some names might be hyphenated, like Morgan-Hitchcock, and therefore contain a ‘-‘ sign.
Let’s concentrate on European surnames. Here it should be obvious that characters like ‘%, *, ^,
$ and £ etc.’ would not be allowed, but characters (like ê, ë, and ü for example.) in languages like
‘French and German’ etc. would be. We must also decide on a sensible length for ‘Surname’, and
25 characters might be acceptable in this context.
Our black box tests could, therefore, go something along the following lines.
(i) Define a set of acceptable characters like ‘lower case a to z’ and ‘upper case A to Z’, plus all
characters allowed in the languages to be included.
(ii) Limit the length of the input string to 25 characters. Perhaps limit the minimum to 2 characters.
(‘Ng’ is a valid surname at the author’s school, for example.)
(iii) Allow special characters like ‘-’ to be used in hyphenated surnames.
(iv) Reject characters outside of this range.
(v) We might want to ensure that the first character is upper case, but this could limit names like
‘deMorgan’, for example. A suitable subset of test data for black box testing might be as shown in
the following table.
3
11) What is white box Testing?
Based on knowledge of the internal logic of an application's code. Tests are based on coverage of
code statements, branches, paths, conditions.
Or
Also known as glass box, structural, clear box and open box testing. A softwaretesting technique
whereby explicit knowledge of the internal workings of the item being tested are used to select
the test data. Unlike black box testing, white box testing uses specific knowledge of programming
to examine outputs. The test is accurate only if the tester knows what the program is supposed to
do. He or she can then see if the program diverges from its intended goal. White box testing does
not account for errors caused by omission, and all visible code must also be readable.
For a complete software examination, both white box and black box tests are required
4
Test case specification documents the actual values used for INPUT along with the anticipated
OUTPUTS. A test case also identifies any constraints on the test procedure resulting from use of
that specific test case.
A test case should explain exactly what values or conditions will be sent to the software and what
result is expected
Test data should be built in a way that the testing effort can be minimized
Our test data is simple, expressive, representative. The results are easy to verify.
It is of vital importance to know all attributes (characteristics, values) of the test data used
Our test data covers a maximum range of test-cases
The functionality of the system is represented by a complete set of use cases. Each use case
specifies a "complete functionality": one general usage of the system.
Most importantly
A combination of use cases (so called business cases) always corresponds to a customer's
specific workflow. These are the source for test cases and so called test scenarios.
5
Software testing is the process of testing the functionality and correctness of software by running
it. Software testing is usually performed for one of two reasons: (1) defect detection, and (2)
reliability estimation.
6
29) What is automation testing?
Test automation alleviates this tedium of manual testing by automatically executing a
battery of tests using an automated testing tool. The tool acts just as a user would, interact
with an application to input data and verify expected responses. Implemented properly, an
automated regression battery can be run unattended and overnight, freeing up testers to
concentrate on testing new features and functionality.
30) What is impact analysis?
Software change impact analysis estimates what will be affected in software and related
documentation if a proposed changed is made.
Examples
Cross-referenced listings to determine parts that reference a variable of a procedure
Program slicing to determine the subset of a program that can affect the value of a variable
Browsing of (hyper linked) files
Using trace ability matrixes
Configuration management systems to find and track changes
Consulting design and specification documents to determine the scope of a change
7
Testing: Regression testing is the process of always running the same sequence of tests on a
program unit every time the program unit changes. This verifies (within the bounds of the test)
that the new code works and it doesn't break any old code, either.
8
44) What are 5 common solutions to software development problems?
• Solid requirements - clear, complete, detailed, cohesive, attainable, testable requirements
that are agreed to by all players. Use prototypes to help nail down requirements.
• Realistic schedules - allow adequate time for planning, design, testing, bug fixing, re-testing,
changes, and documentation; personnel should be able to complete the project without
burning out.
• Adequate testing - start testing early on, re-test after fixes or changes, plan for adequate time
for testing and bug fixing.
• Stick to initial requirements as much as possible - be prepared to defend against changes
and additions once development has begun, and be prepared to explain consequences. If
changes are necessary, they should be adequately reflected in related schedule changes. If
possible, use rapid prototyping during the design phase so that customers can see what to
expect. This will provide them a higher comfort level with their requirements decisions and
minimize changes later on.
• Communication - require walkthroughs and inspections when appropriate; make extensive
use of group communication tools - e-mail, groupware, networked bug-tracking tools and
change management tools, intranet capabilities, etc.; insure that documentation is available
and up-to-date - preferably electronic, not paper; promote teamwork and cooperation; use
prototypes early on so that customers' expectations are clarified.
45) What is a Test bed?
Software and Hardware feature of the test environment for testing an application is a Test Bed.
9
53) What is Load testing?
Testing an application under heavy loads, such as testing of a web site under a range of loads to
determine at what point the systems response time degrades or fails.
10
• Load/performance test tools - for testing client/server and web applications under various
load levels.
• Web test tools - to check that links are valid, HTML code
• Usage is correct, client-side and Server-side programs work, a web site's
• Interactions are secure.
• Other tools - for test case management, documentation management, bug reporting, and
configuration management.
Generate optimized code for your website. Web site code optimization means designing,
writing, and coding your entire website in a way that will give it a good chance to appear at the
top of search engine queries.
11
72) What is a defect?
A Critical Defect means that the application is down or is at high risk, business functions cannot be
conducted, or the Customer is experiencing continual failures or data corruption as a result of the defect.
12
81) What is the difference between Stress and Load Testing?
82) How you will achieve the Stress point during the test?
83) What is the difference between Test Case and Test Data?
84) Define the difference between a Tester and a QA?
87) List some of the tools used for monitoring a web site?
13
1) Topaz ActiveWatch(Mercury Interactive)
2) Silkmonitor(segue)
3) SQA Sitecheck (rational)
88) List some of the tools keep track of the project under Testing?
1) TestDirector (Mercury Interactive)
2) SilkRadar (Segue)
3) SQA Manager (Rational)
4) QADirector (Compuware)
89) How to approach testing for a C/C++ application?
14
applied can be helpful. Organizations can receive CMM ratings by undergoing assessments
by qualified auditors.
2) What is ISO?
ISO = 'International Organization for Standardization' - The ISO 9001:2000 standard (which
replaces the previous standard of 1994) 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-2000 - 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. Also see http://www.iso.ch/
for the latest information. In the U.S. the standards can be purchased via the ASQ web site at
3) What is IEEE?
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.
4) What is ANSI?
ANSI = 'American National Standards Institute', the primary industrial standards body in the U.S.;
publishes some software-related standards in conjunction with the IEEE and ASQ (American
Society for Quality).
7) What is a KPA?
Key process area(KPA) identifies a cluster of related activities that, when performed collectively,
achieve a set of goals considered important for establishing process capability at that maturity
level. The key process areas have been defined to reside at a single maturity level. For example,
one of the key process areas for Level 2 is Software Project Planning.
8) What is a Metric?
9) What is PCMM?
10) What is CMMi?
11) What is maturity level?
A maturity level is a well-defined evolutionary plateau
15
toward achieving a mature software process. The five
maturity levels provide the top-level structure of the
CMM.
12) What is a Goal?
The goals summarize the key practices of a key process
area and can be used to determine whether an
organization or project has effectively implemented the
key process area. The goals signify the scope, boundaries,
and intent of each key process area.
13) What is a Process Capability?
Software process capability describes the range of expected
results that can be achieved by following a software
process. The software process capability of an organization
provides one means of predicting the most likely
outcomes to be expected from the next software project the
organization undertakes.
14) Define the KPA’s of CMM – Level 1?
At the Initial Level, the organization typically does not provide a stable
environment for developing and maintaining software. When an
organization lacks sound management practices, the benefits of good
software engineering practices are undermined by ineffective planning and
reaction-driven commitment systems.
15) Define the KPA’s of CMM – Level 2?
At the Repeatable Level, policies for managing a software project and
procedures to implement those policies are established. Planning and
managing new projects is based on experience with similar projects.
KPA’s of level-2 is
1) Software Project Planning (SPP).
2) Requirements Management (RM)
3) Software Quality Assurance (SQA)
4) Software Project Tracking and Oversight (SPTO)
5) Software Subcontract Management (SSM)
6) Software Configuration Management (SCM)
16
5) Training Program (TP)
6) Software Quality Management (SQM)
7) Integrated Software Management (ISM)
Compare two versions of an application being tested by matching captured bitmaps. This is
particularly useful for checking non-GUI areas of your application, such as drawings or graphs.
Enables you to read and check text in a GUI object or in any area of your application.
9) What is the hot key used to change from one mode of recording to another?
Functional key 2 (F2)
17
For example, if you create a test that opens a database application, you can add a
synchronization point that causes the test to wait until the database records are loaded on the
screen.
14) What is the function used to check the default checks of an GUI objects
gui_ver_set_default_checks
18
Compare_text
setvar
26) What is the keyword used to alert message to the result window?
Report_msg is the keyword used to alert message to the result window
19
dialog box, for example, is identified as a window with the label “Print”. The logical name and the
physical description together ensure that each GUI object has its own unique identification.
29) List the difference between context sensitive and Analog mode?
30) List the difference between Debug, Verify and Update Mode?
31) How will you test an ActiveX object?
Where in the software lifecycle are most errors made?
Answer: Most errors are introduced in the design phase (5065%) of errors
20