## Describe software review and formal technical review (FTR).

Software reviews works as a filter for the software process. It helps to uncover errors and defects in software. Software reviews enhance the quality of software. Software reviews refine software, including requirements and design models, code, and testing data.

A formal technical review (FTR) is a software quality control activity. In this activity, software developer and other team members are involved. The objectives of an FTR are:

- Uncover the errors.
- Verify that the software under technical review meets its requirements.
- To ensure that the software must follow the predefined standards.
- To make projects more manageable.

The FTR includes walkthroughs and inspections. Each FTR is conducted as a normal meeting. FTR will be successful only if it is properly planned, and executed.

## What are the attributes of good test case?

The following are the attributes of good test case.

- A good test has a high probability of finding an error. To find the maximum error, the tester and developer should have complete understanding of the software and attempt to check all the conditions that how the software might fail.

- A good test is not redundant. Every test should have a different purpose from other, otherwise tester will repeat the testing process for same condition.

- A good test should be neither too simple nor too complex. In general, each test should be executed separately. If we combine more than one test into one test case, it might be very difficult to execute. Sometimes we can combine tests but it may hide some errors.

## Describe cyclomatic complexity with example.

Cyclomatic complexity is a software metric that measure the logical strength of the program. It was developed by Thomas J. McCabe. Cyclomatic complexity is calculated by using the control flow graph of the program. In the flow graph, nodes are represented by circle. Areas bounded by edges and nodes are called regions. When counting regions, we also include the area outside the graph as a region.

Complexity is computed in one of three ways:

The total number of regions of the flow graph.

By using the formula defined as:

V(G) = E - N + 2

Cyclomatic complexity, V(G), for a flow graph, G, is also defined as

V(G) = P + 1 ,where P is the number of predicate nodes contained in the flow graph G.

Note: Nodes that contain a condition is called a predicate node and is characterized by two or more edges originating from it.

## Find out the Cyclomatic complexity V(G) of the given flow graph.

In the above flow graph there are total 9 nodes, 11 edges, and 4 regions.

1. The flow graph has four regions.
2. V(G) = 11 edges- 9 nodes + 2 = 4.
3. V(G) = 3 predicate nodes + 1 = 4.

## Describe Condition testing in brief.

Condition testing works on logical conditions contained in a program module. A simple condition is a Boolean variable or a relational expression. A relational expression takes the form

E1 <relational-operator>E2

Where E1 and E2 are arithmetic expressions and is one of the following: <, ≤, =, ≠ (not equal to), >, or ≥. A compound condition is created by using two or more simple conditions, Boolean operators, and parentheses. Conditional error is generated if Boolean variable, relational operator or Boolean operator is incorrectly used.

The purpose of condition testing is to detect errors in the conditions of a program.

## Explain Structure-based testing techniques.

- Structure-based testing techniques are also termed as white-box testing techniques.
- These are dynamic techniques.
- They use the internal structure of the software to derive test cases.
- They are usually termed as 'white-box' or 'glass-box' techniques
- They need you to have knowledge of how the software is implemented and how it works.

## Explain component testing.

- Component testing is also termed as unit, module or program testing.
- It looks for defects in the software and verifies its functioning.
- It can be done in isolation from rest of the system depending on the context of the development life cycle and the system.
- Mostly stubs and drivers are used to replace the missing software and simulate the interface between the software components in a simple manner.
- The stub is called from the software component to be tested while a driver calls a component to be tested.

## What are decision tables? Whyy do we use them?

- Decision tables are specification-based techniques which are more focused on business logic or business rules.
- A decision table is useful in dealing with combinations of things like inputs.
- This technique is sometimes also called as 'cause-effect' table as there exists an associated logic diagramming technique called 'cause-effect graphing' which is at times used to help derive the decision table.
- The techniques of equivalence partitioning and boundary value analysis are usually applied to specific situations or inputs.

## Explain exploratory testing.

- In exploratory testing approach testers are involved in minimum planning and maximum test execution.
- The planning includes creation of a test charter, a short declaration of the scope of a short time-boxed test effort, the objectives and possible approaches to be used.
- The test design and test execution are performed parallelly without any formal documentation of test conditions, test cases or test scripts. However, this does not imply that other more formal testing techniques will not be used.

## Differentiate between re-testing and regression testing

Regressions Testing:
- It means testing new bugfixes to ensure that they don’t cause problems to occur involving problems fixed earlier.
- The process here involves running a suite of tests.

Re-testing:
- It means testing a single defect that was just fixed. Only one test is performed here.
- The target is to ensure that the defect that was just fixed was actually fixed properly.

## List the pre-requisites for white-box testing

The pre-requisites for white-box testing are similar to that of black-box testing with one major difference:

During white-box testing, the testers have access to the application logic. The tester should ask for access to detailed functional specs and requirements, design documents (both high-level and detailed), and source code. The tester analyzes the source code and prepares functional tests to ensure that the application behaves in compliance with both the requirements and the specs.

## How do drivers and stubs relate to manual testing?

- Drivers and stubs are a part of incremental testing.
- The two approaches used in incremental testing are: the top down and the bottom up methods.
- Drivers are used for the bottom up approach.
- Drivers are the modules that run the components that are being tested.
- A stub is used for the top down approach.
- It is a replacement of sorts for a component which is used to test a component that it calls.

## Explain the following.

a. ) Stress testing:

- It checks the robustness of application.
- It verifies that application consistently provides satisfactory performance under unfavorable and extreme conditions. This includes - heavy user traffic, heavy process loads, irregular hardware clocking, and heavy utilization of resources.
- Stress testing is also useful in verifying the effectiveness of error handling under extreme conditions.

b.) Sanity testing:

- Sanity testing is used to ensure that multiple or conflicting functions or variables do not exist in the system.
- It verifies that the components of the application can be compiled without a problem.
- It is conducted on all parts of the application.

- It is a type of testing that is performed without the use of planning and/or documentation.
- These tests are run only one time unless a defect is found.
- If defect is found, testing can be repeated.
- It is considered to be a part of exploratory testing.

d.) Smoke testing:

- Smoke testing covers all of the basic functionality of the application.
- It is considered as the main test for checking the functionality of the application.
- It does not test the finer details of the application.

## Explain the following.

a.) Compatibility testing:

- It is a non-functional test performed on a software system or component for checking its compatibility with the other parts in the computing environment.
- This environment covers the hardware, servers, operating system, web browsers, other software, etc.

b.) Integration testing:

- This test is performed to verify the interfaces between system components, interactions between the application and the hardware, file system, and other software.
- A developer can also perform it.
- Ideally an integration testing team should perform it.

## Explain the following.

a.) Code Complete:

- Phase of development where functionality is implemented in entirety with only bug fixes remaining.
- All functions from the functional specifications are already implemented.

b.) Code Coverage:

- This is an analysis method which determines which parts of the software have already been covered by the test case suite and which are remaining.

c.) Code Inspection:

- A formal testing technique where the programmer reviews source code with a group who ask questions analyzing the program logic, analyzing the code with respect to a checklist of historically common programming errors, and analyzing its compliance with coding standards.

## What do you mean by following?

a.) Test Script :

- It is usually used to refer to the instructions for a particular test that will be carried out by an automated test tool.

b.) Test Specification:

- This is a document specifying the test approach for a software feature or combination or features and the inputs, predicted results and execution conditions for the associated tests.

c.) Test Suite:

- This is a collection of tests which are used to validate the behavior of an application or product.
- Usually a test Suite is a high level concept, grouping together hundreds or thousands of tests related by what they are intended to test.

## Differentiate between QA and testing.

- Quality Assurance is more a preventive thing, ensuring quality in the company and therefore the product rather than just testing the product for software bugs while testing means 'quality control'.

- Quality control measures the quality of a product while quality assurance measures the quality of processes used to create a quality product.

## What are 5 common problems in the software development process?

1. Bad requirements - these requirements are unclear, incomplete, too general, or not testable. They cause problems.
2. Unrealistic schedule - expecting too much result in too less time.
3. Inadequate testing - lack of testing causes problem as no one knows if the system will behave as expected.
4. Adding new features - after development; quite common.
5. Poor communication - within the team or with the customer.

## What qualities would you look for while hiring a test engineer?

- Test to break attitude
- Ability to put self in customer's shoes
- Desire for quality and attention to details.
- Tact and diplomacy while dealing with others.
- Ability to communicate on technical lines with development team and on non-technical lines with the customer.
- Good understanding of SDLC
- Good judgment skills are needed to assess high-risk areas of an application.

## What do you mean by "Software Quality"?

Quality software means, it is :

- Free of bugs
- Delivered on time
- Within the budget
- Meets requirements
- Is easily maintainable

However, the definition of quality varies from user to user.

## Differentiate between exception and validation testing.

- Validation testing is done to test the software in conformance to the requirements specified. It aims to demonstrate that the software works in a manner that is expected by the customer.

- Exception testing deals with handling the exceptions. Basically this testing involves how to change the control flow of the AUT when an exception arises.

## When should you stop testing?

It is pretty difficult to determine as many modern software applications are so complex and run in such an interdependent environment that complete testing is never possible.

However, common factors which help in deciding when to stop are:

- Deadlines to release or test is over.
- Test cases are completed with certain percentage passed
- Test budget is over
- Coverage of code/functionality/requirements has reached a specified point
- Bug rate is below a certain level
- Beta or alpha testing period has ended

## How do we zero down on the automation tools for regression testing?

Following criteria are used while zeroing down on the automation tools for regression testing:

- Risk analysis like: personnel skills, companies software resources
- Cost analysis
- Comparing the tools features with test requirement.
- Support for the applications IDE, support for the application environment/platform.

## Explain web-testing.

- Web testing is software testing focusing on web applications.
- It helps in addressing issues before making the application live to public.
- Security of the web application, basic functionality of the site, accessibility to handicapped users and fully able users, readiness for expected traffic, number of users, ability to survive a massive traffic spike are some of the issues which are handled in these applications.

## What do you do if you have provided functionality that wasn't listed in the requirements?

- If the functionality isn't necessary to the purpose of the application, it should be removed, .
- If it is not removed, design information will be needed to determine added testing needs or regression testing needs.
- Management should be made aware of such functionalities.

## Classify the following techniques into static or dynamic.

i. Equivalence Partitioning.
ii. Use Case Testing.
iii. Data Flow Analysis.
iv. Exploratory Testing.
v. Decision Testing.
vi. Inspections.

Static:
i) Data Flow Analysis
ii.)Inspections,

Dynamic:
i.) Equivalence Partitioning,
ii.) Use Case Testing,
iii.) Exploratory Testing
iv.) Decision Testing are dynamic

## Why are decision tables used in many cases rather than equivalence partitioning and boundary value analysis?

- A decision table is a good way to deal with combinations of things (e.g. inputs).
- The techniques of equivalence partitioning and boundary value analysis are often applied to specific situations or inputs.
- If different combinations of inputs result in different actions being taken, it can be more difficult to show using equivalence partitioning and boundary value analysis, which tend to be more focused on the user interface.
- The other two specification based techniques - decision tables and state transition testing are more focused on business logic or business rules.

## When is RTM (Requirement traceability matrix) prepared - before or after test case designing?

- RTM is prepared before test case designing.
- Requirements should be traceable from Review activities as traceability should be there in the Test Plan.
- If the company does testing after development has started then requirements should be traceable to their source.

## Situation: You need to test a system but there is no documentation available and the developers who developed it do not work there anymore. What would you do?

- We will perform the exploratory testing of the product - this will give us an idea of the system and its basic workflow.
- During this testing, we can discover some ‘blocker’ bugs that cause system to crash.
- As a white box tester, you can next test the different module code. This gives us an idea about the test cases for different modules and relation between different modules.

## What are the usual difficulties that testers face during software testing?

- Incomplete or unclear specifications
- Limited resources
- Lack of planning regarding testing approach
- Unclear priorities
- Lack of time for testing

## What causes bugs in the software?

- Unclear requirements
- Poor documentation.
- Constantly changing requirements - Programming errors
- Lack of time for testing

## Which type of software should not be automated?

Following types of software should not be automated:

- Unstable/ Incomplete software as they are still undergoing changes
- Test scripts which are run once in a while
- Code and document review

## What are various severity ratings in a project?

There can be four types of severity ratings in a table:

i.) Severity 1 - Showstoppers - Do not allow the application to move at all.
ii.) Severity 2 - Application continues with severe defects - Application works with these defects which might have severe implications.
iii.) Severity 3 - Application works with unexpected outputs
iv.) Severity 4 – Suggestions - These are the improvements suggested in the application. They do not affect the performance of the application.

## Explain the elementary process.

Software applications are a combination of various elementary processes. Different elementary processes come together to form an application.

Elementary processes are classified as below:

- Dynamic elementary process: These processes move data from an internal application boundary to an external application boundary or vice-versa.

- Static elementary process: This process type maintains the data of the application either inside the application boundary or in the external application boundary.

## List the flaws in waterfall model.

- The biggest drawback is that you do not test the application logic until very late in the development cycle.
- Though a detailed system specification should make the application less error - prone but one serious mistake spotted at the end might turn out to be quite expensive.
- It does not adapt well to rapidly changing technology.

## What is SilkTest? What is the methodology behind Silk test?

SilkTest is software testing automation tool developed by Segue Software, Inc.

The methodology behind silk test is a six-phase testing process:

i.) Plan - Determine the testing strategy and define specific test requirements.
ii.) Capture - Classify the GUI objects in your application and build a framework for running your tests.
iii.) Create - Create automated, reusable tests. Use recording and/ or programming to build test scripts written in Segue's 4Test language.
iv.) Run - Select specific tests and execute them against the AUT.
v.) Report - Analyze test results and generate defect reports.
vi.) Track - Track defects in the AUT and perform regression testing.

## Explain the following: SilkTest Host, SilkTest Agent, SilkTest Project

i.) SilkTest Host - SilkTest component that manages and executes test scripts. It usually runs on a machine different than the machine where AUT (Application Under Test) is running.

ii.) SilkTest Agent - SilkTest component that receives testing commands from the SilkTest Host and interacts with AUT (Application Under Test) directly. SilkTest Agent usually runs on the same machine where AUT is running.

iii.) SilkTest Project - A SilkTest project is a collection of files that contains required information about a test project.

## What is 4Test?

4Test is a test scripting language used by SilkTest to compose test scripts to perform automated tests. It is an object-oriented fourth-generation language. It consists of 3 sets of functionalities:

i.) A robust library of object-oriented classes and methods that specify how a test case can interact with an application’s GUI objects.
ii.) A set of statements, operators and data types that you use to introduce structure and logic to a recorded test case.
iii.) A library of built-in functions for performing common support tasks.

## Explain DOM browser extension.

- Document Object Model (DOM) browser extension is a SilkTest add-on component for testing Web applications.

- It communicates directly with the Web browser to recognize, categorize and manipulate objects on a Web page. To do this, it works directly with the actual HTML code, rather than relying on the visual pattern recognition techniques currently employed by the Virtual Object (VO) extension.

## Explain VO browser extension.

- Virtual Object (VO) browser extension is a SilkTest add-on component to test Web applications.
- To identify browser-rendered objects it uses sophisticated pattern recognition techniques.
- It does not recognize the HTML tags in the Web application code - rather it sees Web pages as they appear visually.
- It can see the objects in a Web page. For example - links, tables, images and compound controls

## What are the advantages of automation testing?

Following are the advantages of automation testing:

1) Enables Quick Release – with automatically run regression tests, you can concentrate on testing new functionalities rather than spending time in testing existing functionalities.

2) Better quality – functionality will have fewer defects and require less support

3) Satisfied customers – good application will develop satisfied customers

## Explain various recording modes.

There are two type of recording modes: context sensitive and analog.

- Context Sensitive – identifies GUI objects and records operations performed in the application
- Analog recording – records peripheral inputs from the keyboard and mouse (including cursor position in the x-y coordinate plane)

## How would you view GUI maps in Winrunner?

- GUI maps are viewed using GUI Map Editor
- It is located in the Tools menu within WinRunner.
- It displays all of the GUI Map files including their objects with physical descriptions and logical name.

## What happens when GUI maps are loaded?

When a GUI map is loaded following things happen:

- All object logical names, physical descriptions, and window information gets loaded into memory.
- When a script for a particular window is executed, the objects can be identified by the information that is loaded.

## What is the purpose of checkpoints in Winrunner?

Checkpoints help to compare the behavior of current application to its previous version. There are four types of checkpoints in Winrunner:

a.) Text – reads and displays the text contents of GUI objects and bit map and in bitmaps
b.) Bitmap – compares application window or area snapshots to earlier versions of the same window or area
c.) GUI – validates GUI object information (i.e. whether a button is enabled, an item is selected in a list, etc.)
d.) Database – verifies the contents and size of a set of results (based on a database query)

## Situation: You want to record a data driven test. How would you do that?

There are three ways to create a data-driven test:

a.) By using data from a flat file
b.) By using data from a data table
c.) By using data from a database

- Using Flat File – Data must be saved in a pre-determined format and is read from the file using file manipulation commands and assigned to variables.

- Using Data Table – Similar to the flat file method but data is usually stored in a Microsoft Excel file.

- Using Database – Similar to the previous methods except test data is saved in the database.

## Why WinRunner might fail to identify an object on a GUI?

WinRunner might fail to recognize an object in a GUI in following cases:

- If it is not a standard windows object
- If the browser used is not compatible with the version of WinRunner in use.

GUI Map Editor may not be able to learn the objects in these cases.

## How can the recovery scenario manager be used to handle exceptions in QTP?

QTP provides a wizard through the Recovery Scenario Manger that can recover the unexpected errors and events that occur during a test run. A recovery scenario can be activated during 4 specific trigger events. These include:

- Appearance of a pop up window during test execution
- The value or state change of an object’s properties
- A failed test step
- A failed test runs in the application

## What tasks do checkpoints perform in QTP?

Checkpoints in QTP are used to verify the information that is expected to be displayed while the running the test. Following are eight types of available checkpoints:

a.) Page – checks application characteristics
b.) Text – verifies that text strings are shown at the proper locations in the application
c.) Object – checks the values of application objects
d.) Image – checks the values of application images
e.) Table – verifies information in an application table
f.) Accessibility – checks the web page for compliance with Section 508
g.) XML – verifies the contents of XML data files or documents that are part of the application
h.) Database – verifies the contents of databases accessed by the website

## Explain various object repositories modes in QTP.

There are two object repositories modes in QTP:

a.) Per-action mode - Best used in following cases:

- While creating simple record and run tests when there is only one or very few tests that correspond to the interface, objects, or application
- When test object properties won't be modified every now and then
- When creating single-action tests.

b.) Shared mode - Best used in following cases:

- When there are several tests that correspond to the interface, objects, or application
- When test object properties are expected to be modified and with multi-action tests.

## Name some common tools used for load testing.

- Rational Performance Tester by IBM Rational
- Silk Performer by Borland
- Open STA an Open Source tool

## What types of bottlenecks can be expected in performance testing?

Bottlenecks in performance testing can have following effects:

- It slows down testing
- It can affect the performance and the scalability of an application.

Hardware, software, bandwidth which has defined limits in the flow of data, processing speed, and any of the system resources can lead to bottlenecks in a system.

Some of these bottlenecks include:

- Increased time
- Increased resources
- Appropriate monitors to determine performance

## Situation: An application is under development. How will you develop a test case for it?

When the application is under development, the Business Requirement Document is used as the primary document to write the test cases. If some complex features exist in the application, the Technical Design Document can also be used. It is usually available with the developers.

## Differentiate between Master Test Plan and Test Plan.

Master Test Plan -

i. ) It is required in all projects.
ii.) It provides the strategy to be used to test the entire project.
iii.) It provides the details like the modules to be tested, the time frame, the resources, hardware dependencies, and any training required.
iv.) It also involves a block diagram showing how the testing takes place. It also has the location of test plan for each module and the documents to be referred for testing purpose.

Test Plan -

- It is required for each module in white box testing
- In Black Box testing, it is required for each feature
- It carries information about test cases, strategy and stubs used to test a particular module.

We can say that an MTP consists of various TPs.

## What are the repositories used by QTP to store object properties?

QTP uses two types of repositories to store the object properties.

a.) Shared object repository: A global object repository for the application. It stores the objects properties of entire application like Global GUI map in winrunner.

b.) Per action object repository: It stores the object properties of a particular action only.

## Explain parameterization in QTP.

- Parameterization - Passing values from external source into script.
- The number of values passed could be single or multiple.
- It helps to keep the script flexible.

In QTP,

- Values from one action to another or one test to another test can be passed. This is called Action Parameterization.
- Values from external sources like xml file or excel files can be passed.
- Data table can be used to pass multiple values in single run.

## What can be the main reasons fornot being able to reproduce a bug? What should be done if such a bug is found?

A bug can not be reproduced for following reasons:

1. Low memory.
2. Pointing to non available memory location.
3. Things happening in a particular sequence.

Following information should be passed to the developer if such a bug is found:

1. Any other applications that were running along with the application under discussion.
2. Time for which the application was being used.
3. Crash report or related information.
4. Sequence of activities followed before the application behaved in this manner.
5. Did the bug show up while performing a normal workflow or complete workflow?
6. How many times did it happen?
7. Impact of the bug.
Common problems with software automation
Software automation problem - Automation often requires recording the sequence of operations you need to perform in order to execute a particular.............
Role of QA in a project development
Role of QA - The word assurance means ‘guarantee’. So the Quality Assurance Group’s role is to guarantee that the product is of high quality............
Value of a testing group
Value of a testing group - Testing is a process used for revealing defects in s/w and for establishing that the s/w..........