Sie sind auf Seite 1von 73

Manual Testing A&Q

What is bidirectional traceability?


Bidirectional traceability needs to be implemented both forward and backward (i.e., from
requirements to end products and from end product back to requirements).
When the requirements are managed well, traceability can be established from the
source requirement to its lower level requirements and from the lower level requirements
back to their source. Such bidirectional traceability helps determine that all source
requirements have been completely addressed and that all lower level requirements can
be traced to a valid source.

What is stub? Explain in testing point of view?


Stub is a dummy program or component, the code is not ready for testing, it's used for
testing...that means, in a project if there are 4 modules and last is remaining and there is
no time then we will use dummy program to complete that fourth module and we will run
whole 4 modules also. The dummy program is also known as stub.

For Web Applications what type of tests are you going to do?
Web-based applications present new challenges, these challenges include:
- Short release cycles;
- Constantly Changing Technology;
- Possible huge number of users during initial website launch;
- Inability to control the user's running environment;
- 24-hour availability of the web site.

The quality of a website must be evident from the Onset. Any difficulty whether in
response time, accuracy of information, or ease of use-will compel the user to click to a
competitor's site. Such problems translate into lost of users, lost sales, and poor
company image.

To overcome these types of problems, use the following techniques:


1. Functionality Testing
Functionality testing involves making Sure the features that most affect user interactions
work properly. These include:
· forms
· searches
· pop-up windows
· shopping carts
· online payments
2. Usability Testing
Many users have low tolerance for anything that is difficult to use or that does not work.
A user's first impression of the site is important, and many websites have become
cluttered with an increasing number of features. For general-use websites frustrated
users can easily click over a competitor's site.

Usability testing involves following main steps


· identify the website's purpose;
· identify the indented users ;
· define tests and conduct the usability testing
· analyze the acquired information

3. Navigation Testing
Good Navigation is an essential part of a website, especially those that are complex and
provide a lot of information. Assessing navigation is a major part of usability Testing.

4. Forms Testing
Websites that use forms need tests to ensure that each field works properly and that the
forms posts all data as intended by the designer.

5. Page Content Testing


Each web page must be tested for correct content from the user perspective for correct
content from the user perspective. These tests fall into two categories: ensuring that
each component functions correctly and ensuring that the content of each is correct.

6. Configuration and Compatibility testing


A key challenge for web applications is ensuring that the user sees a web page as the
designer intended. The user can select different browser software and browser options,
use different network software and on-line service, and run other concurrent
applications. We execute the application under every browser/platform combination to
ensure the web sites work properly under various environments.

7. Reliability and Availability Testing


A key requirement o a website is that it Be available whenever the user requests it, after
24-hours a day, every day. The number of users accessing web site simultaneously may
also affect the site's availability.

8. Performance Testing
Performance Testing, which evaluates System performance under normal and heavy
usage, is crucial to success of any web application. A system that takes for long to
respond may frustrate the user who can then quickly move to a competitor's site. Given
enough time, every page request will eventually be delivered. Performance testing seeks
to ensure that the website server responds to browser requests within defined
parameters.

9. Load Testing
The purpose of Load testing is to model real world experiences, typically by generating
many simultaneous users accessing the website. We use automation tools to increases
the ability to conduct a valid load test, because it emulates thousand of users by sending
simultaneous requests to the application or the server.

10. Stress Testing


Stress Testing consists of subjecting the system to varying and maximum loads to
evaluate the resulting performance. We use automated test tools to simulate loads on
website and execute the tests continuously for several hours or days.

11. Security Testing


Security is a primary concern when communicating and conducting business- especially
sensitive and business- critical transactions - over the internet. The user wants
assurance that personal and financial information is secure. Finding the vulnerabilities in
an application that would grant an unauthorized user access to the system is important.

Define Brain Stromming and Cause Effect Graphing?


BS:
A learning technique involving open group discussion intended to expand the range of
available ideas
OR
A meeting to generate creative ideas. At PEPSI Advertising, daily, weekly and bi-
monthly brainstorming sessions are held by various work groups within the firm. Our
monthly I-Power brainstorming meeting is attended by the entire agency staff.
OR
Brainstorming is a highly structured process to help generate ideas. It is based on the
principle that you cannot generate and evaluate ideas at the same time. To use
brainstorming, you must first gain agreement from the group to try brainstorming for a
fixed interval (eg six minutes).

CEG:
A testing technique that aids in selecting, in a systematic way, a high-yield set of test
cases that logically relates causes to effects to produce test cases. It has a beneficial
side effect in pointing out incompleteness and ambiguities in specifications.

Password is having 6 digit alphanumeric then what are the possible input
conditions?
Including special characters also Possible input conditions are:
1) Input password as = 6abcde (ie number first)
2) Input password as = abcde8 (ie character first)
3) Input password as = 123456 (all numbers)
4) Input password as = abcdef (all characters)
5) Input password less than 6 digit
6) Input password greater than 6 digits
7) Input password as special characters
8) Input password in CAPITAL ie uppercase
9) Input password including space
10) (SPACE) followed by alphabets /numerical /alphanumerical/

What is internationalization Testing?


Software Internationalization is process of developing software products independent
from cultural norms, language or other specific attributes of a market
What does black-box testing mean at the unit, integration, and system levels?
Tests for each software requirement using
Equivalence Class Partitioning, Boundary Value Testing, and more
Test cases for system software requirements using the Trace Matrix, Cross-functional
Testing, Decision Tables, and more
Test cases for system integration for configurations, manual operations, etc.

What is agile testing?


Agile testing is used whenever customer requirements are changing dynamically

If we have no SRS, BRS but we have test cases does you execute the test cases blindly
or do you follow any other process.

Test case would have detail steps of what the application is supposed to do.
1) Functionality of application.
2) In addition you can refer to Backend, is mean look into the Database. To gain more
knowledge of the application.

What is Bug life cycle?


New: when tester reports a defect
Open: when developer accepts that it is a bug or if the developer rejects the defect, then
the status is turned into "Rejected"
Fixed: when developer make changes to the code to rectify the bug...
Closed/Reopen: when tester tests it again. If the expected result shown up, it is turned
into "Closed" and if the problem persists again, it's "Reopen".

What is deferred status in defect life cycle?


Deferred status means the developer accepted the bus, but it is scheduled to rectify in
the next build.

Smoke test? Do you use any automation tool for smoke testing?
Testing the application whether it's performing its basic functionality properly or not, so
that the test team can go ahead with the application. Definitely can use.

Verification and validation?


Verification is static. No code is executed. Say, analysis of requirements etc.
Validation is dynamic. Code is executed with scenarios present in test cases.

What is test plan and explain its contents?


Test plan is a document which contains the scope for testing the application and what to
be tested, when to be tested and who to test.

What is Testing environment in your company, means how testing process start?
Testing process is going as follows:
Quality assurance unit
Quality assurance manager
Test lead
Test engineer

Give an example of high priority and low severity, low priority and high severity?
Severity level:
The degree of impact the issue or problem has on the project. Severity 1 usually means
the highest level requiring immediate attention. Severity 5 usually represents a
documentation defect of minimal impact.

Severity is levels:
• Critical: the software will not run
• High: unexpected fatal errors (includes crashes and data corruption)
• Medium: a feature is malfunctioning
• Low: a cosmetic issue

Severity levels
1. Bug causes system crash or data loss.
2. Bug causes major functionality or other severe problems; product crashes in
obscure cases.
3. Bug causes minor functionality problems, may affect "fit anf finish".
4. Bug contains typos, unclear wording or error messages in low visibility fields.

Severity levels
• High: A major issue where a large piece of functionality or major system
component is completely broken. There is no workaround and testing cannot
continue.
• Medium: A major issue where a large piece of functionality or major system
component is not working properly. There is a workaround, however, and testing
can continue.
• Low: A minor issue that imposes some loss of functionality, but for which there is
an acceptable and easily reproducible workaround. Testing can proceed without
interruption.
Severity and Priority
Priority is Relative: the priority might change over time. Perhaps a bug initially deemed
P1 becomes rated as P2 or even a P3 as the schedule draws closer to the release and
as the test team finds even more heinous errors. Priority is a subjective evaluation of
how important an issue is, given other tasks in the queue and the current schedule. It’s
relative. It shifts over time. And it’s a business decision.
Severity is an absolute: it’s an assessment of the impact of the bug without regard to
other work in the queue or the current schedule. The only reason severity should change
is if we have new information that causes us to re-evaluate our assessment. If it was a
high severity issue when I entered it, it’s still a high severity issue when it’s deferred to
the next release. The severity hasn’t changed just because we’ve run out of time. The
priority changed.

Severity Levels can be defined as follow:


S1 - Urgent/Showstopper. Like system crash or error message forcing to close the
window.
Tester's ability to operate the system either totally (System Down), or almost totally,
affected. A major area of the users system is affected by the incident and it is significant
to business processes.

S2 - Medium/Workaround. Exist like when a problem is required in the specs but tester
can go on with testing. Incident affects an area of functionality but there is a work-around
which negates impact to business process. This is a problem that:
a) Affects a more isolated piece of functionality.
b) Occurs only at certain boundary conditions.
c) Has a workaround (where "don't do that" might be an acceptable answer to the user).
d) Occurs only at one or two customers. or is intermittent

S3 - Low. This is for minor problems, such as failures at extreme boundary conditions
that are unlikely to occur in normal use, or minor errors in
layout/formatting. Problems do not impact use of the product in any substantive way.
These are incidents that are cosmetic in nature and of no or very low impact to business
processes.

What is Use case?


A simple flow between the end user and the system. It contains pre conditions, post
conditions, normal flows and exceptions. It is done by Team Lead/Test Lead/Tester.

Diff. between STLC and SDLC?


STLC is software test life cycle it starts with
• Preparing the test strategy.
• Preparing the test plan.
• Creating the test environment.
• Writing the test cases.
• Creating test scripts.
• Executing the test scripts.
• Analyzing the results and reporting the bugs.
• Doing regression testing.
• Test exiting.

SDLC is software or system development life cycle, phases are...


• Project initiation.
• Requirement gathering and documenting.
• Designing.
• Coding and unit testing.
• Integration testing.
• System testing.

Installation and acceptance testing. " Support or maintenance.

Explain ETVX concept?


E- Entry Criteria
T- Task
V- Validation
X- Exit Criteria

ENTRY CRITERIA: Input with 'condition' attached.


e.g. Approved SRS document is the entry criteria for the design phase.

TASK: Procedures.
e.g. Preparation of HLD, LLD etc.

VALIDATION: Building quality & Verification activities


e.g. Technical reviews

EXIT CRITERIA: Output with 'condition' attached.


e.g Approved design document
It is important to follow ETVX concept for all phases in SDLC.
What are the main key components in Web applications and client and Server
applications? (differences)
For Web Applications: Web application can be implemented using any kind of
technology like Java, .NET, VB, ASP, CGI& PERL. Based on the technology,We can
derive the components.

Let's take Java Web Application. It can be implemented in 3 tier architecture.


Presentation tier (jsp, html, dthml,servlets, struts). Busienss Tier (Java Beans, EJB,
JMS) Data Tier(Databases like Oracle, SQL Server etc., )

If you take .NET Application, Presentation (ASP, HTML, DHTML), Business Tier (DLL) &
Data Tier ( Database like Oracle, SQL Server etc.,)

Client Server Applications: It will have only 2 tiers. One is Presentation (Java, Swing)
and Data Tier (Oracle, SQL Server). If it is client Server architecture, the entire
application has to be installed on the client machine. When ever you do any changes in
your code, Again, It has to be installed on all the client machines. Where as in Web
Applications, Core Application will reside on the server and client can be thin
Client(browser). Whatever the changes you do, you have to install the application in the
server. NO need to worry about the clients. Because, You will not install any thing on the
client machine.

If the client identified some bugs to whom did he reported?


He will report to the Project Manager. Project Manager will arrange a meeting with all the
leads (Dev. Manager, Test Lead and Requirement Manager) then raise a Change
Request and then, identify which all the screens are going to be impacted by the bug.
They will take the code and correct it and send it to the Testing Team.

Explain 'Software metrics'?


Measurement is fundamental to any engineering discipline
Why Metrics?
- We cannot control what we cannot measure!
- Metrics helps to measure quality
- Serves as dash-board

The main metrices are :size,shedule,defects.In this there are main sub metrices.

Test Coverage = Number of units (KLOC/FP) tested / total size of the system
Test cost (in %) = Cost of testing / total cost *100
Cost to locate defect = Cost of testing / the number of defects located
Defects detected in testing (in %) = Defects detected in testing / total system
defects*100
Acceptance criteria tested = Acceptance criteria tested / total acceptance criteria

What are the main bugs which were identified by you and in that how many are
considered as real bugs?
If you take one screen, let's say, it has got 50 Test conditions, out of which, I have
identified 5 defects which are failed. I should give the description defect, severity and
defect classfication. All the defects will be considered.

Defect Classification are:


GRP : Graphical Representation
LOG : Logical Error
DSN : Design Error
STD : Standard Error
TST : Wrong Test case
TYP : Typographical Error (Cosmotic Error)

What the main use of preparing a traceability matrix?


Traceability matrix is prepared in order to cross check the test cases designed against
each requirement, hence giving an opportunity to verify that all the requirements are
covered in testing the application.
(Or)
To Cross verify the prepared test cases and test scripts with user requirements. To
monitor the changes, enhance occurred during the development of the project.

What is Six sigma? Explain.


Six Sigma:
A quality discipline that focuses on product and service excellence to create a culture
that demands perfection on target, every time.

Six Sigma quality levels


Produces 99.9997% accuracy, with only 3.4 defects per million opportunities.

Six Sigma is designed to dramatically upgrade a company's performance, improving


quality and productivity. Using existing products, processes, and service standards,
They go for Six Sigma MAIC methodology to upgrade performance.

MAIC is defined as follows:


Measure: Gather the right data to accurately assess a problem.
Analyze: Use statistical tools to correctly identify the root causes of a problem
Improve: Correct the problem (not the symptom).
Control: Put a plan in place to make sure problems stay fixed and sustain the gains.

Key Roles and Responsibilities:

The key roles in all Six Sigma efforts are as follows:


Sponsor: Business executive leading the organization.
Champion: Responsible for Six Sigma strategy, deployment, and vision.
Process Owner: Owner of the process, product, or service being improved responsible
for long-term sustainable gains.
Master Black Belts: Coach black belts expert in all statistical tools.
Black Belts: Work on 3 to 5 $250,000-per-year projects; create $1 million per year in
value.
Green Belts: Work with black belt on projects.

What is TRM?
TRM means Test Responsibility Matrix.

TRM: --- It indicates mapping between test factors and development stages...

Test factors like:


Ease of use, reliability, portability, authorization, access control, audit trail, ease of
operates, maintainable... Like dat...
Development stages...
Requirement gathering, Analysis, design, coding, testing, and maintenance

What are cookies? Tell me the advantage and disadvantage of cookies?


Cookies are messages that web servers pass to your web browser when you visit
Internet sites. Your browser stores each message in a small file. When you request
another page from the server, your browser sends the cookie back to the server. These
files typically contain information about your visit to the web page, as well as any
information you've volunteered, such as your name and interests. Cookies are most
commonly used to track web site activity. When you visit some sites, the server gives
you a cookie that acts as your identification card. Upon each return visit to that site, your
browser passes that cookie back to the server. In this way, a web server can gather
information about which web pages are used the most, and which pages are gathering
the most repeat hits. Only the web site that creates the cookie can read it. Additionally,
web servers can only use information that you provide or choices that you make while
visiting the web site as content in cookies. Accepting a cookie does not give a server
access to your computer or any of your personal information. Servers can only read
cookies that they have set, so other servers do not have access to your information.
Also, it is not possible to execute code from a cookie, and not possible to use a cookie to
deliver a virus.

What is the difference between Product-based Company and Projects-based


Company?
Product based company develops the applications for Global clients i.e. there is no
specific clients. Here requirements are gathered from market and analyzed with experts.
Project based company develops the applications for the specific client. The
requirements are gathered from the client and analyzed with the client.

What are the differences between these three words Error, Defect and Bug?
Error: The deviation from the required logic, syntax or standards/ethics is called as error.

There are three types of error. They are:


Syntax error (This is due to deviation from the syntax of the language what supposed to
follow).
Logical error (This is due to deviation from the logic of the program what supposed to
follow)
Execution error (This is generally happens when you are executing the same program,
that time you get it.)
Defect: When an error found by the test engineer (testing department) then it is called
defect

Bug: if the defect is agreed by the developer then it converts into bug, which has to fix by
the developer or post pond to next version.

RDBMS FUNDAMENTALS Interview Questions and Answers

RDBMS FUNDAMENTALS - Concept of a Database


Concept of a Database :

Traditional Approach : In this approach, independent application programs access their


own independent data files. This results in many problems in data storage and retrieval.

Database Approach : In this approach, all application access a common database, which
is a centralized data storage system.

This approach has the following advantages :


Redundancy of data storage is reduced, Inconsistency in data is eliminated and Data
sharing between applications is possible.

RDBMS FUNDAMENTALS - Database Management System (DBMS)


Database Management System (DBMS) : DBMS is a software that interfaces between
applications and a database for all data processing activities.

Users of a DBMS : End Users, Application Programmers and Database Administrators


use a DBMS, either directly or indirectly.

How users interact with a Database :


1. End users send queries to the DBMS through applications.
2. The DBMS translates the queries.
3. The DBMS retrieves data from the database.
4. The DBMS sends data to the application, which present the data to the end users.

Functions of a DBMS :
Function of DBMS Description Provided by using
Defining the data structure Defining structure of data to be stored in database Data
Definition Language (DDL)
Manipulating Data Retrieving, adding, modifying, deleting data. Data Manipulation
Language (DML)
Data Security Preventing unauthorized access to data. User-ids and Passwords.
Control of Data Access Allowing users to use only relevant data Data Control Language
(DCL).

RDBMS FUNDAMENTALS - Architecture of a Database


Architecture of a Database :
Need for an Architecture : The details about complexity and structure of data in a
database in not required by end-users. Therefore, differentiating what the end-users see
and what is actually there in a database is important. Architecture of a Database : The
architecture of a database comprises a set of three levels at which a database can be
viewed.
External Level or View, Conceptual Level or View & Internal Level or View.

RDBMS FUNDAMENTALS - What is Relational Database?


Relational Database Management System (RDBMS) : RDBMS is the most popular form
of DBMS used in the world. It uses a relational database to organize data. A relational
database comprise relations, which are represented as tables.

Relation : A relation stores information about an object in the real world. A relation is
represented as a table.

RDBMS FUNDAMENTALS - Relational Database's Attribute


Attribute : Each attribute of a relation stores a piece of information about an object.
Attributes are represented as columns in a tables and can be arranged in any order.
Each attribute in a relation is unique and contain atomic values i.e. Atomic value contain
a single value of data and Non-Atomic values contain a set of values. The number of
attributes in a relation is called the degree of the relation.

RDBMS FUNDAMENTALS - Relational Database's Tuple


Tuple : A row in a table is called a tuple of the relation. The number of tuples in a relation
is known as the cardinality of the relation. Tuples in a table are unique and can be
arranged in any order.

RDBMS FUNDAMENTALS - Relational Database's Domain


Domain : A domain is a set of valid atomic values that an attribute can take. Within a
single database, an attribute cannot have different domains associated with it. A domain
can include a null value, if the value for the domain is unknown or does not exist.

RDBMS FUNDAMENTALS - Identifiers for Relations


Identifiers for Relations :
Primary Key : An attribute that uniquely identifies a row in a table is called its primary
key. A relation can have only one primary key. The primary key cannot have any null
values. In case no unique key is found in a relation, two or more attributes can be
treated as the primary key. Such keys are called Composite Keys.
Candidate Key : A relation can have more than one attribute that uniquely identifies a
tuple. Any one of these keys can be selected as the primary key. All such attributes are
called Candidate Keys. All candidate keys that are not primary keys are called Alternate
Keys.
Foreign Key : An attribute that is not a candidate key is called a Nonkey. A nonkey
attribute of a relation whose value matches the primary key in some other table is called
Foreign Key OR is a column in a table that uniquely identifies rows from a different table.

RDBMS FUNDAMENTALS - INTERPRETING DATA - Entities


Entity : An entity is an object that exists in the real world and is distinguishable from
other objects. Each entity is represented as a table in a relational database.

Types of Entities : Entities can be classified in two ways - based on existence and based
on subsets.
Based on existence, entities can be classified as Dominant and Weak entities.
Based on subsets, entities can be classifies as Supertypes and Subtypes.

RDBMS FUNDAMENTALS - INTERPRETING DATA - Relationships


Relationships : A relationship is an association between two entities.

Types of Relationships : Relationships are classified into three types based on the
occurrence of the related entities. One-to-One(1-1), One-to-Many(1-M) & Many-to-
Many(M-M).

Using E/R Diagram : A E/R diagram represent entities and relationships in a database
system.

Reducing E/R Diagrams to Relations :


Mapping Entities : A dominant entity is mapped to a new relation. A weak entity is
mapped to a new relation. The primary key of the corresponding dominant entity is
included as the foreign key in the weak entity relation.
Supertypes and subtypes are mapped to separate relations. The primary key of the
supertype becomes the primary key of the subtype.
Mapping Relationships : A 1-1 relationship is mapped using a foreign key. The primary
key of either of the entities is include as a foreign key in the relation of the other entity.
This relationship is rare, because data elements related in this way are normally placed
in the same table.
A 1-M or M-1 is mapped by introducing a foreign key. A primary key is the ??one?? side
of the relationship, and the foreign key is the ??many?? side of the relationship. This
relationship are most common.
A M-M involves the creation of a new relation. M-M are problematic and cannot be
adequately expressed directly in a relational db. It is expressed using intersection tables.
An intersection table contains two (or more) foreign keys, relating the primary key values
of two (or more) tables to each other. The role of an intersection table is to convert the
M-M into two 1-M relationships that can be easily handled by the database.

RDBMS FUNDAMENTALS -SIMPLIFYING DATA


Normalization : Normalization is a formal process of developing data structures in a
manner that eliminates redundancy and promotes integrity. You need to simplify
structure of data in relations for easy storage and retrieval. The process of simplifying
relations is called normalization. The new relations that are obtained after normalization
are called normalized relations.

Normalization has three well defined steps :


The relations that you get at the end of the first step are said to be in 1NF.
The relations that you get at the end of the second step are said to be in 2NF.
The relations that you get at the end of the third step are said to be in 3NF.

Simplifying Data to 1NF (Eliminate Repeating Groups) : A repeating group is a set of


columns that store similar info that repeats in the same table. To simplify data to 1NF,
you ensure that all attributes values in a relation have atomic values. If there are
attributes in a relation with non-atomic values, move these attributes to a new relation
and choose an appropriate primary key for it. E.g. SupItem Table Item field having
atomic.

Simplifying Data to 2NF (Eliminate Redundant Data) :


Redundant data is data that is expressed multiple times unnecessarily, or depends only
on part of a multi-valued key. Functionally Dependent Attributes : Functionally
Dependent Attributes are those that belong to a single entity or relationship and depend
on its unique identifier. To simplify data to 2NF, you ensure that all nonkey attributes in a
relation are functionally dependent on the whole key and not part of the key.

Conversion from 1NF to 2NF : To convert a relation in 1NF to 2NF, move all nonkey
attributes that are not wholly dependent on the primary key, to a new relation. Then,
choose an appropriate primary key for the new relation. E.g. Separating Sup. table and
Item table.

Simplifying Data to 3NF (Eliminate Columns not Dependent on the Key) :


Columns in each table should be a group of columns in which the data in each column
contributes to the description of each row in the table.

Transitively Dependent Attributes : Transitively Dependent Attributes in a relation are


those that are dependent on a nonkey attribute and not the primary key. To simplify data
to 3NF, you ensure that there are no attributes in a relation that are transitively
dependent on other attributes.

Conversion from 2NF to 3NF : To convert a relation in 2NF to 3NF, move all transitively
dependent attributes to a new relation. Then, choose an appropriate primary key for the
new relation. E.g. Status is dependent on City in Sup. table, so move those two to
separate table.
Simplifying Data to 4NF (Isolate Independent Multiple Relationships) :

RDBMS FUNDAMENTALS - Language Support for an RDBMS


SQL :SQL is the language that provides command to interact with the data in the
database. SQL consists of three components - DDL, DML & DCL.
DDL : DDL comprises commands you can use to create and modify the database
structure.
DML : DML comprises commands you can use to add, modify, delete and query data in
the database.
DCL : DCL comprises commands you can use to control the user access to the
database.
RDBMS FUNDAMENTALS - Organizing the Database
Base Tables : A database comprises base tables, which have the following features :
They physically exist on the disk, Each of them has a unique name and they contain
data that is crucial to an organization. Their attributes have data types such as
character, integer, decimal, date and time.
CREATE TABLE : This is a DDL command in SQL that creates a new table in a
database.
Syntax : CREATE TABLE table-name (column-name data-type [[size]]
NOT NULL/DEFAULT default-value]]
CHECK (column-name > 0)
UNIQUE (column-name)
PRIMARY KEY (column-name)
FOREIGN KEY (column-name) REFERENCES table-name)
ALTER TABLE : This is a DDL command in SQL that modifies the structure of an
existing table.
Syntax : ALTER TABLE table-name
ADD (column-name data-type [[size]] [[NOT NULL DEFAULT]]...)
primary key definition / foreign key definition
DROP PRIMARY KEY / DROP FOREIGN KEY)
DROP TABLE : This is DDL command in SQL that deletes the an existing table. Once
you delete a table, all data contained in it is lost and cannot be recovered. The storage
space used by this table is also released.
Syntax : DROP TABLE table-name

RDBMS FUNDAMENTALS - Interacting with a Database


SELECT : This is a DML command in SQL that retrieves data from the database in the
form of query results. The command supports the following keywords and clauses :
FROM This keyword specifies the name of the table.
* This keyword selects all the columns of the table.
WHERE This keyword gives the search condition that specifies the data to be retrieved.
AND This operator is used to combine two or more search conditions.
ORDER BY This keyword sorts the query result on one or more columns.
GROUP BY This keyword groups the query result and lets you generate summary result
for each group.
NULL values This value indicates that the data is not present.
Subquery This is the query that is place inside the main query. It passes its query result
to the main query.
INSERT : This is a DML command in SQL that you use to add data in rows of a table.
SYNTAX : INSERT INTO table-name (column-names) VALUES (constant/NULL)
UPDATE : This is a DML command in SQL that you use to change data on rows of a
table.
Syntax : UPDATE table-name SET column-name-value WHERE condition
DELETE : This is a DML command in SQL that removes one or more rows of data from
a table.
Syntax : DELETE FROM table-name WHERE condition.

RDBMS FUNDAMENTALS - End-user's View of a Database


Views : Views are relations that are derived from one or more source tables. Views have
the following features:
Views let you restrict the access to data so that end-users see data relevant to them.
Views do not physically exist in the database and only their definition is stored by an
RDBMS.
An RDBMS accesses the source tables for data to be retrieved from a view.
Any changes that users make to views do not reflect in the source tables if the view has
been created using a Join condition.
Views created WITH CHECK OPTION allows for an added measure of security in a
view. For example, the user will not be able to insert or update a row that could not be
selected by the view-with check option prevents this from happening.
CREATE VIEW : A view can be created using the CREATE VIEW command.
Syntax : CREATE VIEW view-name (column-names) AS query.
Retrieving Data from a View : Once you create a view, you can retrieve data from it
using the SELECT command, just as you do for a table.

RDBMS FUNDAMENTALS - Restricting Access to a Database


GRANT : This is a DCL command in SQL that you use to grant a specific set of
authorities to one or more users.
Syntax : GRANT (SQL command) (column-names) ON table-name TO user-name.
REVOKE : This is a DCL command in SQL that you use to take away a specific set of
authorities from one or more users.
Syntax : REVOKE (SQL command) ON table-name TO user-name.

RDBMS FUNDAMENTALS - Transaction Processing


Transaction Processing : A transaction is a sequence of one or more SQL commands
that together form a logical task. Transaction Processing ensures that when the RDBMS
is making changes related to a single task, either all changes are made as a unit or no
changes are made.

HTML Interview Questions and Answers


1. What is HTML?
Answer1:
HTML, or HyperText Markup Language, is a Universal language which allows an
individual using special code to create web pages to be viewed on the Internet.

Answer2:
HTML ( H yper T ext M arkup L anguage) is the language used to write Web pages.
You are looking at a Web page right now.
You can view HTML pages in two ways:
* One view is their appearance on a Web browser, just like this page -- colors,
different text sizes, graphics.
* The other view is called "HTML Code" -- this is the code that tells the browser what
to do.

2. What is a tag?
In HTML, a tag tells the browser what to do. When you write an HTML page, you enter
tags for many reasons -- to change the appearance of text, to show a graphic, or to
make a link to another page.

3. What is the simplest HTML page?


HTML Code:
<HTML>
<HEAD>
<TITLE>This is my page title! </TITLE>
</HEAD>
<BODY>
This is my message to the world!
</BODY>
</HTML>

Browser Display:
This is my message to the world!

4. How do I create frames? What is a frameset?


Frames allow an author to divide a browser window into multiple (rectangular) regions.
Multiple documents can be displayed in a single window, each within its own frame.
Graphical browsers allow these frames to be scrolled independently of each other,
and links can update the document displayed in one frame without affecting the
others.
You can't just "add frames" to an existing document. Rather, you must create a
frameset document that defines a particular combination of frames, and then display
your content documents inside those frames. The frameset document should also
include alternative non-framed content in a NOFRAMES element.
The HTML 4 frames model has significant design flaws that cause usability problems
for web users. Frames should be used only with great care.

5. How can I include comments in HTML?


Technically, since HTML is an SGML application, HTML uses SGML comment syntax.
However, the full syntax is complex, and browsers don't support it in its entirety
anyway. Therefore, use the following simplified rule to create HTML comments that
both have valid syntax and work in browsers:

An HTML comment begins with "<!--", ends with "-->", and does not contain "--" or ">"
anywhere in the comment.
The following are examples of HTML comments:

* <!-- This is a comment. -->


* <!-- This is another comment,
and it continues onto a second line. -->
* <!---->

6. What is a Hypertext link?


A hypertext link is a special tag that links one page to another page or resource. If you
click the link, the browser jumps to the link's destination.

6. How comfortable are you with writing HTML entirely by hand?


Very. I don’t usually use WYSIWYG. The only occasions when I do use Dreamweaver
are when I want to draw something to see what it looks like, and then I’ll usually either
take that design and hand-modify it or build it all over again from scratch in code. I
have actually written my own desktop HTML IDE for Windows (it’s called Less Than
Slash) with the intention of deploying it for use in web development training. If has
built-in reference features, and will autocomplete code by parsing the DTD you specify
in the file. That is to say, the program doesn’t know anything about HTML until after it
parses the HTML DTD you specified. This should give you some idea of my skill level
with HTML.
7. What is everyone using to write HTML?
Everyone has a different preference for which tool works best for them. Keep in mind
that typically the less HTML the tool requires you to know, the worse the output of the
HTML. In other words, you can always do it better by hand if you take the time to learn
a little HTML.

8. What is a DOCTYPE? Which one do I use?


According to HTML standards, each HTML document begins with a DOCTYPE
declaration that specifies which version of HTML the document uses. Originally, the
DOCTYPE declaration was used only by SGML-based tools like HTML validators,
which needed to determine which version of HTML a document used (or claimed to
use).
Today, many browsers use the document's DOCTYPE declaration to determine
whether to use a stricter, more standards-oriented layout mode, or to use a "quirks"
layout mode that attempts to emulate older, buggy browsers.

9. Can I nest tables within tables?


Yes, a table can be embedded inside a cell in another table. Here's a simple example:

<table>
<tr>
<td>this is the first cell of the outer table</td>
<td>this is the second cell of the outer table,

with the inner table embedded in it


<table>
<tr>
<td>this is the first cell of the inner table</td>
<td>this is the second cell of the inner table</td>
</tr>
</table>
</td>
</tr>
</table>
The main caveat about nested tables is that older versions of Netscape Navigator
have problems with them if you don't explicitly close your TR, TD, and TH elements.
To avoid problems, include every </tr>, </td>, and </th> tag, even though the HTML
specifications don't require them.
Also, older versions of Netscape Navigator have problems with tables that are nested
extremely deeply (e.g., tables nested ten deep). To avoid problems, avoid nesting
tables more than a few deep. You may be able to use the ROWSPAN and COLSPAN
attributes to minimize table nesting.
Finally, be especially sure to validate your markup whenever you use nested tables.

10. How do I align a table to the right (or left)?


You can use <TABLE ALIGN="right"> to float a table to the right. (Use ALIGN="left" to
float it to the left.) Any content that follows the closing </TABLE> tag will flow around
the table. Use <BR CLEAR="right"> or <BR CLEAR="all"> to mark the end of the text
that is to flow around the table, as shown in this example:

The table in this example will float to the right.


<table align="right">...</table>
This text will wrap to fill the available space to the left of (and if the text is long
enough, below) the table.
<br clear="right">
This text will appear below the table, even if there is additional room to its left.

11. How can I use tables to structure forms?


Small forms are sometimes placed within a TD element within a table. This can be a
useful for positioning a form relative to other content, but it doesn't help position the
form-related elements relative to each other.
To position form-related elements relative to each other, the entire table must be
within the form. You cannot start a form in one TH or TD element and end in another.
You cannot place the form within the table without placing it inside a TH or TD
element. You can put the table inside the form, and then use the table to position the
INPUT, TEXTAREA, SELECT, and other form-related elements, as shown in the
following example.

<FORM ACTION="[URL]">
<TABLE BORDER="0">
<TR>
<TH>Account:</TH>
<TD><INPUT TYPE="text" NAME="account"></TD>
</TR>
<TR>
<TH>Password:</TH>
<TD><INPUT TYPE="password" NAME="password"></TD>
</TR>
<TR>
<TD> </TD>
<TD><INPUT TYPE="submit" NAME="Log On"></TD>
</TR>
</TABLE>
</FORM>

12. How do I center a table?

In your HTML, use

<div class="center">
<table>...</table>
</div>

In your CSS, use

div.center {
text-align: center;
}

div.center table {
margin-left: auto;
margin-right: auto;
text-align: left;
}
13. How do I use forms?
The basic syntax for a form is: <FORM ACTION="[URL]">...</FORM>
When the form is submitted, the form data is sent to the URL specified in the ACTION
attribute. This URL should refer to a server-side (e.g., CGI) program that will process
the form data. The form itself should contain

* at least one submit button (i.e., an <INPUT TYPE="submit" ...> element),


* form data elements (e.g., <INPUT>, <TEXTAREA>, and <SELECT>) as needed,
and
* additional markup (e.g., identifying data elements, presenting instructions) as
needed.

14. How can I check for errors?


HTML validators check HTML documents against a formal definition of HTML syntax
and then output a list of errors. Validation is important to give the best chance of
correctness on unknown browsers (both existing browsers that you haven't seen and
future browsers that haven't been written yet).
HTML checkers (linters) are also useful. These programs check documents for
specific problems, including some caused by invalid markup and others caused by
common browser bugs. Checkers may pass some invalid documents, and they may
fail some valid ones.
All validators are functionally equivalent; while their reporting styles may vary, they will
find the same errors given identical input. Different checkers are programmed to look
for different problems, so their reports will vary significantly from each other. Also,
some programs that are called validators (e.g. the "CSE HTML Validator") are really
linters/checkers. They are still useful, but they should not be confused with real HTML
validators.
When checking a site for errors for the first time, it is often useful to identify common
problems that occur repeatedly in your markup. Fix these problems everywhere they
occur (with an automated process if possible), and then go back to identify and fix the
remaining problems.
Link checkers follow all the links on a site and report which ones are no longer
functioning. CSS checkers report problems with CSS style sheets.
15. Do I have to memorize a bunch of tags?
No. Most programs that help you write HTML code already know most tags, and
create them when you press a button. But you should understand what a tag is, and
how it works. That way you can correct errors in your page more easily.

16. How do I make a form so it can be submitted by hitting ENTER?


The short answer is that the form should just have one <INPUT TYPE=TEXT> and no
TEXTAREA, though it can have other form elements like checkboxes and radio
buttons.

17. How do I set the focus to the first form field?


You cannot do this with HTML. However, you can include a script after the form that
sets the focus to the appropriate field, like this:

<form id="myform" name="myform" action=...>


<input type="text" id="myinput" name="myinput" ...>
</form>

<script type="text/javascript">
document.myform.myinput.focus();
</script>

A similar approach uses <body onload=...> to set the focus, but some browsers seem
to process the ONLOAD event before the entire document (i.e., the part with the form)
has been loaded.
18. How can I eliminate the extra space after a </form> tag?
HTML has no mechanism to control this. However, with CSS, you can set the margin-
bottom of the form to 0. For example:
<form style="margin-bottom:0;" action=...>

You can also use a CSS style sheet to affect all the forms on a page:
form { margin-bottom: 0 ; }

19. How can I use tables to structure forms?


Small forms are sometimes placed within a TD element within a table. This can be a
useful for positioning a form relative to other content, but it doesn't help position the
form-related elements relative to each other.
To position form-related elements relative to each other, the entire table must be
within the form. You cannot start a form in one TH or TD element and end in another.
You cannot place the form within the table without placing it inside a TH or TD
element. You can put the table inside the form, and then use the table to position the
INPUT, TEXTAREA, SELECT, and other form-related elements, as shown in the
following example.
<form action="[URL]">
<table border="0">
<tr>
<th scope="row">
<label for="account">Account:</label>
</th>
<td>
<input type="text" name="account" id="account">
</td>
</tr>
<tr>
<th scope="row">
<label for="password">Password:
</th>
<td>
<input type="password" name="password" id="password">
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Log On"></td>
</tr>
</table>
</form>

20. Can I have two or more actions in the same form?


No. A form must have exactly one action. However, the server-side (e.g., CGI)
program that processes your form submissions can perform any number of tasks
(e.g., updating a database, sending email, logging a transaction) in response to a
single form submission.

21. How can I use forms for pull-down navigation menus?


There is no way to do this in HTML only; something else must process the form.
JavaScript processing will work only for readers with JavaScript-enabled browsers.
CGI and other server-side processing is reliable for human readers, but search
engines have problems following any form-based navigation.

22. How can I avoid using the whole URL?


The URL structure defines a hierarchy (or relationship) that is similar to the hierarchy
of subdirectories (or folders) in the filesystems used by most computer operating
systems. The segments of a URL are separated by slash characters ("/"). When
navigating the URL hierarchy, the final segment of the URL (i.e., everything after the
final slash) is similar to a file in a filesystem. The other segments of the URL are
similar to the subdirectories and folders in a filesystem.
A relative URL omits some of the information needed to locate the referenced
document. The omitted information is assumed to be the same as for the base
document that contains the relative URL. This reduces the length of the URLs needed
to refer to related documents, and allows document trees to be accessed via multiple
access schemes (e.g., "file", "http", and "ftp") or to be moved without changing any of
the embedded URLs in those documents.
Before the browser can use a relative URL, it must resolve the relative URL to
produce an absolute URL. If the relative URL begins with a double slash (e.g.,
//www.yoursite.com/faq/html/), then it will inherit only the base URL's scheme. If the
relative URL begins with a single slash (e.g., /faq/html/), then it will inherit the base
URL's scheme and network location.
If the relative URL does not begin with a slash (e.g., all.html , ./all.html or ../html/),
then it has a relative path and is resolved as follows.

1. The browser strips everything after the last slash in the base document's URL and
appends the relative URL to the result.
2. Each "." segment is deleted (e.g., ./all.html is the same as all.html, and ./ refers to
the current "directory" level in the URL hierarchy).
3. Each ".." segment moves up one level in the URL hierarchy; the ".." segment is
removed, along with the segment that precedes it (e.g., foo/../all.html is the same as
all.html, and ../ refers to the parent "directory" level in the URL hierarchy).

Some examples may help make this clear. If the base document is
<URL:http://www.yoursite.com/faq/html/basics.html>, then

all.html and ./all.html


refer to <URL:http://www.yoursite.com/faq/html/all.html>
./
refers to <URL:http://www.yoursite.com/faq/html/>
../
refers to <URL:http://www.yoursite.com/faq/>
../cgifaq.html
refers to <URL:http://www.yoursite.com/faq/cgifaq.html>
../../reference/
refers to <URL:http://www.yoursite.com/reference/>

Please note that the browser resolves relative URLs, not the server. The server sees
only the resulting absolute URL. Also, relative URLs navigate the URL hierarchy. The
relationship (if any) between the URL hierarchy and the server's filesystem hierarchy
is irrelevant.

23. Can I use percentage values for <TD WIDTH=...>?


The HTML 3.2 and HTML 4.0 specifications allow only integer values (representing a
number of pixels) for the WIDTH attribute of the TD element. However, the HTML 4.0
DTD allows percentage (and other non-integer) values, so an HTML validator will not
complain about <TD WIDTH="xx%">.
It should be noted that Netscape and Microsoft's browsers interpret percentage values
for <TD WIDTH=...> differently. However, their interpretations (and those of other
table-aware browsers) happen to match when combined with <TABLE
WIDTH="100%">. In such situations, percentage values can be used relatively safely,
even though they are prohibited by the public specifications.

24. Why doesn't <TABLE WIDTH="100%"> use the full browser width?
Graphical browsers leave a narrow margin between the edge of the display area and
the content.
Also note that Navigator always leaves room for a scrollbar on the right, but draws the
scrollbar only when the document is long enough to require scrolling. If the document
does not require scrolling, then this leaves a right "margin" that cannot be removed.
25. Why is there extra space before or after my table?
This is often caused by invalid HTML syntax. Specifically, it is often caused by loose
content within the table (i.e., content that is not inside a TD or TH element). There is
no standard way to handle loose content within a table. Some browsers display all
loose content before or after the table. When the loose content contains only multiple
line breaks or empty paragraphs, then these browsers will display all this empty space
before or after the table itself.
The solution is to fix the HTML syntax errors. All content within a table must be within
a TD or TH element.

26. How do I create a link that sends me email?


Use a mailto link, for example

Send me email at
<A HREF="mailto:me@mydomain.com">me@mydomain.com</A>.

27. How can I have two sets of links with different colors?
You can suggest this presentation in a style sheet. First, specify colors for normal
links, like this:

a:link {color: blue; background: white}


a:visited {color: purple; background: white}
a:active {color: red; background: white}

Next, identify the links that you want to have different colors. You can use the CLASS
attribute in your HTML, like this:

<a class="example1" href="[URL]">[link text]</a>


Then, in your style sheet, use a selector for links with this CLASS attribute, like this:
a.example1:link {color: yellow; background: black}
a.example1:visited {color: white; background: black}
a.example1:active {color: red; background: black}

Alternatively, you can identify an element that contains the links that you want to have
different colors, like this:

<div class="example2">...
<a href="[URL]">[link text]</a>...
<a href="[URL]">[link text]</a>...
<a href="[URL]">[link text]</a>...
</div>

Then, in your style sheet, use a selector for links in this containing element, like this:

.example2 a:link {color: yellow; background: black}


.example2 a:visited {color: white; background: black}
.example2 a:active {color: red; background: black}

28. How can I show HTML examples without them being interpreted as part of
my document?
Within the HTML example, first replace the "&" character with "&amp;" everywhere it
occurs. Then replace the "&lt;" character with "<" and the "&gt;" character with ">" in
the same way.
Note that it may be appropriate to use the CODE and/or PRE elements when
displaying HTML examples.
29. How do I get special characters in my HTML?
The special case of the less-than ('<'), greater-than ('>'), and ampersand ('&')
characters. In general, the safest way to write HTML is in US-ASCII (ANSI X3.4, a 7-
bit code), expressing characters from the upper half of the 8-bit code by using HTML
entities.
Working with 8-bit characters can also be successful in many practical situations: Unix
and MS-Windows (using Latin-1), and also Macs (with some reservations).
Latin-1 (ISO-8859-1) is intended for English, French, German, Spanish, Portuguese,
and various other western European languages. (It is inadequate for many languages
of central and eastern Europe and elsewhere, let alone for languages not written in
the Roman alphabet.) On the Web, these are the only characters reliably supported.
In particular, characters 128 through 159 as used in MS-Windows are not part of the
ISO-8859-1 code set and will not be displayed as Windows users expect. These
characters include the em dash, en dash, curly quotes, bullet, and trademark symbol;
neither the actual character (the single byte) nor its &#nnn; decimal equivalent is
correct in HTML. Also, ISO-8859-1 does not include the Euro currency character.
(See the last paragraph of this answer for more about such characters.)
On platforms whose own character code isn't ISO-8859-1, such as MS-DOS and Mac
OS, there may be problems: you have to use text transfer methods that convert
between the platform's own code and ISO-8859-1 (e.g., Fetch for the Mac), or convert
separately (e.g., GNU recode). Using 7-bit ASCII with entities avoids those problems,
but this FAQ is too small to cover other possibilities in detail.
If you run a web server (httpd) on a platform whose own character code isn't ISO-
8859-1, such as a Mac or an IBM mainframe, then it's the job of the server to convert
text documents into ISO-8859-1 code when sending them to the network.
If you want to use characters not in ISO-8859-1, you must use HTML 4 or XHTML
rather than HTML 3.2, choose an appropriate alternative character set (and for certain
character sets, choose the encoding system too), and use one method or other of
specifying this.
31. Posting Copy and Paste HTML
For those wanting to post direct Copy and Paste HTML on screen without the use of
spaces or *s etc. and the need to explain those substitutions: Use &lt; to substitute for
each opening tag < in each tagged set of HTML. Example, typing the following: &lt;a
href="http://www.yourname.com">&lt;img
src="http://pics.yourname.com/aw/pics/mask.gif">&lt;/a> Will show up on screen as:
<a href="http://www.yourname.com"><img
src="http://pics.yourname.com/aw/pics/mask.gif"></a>

61. What is the difference between the HTML form methods GET and POST?
The method parameter specifies which method the client is using to send information
to the WEB server. The method determines which parameter you will find the CGI
request data in:

* POST - post_args
* GET - http_search_args

62. How do I rename all the files from .htm to .html after copying them from a PC
to a UNIX machine?
UNIX's mv (`move') command won't handle wildcard filenames. However, there's a
program called htmaddl (for `HTM-add-"L"'), so you can login and type htmaddl. This
will rename all .htm files to .html

If you haven't got this program on your UNIX machine, you can type it into a file called
htmaddl:

#! /bin/sh

for f in *.htm; do
base=`basename $f .htm`
mv $f $base.html
done

After saving it and exiting your editor, make it executable by typing the command
chmod ugo+x htmaddl
Best of all, move it into your ~/bin directory, or ask your WebMeister to put it in
/usr/local/bin so everyone can use it.

85. How do I open a link into a new window?


This feature is a byproduct of frames (In many opinions, the only good things frames
did for web design). On any HTML page, you can just add target="_blank" to your link
syntax. e.g. yoursite.com

84. Do search engines dislike frames?


Search engines can link directly to framed content documents, but they cannot link to
the combinations of frames for which those content documents were designed. This is
the result of a fundamental flaw in the design of frames.
Search engines try to provide their users with links to useful documents. Many framed
content documents are difficult to use when accessed directly (outside their intended
frameset), so there is little benefit if search engines offer links to them. Therefore,
many search engines ignore frames completely and go about indexing more useful
(non-framed) documents.
Search engines will index your <NOFRAMES> content, and any content that is
accessible via your
32. HTML for Lists
1. Bulleted Lists: <ul> begins a bulleted, indented list. Each item in the list is then
prefaced with the <li> tag. It is not necessary to insert a break at the end of each line
-- the <li> tag automatically creates a new line.

* with <li type=disc>


* with <li type=square>
* with <li type=circle>

2. Numbered Lists: <ol> begins a numbered, indented list. Each item in the list is then
prefaced with the <li> tag. You need to close the list with the </ol> tag. Note: You can
expand the <ol> to specify the TYPE of numbering:

<ol> 1 (decimal numbers: 1, 2, 3, 4, 5, ...)


<ol type="a"> a (lowercase alphabetic: a, b, c, d, e, ...)
<ol type="A"> A (uppercase alphabetic: A, B, C, D, E, ...)
<ol type="i"> i (lowercase Roman numerals: i, ii, iii, iv, v, ...)
<ol type="I"> I (uppercase Roman numerals: I, II, III, IV, V, ...)

Database Testing

1. What we normally check for in the Database Testing?


In DB testing we need to check for,
1. The field size validation
2. Check constraints.
3. Indexes are done or not (for performance related issues)
4. Stored procedures
5. The field size defined in the application is matching with that in the db.
2. What is Database testing?
Data bas testing basically include the following.
1)Data validity testing.
2)Data Integritity testing
3)Performance related to data base.
4)Testing of Procedure,triggers and functions.
for doing data validity testing you should be good in SQL queries
For data integrity testing you should know about referintial integrity and different
constraint.
For performance related things you should have idea about the table structure and
design.
for testing Procedure triggers and functions you should be able to understand the
same.

3. How to Test database in Manually? Explain with an example


Observing that opertaions, which are operated on front-end is effected on back-end or
not.
The approach is as follows :
While adding a record thr' front-end check back-end that addition of record is effected
or not. So same for delete, update,...... Ex:Enter employee record in database thr'
front-end and check if the record is added or not to the back-end(manually).

4. What is data driven test?


An1:
Data driven test is used to test the multinumbers of data in a data-table, using this we
can easy to replace the paramerers in the same time from deferent locations.
e.g: using .xsl sheets.

An2:
Re-execution of our test with different input values is called Re-testing. In validate our
Project calculations, test engineer follows retesting manner through automation
tool.Re-teting is also called DataDriven Test.There are 4 types of datadriven tests.
1) Dynamic Input submissiion ( key driven test) : Sometines a test engineer conducts
retesting with different input values to validate the calculation through dynamic
submission.For this input submission, test engineer use this function in TSL scriipt--
create_input_dialog ("label");
2) Data Driven Files Through FLAT FILES ( .txt,.doc) : Sometimes testengineer
conducts re-testing depends on flat file contents. He collect these files from Old
Version databases or from customer side.
3)Data Driven Tests From FRONTEND GREAVES : Some times a test engineer
create automation scripts depends on frontend objects values such as (a) list (b)
menu (c) table (d) data window (5) ocx etc.,
4)Data Driven Tests From EXCEL SHEET : sometimes a testengineer follows this
type of data driven test to execute their script for multiple inputs. These multiple inputs
consists in excel sheet columns. We have to collect this testdata from backend
tables .

5. How to check a trigger is fired or not, while doing database testing?


It can be verified by querying the common audit log where we can able to see the
triggers fired.

6. How to Test Database Procedures and Triggers?


Before testing Data Base Procedures and Triggers, Tester should know that what is
the Input and out put of the procedures/Triggers, Then execute Procedures andÂ
Triggers, if you get answer that Test Case will be pass other wise fail.
These requirements should get from DEVELOPER
7. Is a "A fast database retrieval rate" a testable requirement?
No. I do not think so. Since the requirement seems to be ambiguous. The SRS should
clearly mention the performance or transaction requirements i.e. It should say like 'A
DB retrival rate of 5 micro sec'.

8. How to test a DTS package created for data insert update and delete? What
should be considered in the above case while testing it?What conditions are to
be checked if the data is inserted, updated or deleted using a text files?
Data Integrity checks should be performed. IF the database schema is 3rd normal
form, then that should be maintained. Check to see if any of the constraints have
thrown an error. The most important command will have to be the DELETE command.
That is where things can go really wrong.
Most of all, maintain a backup of the previous database.

9.How to test a SQL Query in Winrunner? without using DataBase CheckPoints?


By writing scripting procedure in the TCL we can connect to the database and we can
test data base and queries.
The exact proccess should be:
1)connect to the database
db_connect("query1",DRIVER={drivername};SERVER=server_name;
UID=uidname;PWD=password;DBQ=database_name ");
2)Execute the query
db_excecute_query("query1","write query u want to execute");
-Condition to be mentioned-

3)disconnect the connection


db_disconnect("query");
10. How do you test whether a database in updated when information is entered
in the front end?
It depend on your application interface..

1. If your application provides view functionality for the entered data, then you can
verify that from front end only. Most of the time Black box test engineers verify the
functionality in this way.

2. If your application has only data entry from front end and there is no view from front
end, then you have to go to Database and run relevent SQL query.

3. You can also use database checkpoint function in WinRunner.

11. How do you test whether the database is updated as and when an
information are added in the front end?Give me an example?
It depends on what level of testing you are doing.When you want to save something
from front end obviously, it has to store somewhere in the database
You will need to find out the relevant tables involved in saving the records.
Data Mapping from front end to the tables.Then enter the data from front end and
save.
Go to database, fire queries to get the same date from the back end.

12. What steps does a tester take in testing Stored Procedures?


First the tester should to go through the requirement, as to why the particular stored
procedure is written for.
Then check whether all the required indexes, joins, updates, deletions are correct
comparing with the tables mentions in the Stored Procedure. And also he has to
ensure whether the Stored Procedure follows the standard format like comments,
updated by, etc.
Then check the procedure calling name, calling parameters, and expected reponses
for different sets of input parameters.
Then run the procedure yourself with database client programs like TOAD, or mysql,
or Query Analyzer
Rerun the procedure with different parameters, and check results against expected
values.
Finally, automate the tests with WinRunner.

13. What are the different stages involved in Database Testing


verify field level data in the database with respect to frontend transactions
verify the constraint (primary key,forien key ....)
verify the performance of the procedures
verify the triggrs (execution of triggers)
verify the transactions (begin,commit,rollback)

14. How to use SQL queries in WinRunner/QTP


in QTP
using output databse check point and database check point ,
select SQL manual queries option
and enter the "select" queris to retrive data in the database and compare the expected
and actual

15. What is database testing and what we test in database testing?


An1:
Database testing is all about testing joins, views, inports and exports , testing the
procedures, checking locks, indexing etc. Its not about testing the data in the
database.
Usually database testing is performed by DBA.
An2:
Database testing involves some in depth knowledge of the given application and
requires more defined plan of approach to test the data.
Key issues include:
1) Data Integrity
2) Data Validity
3) Data Manipulation and updates
Tester must be aware of the database design concepts and implementation rules.

An3:
Data bas testing basically include the following.
1)Data validity testing.
2)Data Integritity testing
3)Performance related to data base.
4)Testing of Procedure,triggers and functions.
for doing data validity testing you should be good in SQL queries
For data integrity testing you should know about referintial integrity and different
constraint.
For performance related things you should have idea about the table structure and
design.
for testing Procedure triggers and functions you should be able to understand the
same.

16. What SQL statements have you used in Database Testing?


The most important statement for database testing is the SELECT statement, which
returns data rows from one or multiple tables that satisfies a given set of criteria.
You may need to use other DML (Data Manipulation Language) statements like
INSERT, UPDATE and DELTE to manage your test data.
You may also need to use DDL (Data Definition Language) statements like CREATE
TABLE, ALTER TABLE, and DROP TABLE to manage your test tables.
You may also need to some other commands to view table structures, column
definitions, indexes, constraints and store procedures.
17. How to test data loading in Data base testing?
You have to do the following things while you are involving in Data Load testing.
1. You have know about source data (table(s), columns, datatypes and Contraints)
2. You have to know about Target data (table(s), columns, datatypes and Contraints)
3. You have to check the compatibility of Source and Target.
4. You have to Open corresponding DTS package in SQL Enterprise Manager and
run the DTS package (If you are using SQL Server).
5. Then you should compare the column's data of Source and Target.
6. You have to check the number to rows of Source and Target.
7. Then you have to update the data in Source and see the change is reflecting in
Target or not.
8. You have to check about junk character and NULLs.

18. What is way of writing testcases for database testing?


An1:
You have to do the following for writing the database testcases.
1. First of all you have to understand the functional requirement of the application
throughly.
2. Then you have to find out the back end tables used, joined used between the
tables, cursors used (if any), tiggers used(if any), stored procedures used (if any),
input parmeter used and output parameters used for developing that requirement.
3. After knowing all these things you have to write the testcase with different input
values for checking all the paths of SP.
One thing writing testcases for backend testing not like functinal testing. You have to
use white box testing techniques.

An2:
To write testcase for database its just like functional testing.
1.Objective:Write the objective that you would like to test. eg: To check the shipment
that i load thru xml is getting inserted for perticular customer.
2.Write the method of input or action that you do. eg:Load an xml with all data which
can be added to a customer.
3.Expected :Input should be viewd in database. eg: The shipment should be loaded
sucessfully for that customer,also it should be seen in application.4.You can write
ssuch type of testcases for any functionality like update,delete etc.

An3:
At first we need to go through the documents provided.
Need to know what tables, stored procedures are mentioned in the doc.
Then test the functionality of the application.

Simultaneously, start writing the DB testcases.. with the queries you have used at the
backend while testing, the tables and stored procedures you have used in order to get
the desired results. Trigers that were fired. Based on the stored procedure we can
know the functionality for a specific peice of the application. So that we can write
queries related to that. From that we make DB testcases also.

19;What is Database testing?


An1:
here database testing means test engineer should test the data integrity, data
accessing,query retriving,modifications,updation and deletion etc

An2:
Database tests are supported via ODBC using the following functions:
SQLOpen, SQLClose, SQLError, SQLRetrieve, SQLRetrieveToFile, SQLExecQuery,
SQLGetSchema and SQLRequest.
You can carry out cursor type operations by incrementing arrays of returned datasets.

All SQL queries are supplied as a string. You can execute stored procedures for
instance on SQL Server you could use “Exec MyStoredProcedure” and as long as that
stored procedure is registered on the SQL Server database then it should execute
however you cannot interact as much as you may like by supplying say in/out
variables, etc but for most instances it will cover your database test requirements

An3:
Data bas testing basically include the following.
1)Data validity testing.
2)Data Integritity testing
3)Performance related to data base.
4)Testing of Procedure,triggers and functions.

for doing data validity testing you should be good in SQL queries
For data integrity testing you should know about referintial integrity and different
constraint.
For performance related things you should have idea about the table structure and
design.
for testing Procedure triggers and functions you should be able to understand the
same.

An4:
Data base testing generally deals with the follwoing:
a)Checking the integrity of UI data with Database Data
b)Checking whether any junk data is displaying in UI other than that stored in
Database
c)Checking execution of stored procedures with the input values taken from the
database tables
d)Checking the Data Migration .

20. What we normally check for in the Database Testing?


An1:
In DB testing we need to check for,
1. The field size validation
2. Check constraints.
3. Indexes are done or not (for performance related issues)
4. Stored procedures
5. The field size defined in the application is matching with that in the db.

An2:
Database testing involves some indepth knowledge of the given application and
requires more defined plan of approach to test the data. Key issues include :
1) data Integrity
2) data validity
3) data manipulation and updates.

Tester must be aware of the database design concepts and implementation rules
Other Interview Questions

CSS (Cascading Style Sheets)

What Is CSS (Cascading Style Sheets)?

CSS (Cascading Style Sheets) is a technical specification that allows HTML document authors to
attach formatting style sheets to HTML documents. When HTML documents are viewed as Web
pages through Web browsers, the attached style sheets will alter the default style sheets embedded
in browsers.

One of the fundamental features of CSS is that style sheets cascade; authors can attach a preferred
style sheet, while the reader may have a personal style sheet to adjust for human or technological
handicaps. The rules for resolving conflicts between different style sheets are defined in CSS
specification.

CSS specification is maintained by W3C. You can download a copy of the specification at
http://www.w3.org/.

Tutorials below are based Cascading Style Sheets, level 1, which has been widely accepted as the
current standard.

What Is the Basic Unit of CSS?

The basic unit of CSS is a definition of a style property for a selected HTML tag written in the
following syntax:
html_tag_name {style_property_name: style_property_value}

For example:
/* set background color to black for the <BODY> tag */
BODY {background-color: black}
/* set font size to 16pt for the <H1> tag */
H1 {font-size: 16pt}

/* set left margin to 0.5 inch for the <BLOCKQUOTE> tag */


BLOCKQUOTE {margin-left: 0.5in}

How Many Ways to Attach CSS to HTML Documents?

There are 3 ways to attach CSS to HTML documents:


• Included in the STYLE attribute of HTML tags.
• Included in the STYLE tag inside the HEAD tag.
• Included in an external file and specify it in the LINK tag inside the HEAD tag.

How To Include CSS Inside an HTML Tag?

If you want to include CSS inside a HTML tag, you can use the STYLE attribute as <TAG
STYLE="css_definition" ...>. Of course, the CSS definition will only apply to this instance of this
tag. The following tutorial exercise shows you how to set background to gray on a <PRE> tag:
<p>Map of commonly used colors:</p>
<pre style="background-color: gray">
black #000000
white #ffffff
gray #7f7f7f
red #ff0000
green #00ff00
blue #0000ff
</pre

How To Include CSS Inside the HEAD Tag?

If you want to include CSS inside the HEAD tag and apply to the entire HMTL docuemnt, you can
use the STYLE tag as <STYLE TYPE="text/css">css_definition</STYLE>. The following
tutorial exercise shows you how to set body background to black and paragraph text to yellow:
<html><head>
<title>CSS Included</title>
<style type="text/css">
BODY {background-color: black}
P {color: yellow}
</style>
</head><body>
<p>Welcome to FYICenter.com.
You should see this text in yellow on black background.</p>
</body></html>

How To Store CSS Definitions in External Files?

If you want to share a set of CSS definitions with multiple HTML documents, you should those
CSS definitions in an external file, and link it to those HTML documents using the LINK tag in
the HEAD tag as:
<HEAD>
...
<LINK REL=stylesheet TYPE="text/css" HREF="css_file_url"/>
...
</HEAD>

Below is a CSS file called, fyiCenter.css, that stores the same CSS definitions used in the previous
exercise:
BODY {background-color: black}
P {color: yellow}

If you modify the HTML document with the LINK tag instead of the STYLE tag, you can get the
same result:
<html><head>
<title>CSS Linked</title>
<link rel=stylesheet type="text/css" href="fyiCenter.css"/>
</head><body>
<p>Welcome to FYICenter.com.
You should see this text in yellow on black background.</p>
</body></html>

How Many Ways to Select HTML Tag Instances?

If you define a style property for a HTML tag, this definition will apply to all instances of that tag
in the entire document. If you want to apply different style property values to different instances of
the same tag, you need to use the tag selection mechanisms defined in CSS:
• Tag Selector - Selects all instances of a HTML tag.
• Contextual Selector - Selects all instances of a HTML tag nested inside other specified tags.
• Class Selector - Selects all HTML tags that matches the class name defined in the tag attribute
of class="class_name".
• ID Selector - Selects all HTML tags that matches the id name defined in the tag attribute of
id="id_name".
• Group Selector - Selects multiple HTML tags.
• Mixed Selector - Selects instances of HTML tags mixed with other selectors.
What Is a Class Selector?

A class selector selects all HTML tags that matches the class name defined in the tag attribute of
class="class_name". Class selectors are specified with a leading dot like (.class_name). For
example, the following CSS definition uses a class selector:
/* set text to italic to all tags with class="quote" */
.quote {font-style: italic}

If you apply the above CSS definition to the following HTML document, you will get two blocks
in italic, one from the <p> tag and one from the <pre> tag:
<p>Normal paragraph...</p>
<p class="quote">Special paragraph...</p>
<pre>Normal pre-formatted text...</pre>
<pre class="quote">Special pre-formatted text...</pre>

What Is an ID Selector?

A ID selector selects all HTML tags that matches the id name defined in the tag attribute of
id="id_name". ID selectors are specified with a leading hash like (#id_name). For example, the
following CSS definition uses an ID selector:
/* set text to red to all tags with id="onSale" */
#onSale {color: red}

If you apply the above CSS definition to the following HTML document, you will get two blocks
in red, one from the <p> tag and one from the <pre> tag:
<p>Normal paragraph...</p>
<p id="onSale">Special paragraph...</p>
<pre>Normal pre-formatted text...</pre>
<pre id="onSale">Special pre-formatted text...</pre>

What Is a Contextual Selector?

A contextual selector selects a HTML tag that is nested inside another specified tag. Contextual
selectors are specified with two tags separated with a space like (outer_tag inner_tag). For
example, the following CSS definition uses a contextual selector:
/* set paragraph inside a table to use arial font family */
FORM P {font-family: arial}

If you apply the above CSS definition to the following HTML document, you will get the search
instruction block in "arial" font family:
<form action=search.cgi>
<p>Search instruction...</p>
<input type=submit value=Search>
</form>

<p>Other normal paragraphs...</p>

What Is a Group Selector?

A group selector selects multiple HTML tags. Group selectors are specified with multiple tags
separated with a comma like (tag, tag, tag). For example, the following CSS definition uses a
group selector:
/* set background color to gray for all instances
of three tags: <UL>, <OL>, and <DL> */
UL, OL, DL {background-color: gray}

What Is a Mixed Selector?

A mixed selector is a selector that uses a combination of all other selectors. The following CSS
shows some good examples:
/* selects <p class="quote"> tags */
P.quote {font-style: italic}

/* selects <p class="quote" id="onSale"> tags */


P.quote#onSale {color: red}

/* selects <p class=quote id=onSale> tags inside <table> */


TABLE P.quote#onSale {background-color: red}

/* selects <pre class=quote id=onSale> tags inside <table>


and <pre id="onSale"> tags */
TABLE P.quote#onSale, PRE#onSale {background-color: red}

What Are the Pseudo Classes on <A> Tags?

Pseudo classes are classes used by Web browsers to differentiate statuses of a HTML tag. CSS
definitions can use pseudo classes as selectors with a leading colon like (:visited). There are 3
pseudo classes on the <A> tag:
• A:link - A hyper link that has not been visited.
• A:visited - A hyper link that has been visited before.
• A:active - A hyper link that is currently under the mouse pointer.

If you want to the alter the default style sheets of the browser, you could define something like
this:
/* show un-visited links in blue */
A:link {color: blue}

/* show visited links in yellow */


A:visited {color: yellow}

/* change background color gray when mouse over links */


A:active {background-color: gray}

How To Group CSS Definitions Together?

If you have multiple CSS definitions to be applied to the same HTML tag, you can write them
together delimited with semicolon (;). The following CSS provides you a good example of CSS
definition groups:
pre.code {background-color: #efefef; width: 502px;
margin: 4px; padding: 4px}

The above CSS code is identical to the following CSS code:


pre.code {background-color: #efefef}
pre.code {width: 502px}
pre.code {margin: 4px}
pre.code {padding: 4px}

What Is Style Property Inheritance?

Style property Inheritance is a rule that allows a style property of a child HTML tag to inherit the
same property of the parent HTML tag, if that property is not defined on the child tag. This
inheritance rule is very important because a lots of style properties are defined on the parent tags
and inherited to the child tags. The CSS below shows you how to define most of the font
properties on <P> tags and let <STRONG> and <EM> to inherit them:
<html><head>
<title>CSS Included</title>
<style type="text/css">
BODY {background-color: black}
P {font-family: arial; font-size: 12pt; color: yellow}
STRONG {font-weight: bold}
EM {font-style: italic}
</style>
</head><body>
<p>Welcome to <strong>FYICenter.com</strong>.
You should see this text in <em>yellow</em>
on black background.</p>
</body></html>

As you can, the font family, size and color in <STRONG> and <EM> are inherited from <P>.

What Is CSS Cascading?

CSS cascading is another rule that allows multiple definitions on the same style property of the
same HTML tag instance. The Web browser will use cascading order rules to determine the
winning definition. Multiple definitions of the same property could happen because:
• Multiple CSS files can be attached to a single HTML document.
• CSS selectors can overlap on HTML tag instances.
• External CSS definitions can mixed with CSS definitions included inside HTML Tag
instances.

What Are the CSS Cascading Order Rules?

The most important cascading order rules are:


• A specified CSS definition wins over a default CSS definition in the browser.
• A CSS definition with a contextual selector wins over a CSS definition with a tag selector.
• A CSS definition with a class selector wins over a CSS definition with a contextual selector.
• A CSS definition with an id selector wins over a CSS definition with a class selector.
• A CSS definition included in the HTML tag instance wins over other CSS definitions.
• A later CSS definition wins over an earlier CSS definition.

Note that cascading order rules are applied in the order as listed above.

How To Remove the Top White Space of Your Web Page?

The top white space of your Web page is provided by the browser's default CSS definition of the
margin-top property on the BODY tag. You can remove this white space by adding your own
margin-top definition. Because of the cascading order rules, your definition wins over the default
definition. Here is a CSS example:
<html><head>
<title>CSS Included</title>
<style type="text/css">
BODY {margin-top: 0px}
BODY {background-color: white}
P {font-family: arial; font-size: 12pt; color: black}
</style>
</head><body>
<p>Welcome to FYICenter.com.<br>
This paragraph should appear right below the top edge
of the browser window without any white space.</p>
</body></html>

How To Set Different Text Fonts Inside Tables?

If want to set the text font inside tables different than outside tables, you can use CSS definitions
with contextual selectors. In the CSS example below, Both selectors "TABLE P" and "P" match
those <P> tags inside the table, but the contextual selector "TABLE P" wins the tag selector "P"
based on the cascading order rules. So you will see text inside the table in blue "serif":
<html><head>
<title>CSS Included</title>
<style type="text/css">
/* matches P instances inside TABLE only */
TABLE P {margin-top: 0px; margin-left: 20px;
font-family: serif; font-size: 12pt; color: blue}

/* matches all instances of tag P */


P {font-family: arial; font-size: 14pt; color: black}
</style>
</head><body>
<p>Welcome to FYICenter.com resource listings:<br>
<table>
<tr><td><p>www.w3.org - W3 home page.<p></td></tr>
<tr><td><p>www.php.net - PHP home page.<p></td></tr>
<tr><td><p>www.google.com - Google search.<p></td></tr>
</table>
</body></html>

How To Use Class Selectors to Differentiate Tag Instances?

A more reliable way to identify tag instances is to use the class attributes and class selectors. In the
CSS example below, class="url" is added to <P> tags for Web addresses, with a new CSS
definitions using a class selector "P.url". All three selectors match the Web address text, but the
class selector "P.url" wins because of the cascading order rules. So you will see Web addresses in
bold "sans-serif":
<html><head>
<title>CSS Included</title>
<style type="text/css">
/* matches P instances with class="url" only */
P.url {margin-top: 0px; margin-left: 20px;
font-family: sans-serif; fond-weight: bold}
/* matches P instances inside TABLE only */
TABLE P {margin-top: 0px; margin-left: 40px;
font-family: serif; font-size: 12pt; color: blue}

/* matches all instances of tag P */


P {font-family: arial; font-size: 14pt; color: black}
</style>
</head><body>
<p>Welcome to FYICenter.com resource listings:<br>
<table>
<tr><td><p class="url">www.w3.org</p></td>
<td><p>W3 home page.<p></td></tr>
<tr><td><p class="url">www.php.net</p></td>
<td><p>PHP home page.<p></td></tr>
<tr><td><p class="url">www.google.com</p></td>
<td><p>Google search.<p></td></tr>
</table>
</body></html>

Note that Web address is displayed in blue. Why? Because color is not defined with "P.url", so
"TABLE P" wins the color definition.

How To Use IDs to Override Classes?

Class is a nice way to separate a group of tag instances. To identify one or two special instances,
you can use the ID attributes and ID selectors. In the CSS example below, the ID selector "P#hot"
wins over all other selectors, so the third row in the table will be in red:
<html><head>
<title>CSS Included</title>
<style type="text/css">
/* matches P instances with id="hot" only */
P#hot {color: red}

/* matches P instances with class="url" only */


P.url {margin-top: 0px; margin-left: 20px;
font-family: sans-serif; fond-weight: bold}

/* matches P instances inside TABLE only */


TABLE P {margin-top: 0px; margin-left: 40px;
font-family: serif; font-size: 12pt; color: blue}

/* matches all instances of tag P */


P {font-family: arial; font-size: 14pt; color: black}
</style>
</head><body>
<p>Welcome to FYICenter.com resource listings:<br>
<table>
<tr><td><p class="url">www.w3.org</p></td>
<td><p>W3 home page.<p></td></tr>
<tr><td><p class="url">www.php.net</p></td>
<td><p>PHP home page.<p></td></tr>
<tr><td><p class="url" id="hot">www.google.com</p></td>
<td><p id="hot">Google search.<p></td></tr>
</table>
</body></html>

Software Development Models

Software Development Models - V-Model

Many of the process models currently used can be more generally connected by the
V-model where the “V” describes the graphical arrangement of the individual phases.
The “V” is also a synonym for verification and validation.

The model is very simple and easy to understand. By the ordering of activities in time
sequence and with abstraction levels the connection between development and test
activities becomes clear. Oppositely laying activities complement one another i.e.
serve as a base for test activities. So, for example, the system test is carried out on
the basis of the results specification phase. The coarse view of the model gives the
impressionthat the test activities first start after the implementation. However, in the
description of the individual activities the preparatory work is usually listed. So, for
example, the test plan and test strategy should be worked out immediately after the
definition of the requirements. Nevertheless it can contribute very well to the
structuring of the software development process.

The disadvantage of the model is the coarse division into constructive work (including
the implementation) on the left-hand side of the “V” and the more destructive tasks on
the right-hand side. Here also the impression may develop that, after the
implementation phase, a ready product can be delivered. A planned-in removal of
defects and regression test is not given.

Software Development Models - Waterfall-Model


One of the first models for software development is the so-called waterfall-model. The
individual phases i.e. activities, that were defined here are to be found in nearly all
models proposed since. In this it was set out that each of the activities in the software
development must be completed before the next can begin. A return in the
development process was only possible to an immediate previous phase. In the
waterfall-model, testing directly follows the implementation. By this model it was
suggested that activities for testing could first be started after the implementation.
Preparatory tasks for the testing were not clear. A further disadvantage is that testing,
as the last activity before release, could be relatively easily shortened or omitted
altogether. This, in practice, is unfortunately all too common. In this model, the
expense of the removal of faults and defects found is only recognisable through a
return to the implementation phase.

Software Development Models - W-Model

From the view of testing, all of the models presented previously are deficient in
various ways:
• the test activities first start after the implementation
• the connection between the various test stages and the basis for the test is not clear
• the tight link between test, debug and change tasks during the test phase is not clear
In the following, the W-model is presented. This is based on the general V-model and
the disadvantages previously mentioned are removed.

The test process usually receives too little attention in the models presented and
usually appears as an unattractive task to be carried out after coding. In order to place
testing on an equal footing, a second “V” dedicated to testing is integrated into the
model. Both “V”s together give the “W” of the Wmodel.

Advantages of the W-Model


In the W-model the importance of the tests and the ordering of the individual activities
for testing are clear. Parallel to the development process, in a tighter sense, a further
process - the test process - is carried out. This is not first started after the
development is complete.
The strict division between constructive tasks on the left-hand side and the more
destructive tasks on the right-hand side that exists in the V-model is done away with.
In the W-model it is clear that such a division between tasks is not sensible and that a
closer co-operation between development and testing activities must exist. From the
project outset onwards the testers and the developers are entrusted with tasks and
are seen as an equal-rights partnership. During the test phase, the developer is
responsible for the removal of defects and the correction of the implementation. The
early collaboration and the tight co-operation between the two groups can often in
practice avoid conflict meetings.
The W-model becomes closer to practice when the test expenditure is given 40% and
more. The model clearly emphasises the fact that testing is more than just
construction, execution and evaluation of test cases.

Disadvantages of the W-Model


Models simplify the real facts. In practice there are more relations between the
different parts of a development process. However, there is a need for a simple model
if all people involved in a project are to accept it. This is also a reason why the simple
V-model so frequently used in practice.
The models of software development presented do not clarify the expenditure needed
for resources that need to be assigned to the individual activities. Also in the W-model
it appears that the different activities have an equal requirement for resources (time,
personnel, etc.) In practice this is certainly not the case. In each project the most
important aspects may vary and so therefore the resource allocation is unlikely to be
equal across activities. For highly critical applications the test activities certainly have
higher weighting or at least equal weighting with other activities.

Software Development Models - Spiral-Model

In the spiral-model a cyclical and prototyping view of software development was


shown. Tests were explicitly mentioned (risk analysis, validation of requirements and
of the development) and the test phase was divided into stages. The test activities
included module, integration and acceptance tests. However, in this model the testing
also follows the coding. The exception to this is that the test plan should be
constructed after the design of the system. The spiralmodel also identifies no activities
associated with the removal of defects.

Software Development Models - Extreme Programming


A further model of software development is currently frequently discussed: Extreme
Programming. Taking a simplistic view of the model one could say that extreme
programming does not use specifications. The test cases initially defined are used as
a description of the requirements. These are then used after the implementation to
help check the (sub-) product.
The idea in this excerpt from Extreme Programming can also be found in the W-
model: the left part of the “W” can simply be omitted. This then leaves just the testing
activities as tasks up to the point of implementation. The requirements for the system
to be developed are then extracted from the specified test cases.

How is Software Quality Assurance and Software Configuration Management


integrated into Extreme Programming?
XP defines two levels of testing. The first is unit testing, which must be performed by
the programmers as they work. Each class implemented must have programmer-
developed unit tests, for everything that "could possibly break". These tests are to be
written during coding of the class, preferably right before implementing a given
feature. Tests are run as frequently as possible during development, and all unit tests
in the entire system must be running at 100% before any developer releases his code.
(By release, we mean transferring from his own code space to the code integration
area. This is handled differently, of course, depending on the code management tools
in place.)
The second level of testing is called functional testing. Each feature of the system
(which is defined by something we call a User Story, rather like a Use Case) must
have one or more functional tests that test it. The functional tests are the responsibility
of what we call the "customer", the body responsible for defining the requirements.
The implementation and running of functional tests can be done by the Software QA
group, and in fact this is an ideal way to do it.
Within XP, are there any specification baselines, test baselines, QA Acceptance
testing, and CM Release Management/Change Control?
XP is an inherently incremental process, with software being released to "production"
as frequently as possible. This generally means that programmers release their work
to the common development pool approximately daily, and that means that if a full
system were built on that day, their code would be included in that build. The time
period between full system builds varies depending on the environment: since you
have chosen a particularly difficult integration language (C++), I could imagine that
you would build less frequently. We would recommend, however, that the full system
be integrated as often as possible, at least daily. (This may seem aggressive to you.
We'd have to talk about what is possible in your environment.)
Since XP is incremental, developers are working in short time increments we call
iterations: we recommend about three weeks. Features (user stories) are broken
down to the point of detail that allows a developer and his partner to implement the
stories they're working on in that time period. We like the functional tests for that
iteration to be complete and available no more than half-way through the iteration.
(This usually means that QA is writing tests for the next iteration while this one is
going on.)
All through the iteration, programmers can use QA's functional tests to determine
whether they have met the requirements. (They are also using their own unit tests to
determine whether their individual classes are doing what they should. This is usually
at a much finer level of detail.)
Baselines work this way: when the code for a story is released, all the functional tests
for it should be in place, and will ideally be working. Inevitably some will not,
especially with teams just beginning with XP. One of the quality measures in the
process is the daily graph of performance on functional tests. The general shape of
this graph, over the course of the full system release period, is that of two s-curves:
the upper curve is the total number of tests written, the lower curve is the number
running at 100%. A healthy project of course shows these curves coming together at
100% by the end of the schedule.
The code management software needs of course to reflect the requirements
scheduled for release. This is determined by the "customers", as part of the planning
components we call the commitment schedule (overall plan for a major release) and
the iteration plan (plan for a (three week) iteration). The baseline of what is in the
system tracks what is actually requested by the customers. Development doesn't care
whether this is new functionality or a change to old. They don't care whether a given
user story addresses something that was planned for or not. XP is completely flexible
with regard to change management: development merely estimates how long any
desired feature will take, and works on it when "customer" schedules it into an
iteration. (Dependencies of course exist, but we find that far fewer exist than most
developers believe. Drilling into that subject is beyond the scope of this email.)

When do the all the customer sign-offs occur?


Customer sign-off is continuous. Each iteration has its functional tests. Everyone is
fully up to date on which tests are working and which are not. If tests scores are
trailing implementation by too much, the customer will inevitably schedule more work
against older features that are incorrect (or whose requirements have changed).
When test scores are tracking implementation, the customer knows it and is
comfortable requesting new functionality.
Because the test scores are public and visible, everyone has the same level of
understanding of where quality is. Generally scores are showing a good curve toward
release, and everyone gets increasing comfort as the release date shows up. And, of
course, if tests are not tracking, everyone knows that and the priority of getting things
right naturally increases.
The overall idea of this part of the process is to provide the most rapid feedback
possible to everyone, customers and developers alike. That's why we like all the
functional test run every night. Next morning, if anything has been broken the day
before, everyone knows it and can deal with it effectively (since it was only yesterday's
work that could be the problem). The faster the feedback, the faster development of
quality software can proceed.

What are the Quality Assurance and Software Configuration Management roles
and responsibilities with Extreme Programming?
We prefer for there to be a separate organization for functional testing (probably
exactly like your QA function, with testing results made public very quickly). XP,
however, only says that there must be functional tests: it does not specify
organizationally how they must be done. Experience is that testing is best done by a
separate function - but one that is very tightly integrated with development rather than
at the end of a long pipeline.
Configuration management is also up to the team. It is usually necessary to have one
or more individuals responsible for CM. We have no special rules or practices
addressing how a group would manage the requirement to build multiple systems
from one code base. Our main approach would be: for each release configuration,
there must be corresponding functional tests, and these must be run before that
configuration is released to the (real) customer. We would think that development
would proceed by running kind of a "union" of all the functional tests of all the
configurations.
We'd probably have to talk more specifically about how your specific organization
needs to build configurations to say much more about that.

How can a person write storyboards without having the basics of pinpointing
and developing sound requirements?
Do you use IEEE, SEI, ISO9000 standards as references to acquire the fundamentals
of defining accurate requirements for customers and software engineering users?
How can a person write storyboards without having the basics of pinpointing and
developing sound requirements?

We would agree that those who play the customer role have to know what they want.
We do not, however, recommend any particularly formal requirements writing or
recording mechanism. Instead, what we are working toward (XP is for small teams,
after all) is to have a clear understanding in the heads of customers, developers, and
testers as to what is wanted.

Rather than have, say, an "analyst" sit down with the customer and laboriously
translate his mumblings into something representing what is wanted, and then having
a "designer" take the analysis and build a design, and so on, small teams function
best if the customers and designer/developers talk to one another until they develop a
common vocabulary of what is needed and how it will be done. In XP, we would like to
have a common level of understanding in all heads, each focused on its own
particular interests:
Customers: what's needed, what's the business value, when do we need it?
Developers: what's needed, how can I build this, how can I test my code, how long will
it take?
Testers: what's needed by the customers, how can I test whether developers have
done it?

As you can see, the testers' functional tests are what close the loop, assuring
everyone that what was asked for was what we got. The best way to do XP is with a
separate functional testing organization that is closely integrated into the process. It
would be delightful to have that organization run by an experienced QA manager
trained in XP.

Is Extreme Programming not for Software Quality Engineering and Software


Configuration Management practitioners.
XP is a development discipline that is for customers (in their role as specifiers and
their role as investors and their role as testers and acceptors) and for developers. As
such, the Quality Engineering and Configuration Management roles are critical to the
effort. They have to be assigned and played in a way that is consistent with the
mission of the group, the level of criticality of quality, and so on. We'd need to talk in
detail about your situation to see just where the XP terminology connects with yours,
but your QA functions need to be done in any effective software effort, whether in a
separate organization or not. So XP certainly is for software quality engineering and
software configuration management, as part of a healthy overall process.
That said, XP is aimed at smaller projects (like yours) and it sounds like yours has a
much higher level of QE and CM than is often seen in companies of your size. That
should give you a strong leg up in building quality software, and we should strengthen
your contribution to quality as we bring XP into the team.
The Product Quality Measures

1. How to measures customer satisfaction for the Product?


(Quality ultimately is measured in terms of customer satisfaction.)
Surveyed before product delivery and after product delivery (and on-going on a
periodic basis, using standard questionnaires)
Number of system enhancement requests per year
Number of maintenance fix requests per year
User friendliness: call volume to customer service hotline
User friendliness: training time per new user
Number of product recalls or fix releases (software vendors)
Number of production re-runs (in-house information systems groups)

2. How to measures delivered defect quantities for the Product?


Normalized per function point (or per LOC)
At product delivery (first 3 months or first year of operation)
Ongoing (per year of operation)
By level of severity
By category or cause, e.g.: requirements defect, design defect, code defect,
documentation/on-line help defect, defect introduced by fixes, etc.

3. How to measures responsiveness (turnaround time) to users for the Product?


Turnaround time for defect fixes, by level of severity
Time for minor vs. major enhancements; actual vs. planned elapsed time
4. How to measures Product volatility?
Ratio of maintenance fixes (to repair the system and bring it into compliance with
specifications), vs. enhancement requests (requests by users to enhance or change
functionality)

5. How to measures Defect ratios for the Product?


Defects found after product delivery per function point
Defects found after product delivery per LOC
Pre-delivery defects: annual post-delivery defects
Defects per function point of the system modifications

6. How to measures Defect removal efficiency for the Product?


Number of post-release defects (found by clients in field operation), categorized by
level of severity
Ratio of defects found internally prior to release (via inspections and testing), as a
percentage of all defects
All defects include defects found internally plus externally (by customers) in the first
year after product delivery

7. How to measures Complexity of delivered product


McCabe's cyclomatic complexity counts across the system
Halstead’s measure
Card's design complexity measures
Predicted defects and maintenance costs, based on complexity measures
8. How to measures Test coverage for the Product?
Breadth of functional coverage
Percentage of paths, branches or conditions that were actually tested
Percentage by criticality level: perceived level of risk of paths
The ratio of the number of detected faults to the number of predicted faults.

9. How to measures Cost of defects for the Product?


Business losses per defect that occurs during operation
Business interruption costs; costs of work-arounds
Lost sales and lost goodwill
Litigation costs resulting from defects
Annual maintenance cost (per function point)
Annual operating cost (per function point)
Measurable damage to your boss's career

10. How to measures Costs of quality activities for the Product?


Costs of reviews, inspections and preventive measures
Costs of test planning and preparation
Costs of test execution, defect tracking, version and change control
Costs of diagnostics, debugging and fixing
Costs of tools and tool support
Costs of test case library maintenance
Costs of testing & QA education associated with the product
Costs of monitoring and oversight by the QA organization (if separate from the
development and test organizations)
11. How to measures Re-work for the Product?
Re-work effort (hours, as a percentage of the original coding hours)
Re-worked LOC (source lines of code, as a percentage of the total delivered LOC)
Re-worked software components (as a percentage of the total delivered components)

12. How to measures Reliability for the Product?


Availability (percentage of time a system is available, versus the time the system is
needed to be available)
Mean time between failure (MTBF)
Mean time to repair (MTTR)
Reliability ratio (MTBF / MTTR)
Number of product recalls or fix releases
Number of production re-runs as a ratio of production runs

OPERATING SYSTEM?

What's OPERATING SYSTEM?


An Operating System, or OS, is a software program that enables the computer
hardware to communicate and operate with the computer software. Without a
computer Operating System, a computer would be useless.
What daemon is responsible for tracking events on your system?
syslogd

The syslogd daemon is responsible for tracking system information and saving it to
specified log files.

OPERATING SYSTEM TYPES


As computers have progressed and developed so have the types of operating
systems. Below is a basic list of the different types of operating systems and a few
examples of Operating Systems that fall into each of the categories. Many computer
Operating Systems will fall into more than one of the below categories.

GUI - Short for Graphical User Interface, a GUI Operating System contains graphics
and icons and is commonly navigated by using a computer mouse. See our GUI
dictionary definition for a complete definition. Below are some examples of GUI
Operating Systems.

System 7.x
Windows 98
Windows CE

Multi-user - A multi-user Operating System allows for multiple users to use the same
computer at the same time and/or different times. See our multi-user dictionary
definition for a complete definition for a complete definition. Below are some examples
of multi-user Operating Systems.

Linux
Unix
Windows 2000
Windows XP
Mac OS X

Multiprocessing - An Operating System capable of supporting and utilizing more


than one computer processor. Below are some examples of multiprocessing
Operating Systems.

Linux
Unix
Windows 2000
Windows XP
Mac OS X

Multitasking - An Operating system that is capable of allowing multiple software


processes to run at the same time. Below are some examples of multitasking
Operating Systems.

Unix
Windows 2000
Windows XP
Mac OS X

Multithreading - Operating systems that allow different parts of a software program to


run concurrently. Operating systems that would fall into this category are:

Linux
Unix
Windows 2000
Windows XP
Mac OS X

OPERATING SYSTEM LISTINGS

Operating system Date first released Platform Developer


AIX / AIXL Various IBM
AmigaOS Amiga Commodore
BSD Various BSD
Caldera Linux Various SCO
Corel Linux Various Corel
Debian Linux Various GNU
DUnix Various Digital
DYNIX/ptx Various IBM
HP-UX Various Hewlett Packard
IRIX Various SGI
Kondara Linux Various Kondara
Linux Various Linus Torvald
MAC OS 8 Apple Macintosh Apple
MAC OS 9 Apple Macintosh Apple
MAC OS 10 Apple Macintosh Apple
MAC OS X Apple Macintosh Apple
Mandrake Linux Various Mandrake
MINIX Various MINIX
MS-DOS 1.x IBM / PC Microsoft
MS-DOS 2.x IBM / PC Microsoft
MS-DOS 3.x IBM / PC Microsoft
MS-DOS 4.x IBM / PC Microsoft
MS-DOS 5.x IBM / PC Microsoft
MS-DOS 6.x IBM / PC Microsoft
NEXTSTEP Various Apple
OSF/1 Various OSF
QNX Various QNX
Red Hat Linux Various Red Hat
SCO Various SCO
Slackware Linux Various Slackware
Sun Solaris Various Sun
SuSE Linux Various SuSE
System 1 Apple Macintosh Apple
System 2 Apple Macintosh Apple
System 3 Apple Macintosh Apple
System 4 Apple Macintosh Apple
System 6 Apple Macintosh Apple
System 7 Apple Macintosh Apple
System V Various System V
Tru64 Unix Various Digital
Turbolinux Various Turbolinux
Ultrix Various Ultrix
Unisys Various Unisys
Unix Various Bell labs
UnixWare Various UnixWare
VectorLinux Various VectorLinux
Windows 2000 IBM / PC Microsoft
Windows 2003 IBM / PC Microsoft
Windows 3.X IBM / PC Microsoft
Windows 95 IBM / PC Microsoft
Windows 98 IBM / PC Microsoft
Windows CE PDA Microsoft
Windows ME IBM / PC Microsoft
Windows N IBM / PC Microsoft
Windows Vista IBM / PC Microsoft
Windows XP IBM / PC Microsoft
Xenix Various Microsoft

What are the basic functions of an operating system?


- Operating system controls and coordinates the use of the hardware among the
various applications programs for various uses. Operating system acts as resource
allocator and manager. Since there are many possibly conflicting requests for
resources the operating system must decide which requests are allocated resources
to operating the computer system efficiently and fairly. Also operating system is
control program which controls the user programs to prevent errors and improper use
of the computer. It is especially concerned with the operation and control of I/O
devices.
Why paging is used?
- Paging is solution to external fragmentation problem which is to permit the logical
address space of a process to be noncontiguous, thus allowing a process to be
allocating physical memory wherever the latter is available.

What is virtual memory?


- Virtual memory is hardware technique where the system appears to have more
memory that it actually does. This is done by time-sharing, the physical memory and
storage parts of the memory one disk when they are not actively being used.

What is fragmentation? Different types of fragmentation?


- Fragmentation occurs in a dynamic memory allocation system when many of the
free blocks are too small to satisfy any request. External Fragmentation: External
Fragmentation happens when a dynamic memory allocation algorithm allocates some
memory and a small piece is left over that cannot be effectively used. If too much
external fragmentation occurs, the amount of usable memory is drastically reduced.
Total memory space exists to satisfy a request, but it is not contiguous. Internal
Fragmentation: Internal fragmentation is the space wasted inside of allocated memory
blocks because of restriction on the allowed sizes of allocated blocks. Allocated
memory may be slightly larger than requested memory; this size difference is memory
internal to a partition, but not being used
What is multi tasking, multi programming, multi threading?
- Multi programming: Multiprogramming is the technique of running several programs
at a time using timesharing. It allows a computer to do several things at the same
time. Multiprogramming creates logical parallelism. The concept of multiprogramming
is that the operating system keeps several jobs in memory simultaneously. The
operating system selects a job from the job pool and starts executing a job, when that
job needs to wait for any i/o operations the CPU is switched to another job. So the
main idea here is that the CPU is never idle. Multi tasking: Multitasking is the logical
extension of multiprogramming .The concept of multitasking is quite similar to
multiprogramming but difference is that the switching between jobs occurs so
frequently that the users can interact with each program while it is running. This
concept is also known as time-sharing systems. A time-shared operating system uses
CPU scheduling and multiprogramming to provide each user with a small portion of
time-shared system. Multi threading: An application typically is implemented as a
separate process with several threads of control. In some situations a single
application may be required to perform several similar tasks for example a web server
accepts client requests for web pages, images, sound, and so forth. A busy web
server may have several of clients concurrently accessing it. If the web server ran as
a traditional single-threaded process, it would be able to service only one client at a
time. The amount of time that a client might have to wait for its request to be serviced
could be enormous. So it is efficient to have one process that contains multiple
threads to serve the same purpose. This approach would multithread the web-server
process, the server would create a separate thread that would listen for client
requests when a request was made rather than creating another process it would
create another thread to service the request. To get the advantages like
responsiveness, Resource sharing economy and utilization of multiprocessor
architectures multithreading concept can be used.

What is DRAM? In which form does it store data?


- DRAM is not the best, but it’s cheap, does the job, and is available almost
everywhere you look. DRAM data resides in a cell made of a capacitor and a
transistor. The capacitor tends to lose data unless it’s recharged every couple of
milliseconds, and this recharging tends to slow down the performance of DRAM
compared to speedier RAM types.
What is Dispatcher?
- Dispatcher module gives control of the CPU to the process selected by the short-
term scheduler; this involves: Switching context, Switching to user mode, Jumping to
the proper location in the user program to restart that program, dispatch latency – time
it takes for the dispatcher to stop one process and start another running.

What is Context Switch?


- Switching the CPU to another process requires saving the state of the old process
and loading the saved state for the new process. This task is known as a context
switch. Context-switch time is pure overhead, because the system does no useful
work while switching. Its speed varies from machine to machine, depending on the
memory speed, the number of registers which must be copied, the existed of special
instructions(such as a single instruction to load or store all registers).

What is cache memory?


- Cache memory is random access memory (RAM) that a computer microprocessor
can access more quickly than it can access regular RAM. As the microprocessor
processes data, it looks first in the cache memory and if it finds the data there (from a
previous reading of data), it does not have to do the more time-consuming reading of
data from larger memory.

Das könnte Ihnen auch gefallen