Monday, July 25, 2011

****HOME Page****

Data Warehouse Concepts
This section provides concepts on What is Data Warehouse,Differences between DWH & Data Mart,Data Warehouse Architectures,Fact Table and Types,Dimensional Table,Types of Data Ware House Schema s,Surrogate Key,Slowly Changing Dimensions etc.
####################################################
This section Provides  UNIX Information like Basic Unix Commands,Unix Vi Editor,Shell Scripting,UNIX FAQs ---Commands.
####################################################
Database Testing Stuff
This section provides  What is Database Testing ,How will you do Backend testing(Database testing ),Importance of Database Testing and Back-end testing(Database testing )interview Questions
####################################################
Manual Testing Stuff
This section Provides  Manual Testing Information like, Software Testing process in companies,Defect/Bug Life Cycle,Software Testing Interview Questions For Fresh/Experience Test / QA Engineers.I am providing only questions,if you did R&D for answers,you will get more knowledge
####################################################

Database Testing Stuff

How will you do Backend testing(Database testing ) ?

Basics of Database testing contains the following:

 

    1. How to connect to the database?

    2. Ability to write simple queries to retrieve data and manipulate the data using DML operations.

    3. Functional flow should be very well known!

    4. Good knowledge on table level, column level constraints, ability to understand and execute complex queries related to joins is added advantage.

 

 

Data base testing basically include the following.

1)Data validity testing.

2)Data Integritity testing

3)Performance related to database.

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.

Backend testing(Database testing )interview Questions

What is Data ? And How it is Importance to the Organization
A collection of facts, Pieces of information from which conclusions may be drawn.
Ex: Resumes for managing the human Resources..!

What is Database..?
The Collection of Interrelated Data is called Data Base.
Relational Database Concepts
RDBMS= DBMS +Referential Integrity (It is achieved through Foreign Key).
Referential Integrity :The existence of a value in one dataset is dependent on the existence of the same value in another linked dataset
Ex: Oracle, Sqlserver, Mysql follow RDBMS model.
What is Database Testing ?
Testing an application’s interface with a relational database.
Interface: SQL is nothing but Interface Between RDBMS and application so it lets us to extract, combine, manipulate, and organize data and many more….!

What should we Test in Data Base
Database testing basically include the following.
1)Data validity testing.
2)Data Integrity testing
3)Performance related to data base.
4)Testing of Procedure, triggers and functions.
Data validity testing:
Data validity testing: Testing the correctness and reasonableness of data.
Ex: Account no falling within range, numeric data being all digits, dates having valid months
Note: Data validity errors are more common and most difficult to detect.
Errors in data validity are caused by End user/ by who enters Ex: 13/25/2006
Data Integrity testing:
Date integrity is nothing but enforcing the business rules (facts/data) into database table is called data integrity

Types of Data Integrity :
Entity Integrity: can be achieved through Primary Key and Unique Key Constraints.
Should be tested: whether it is taking duplicate values, Whether it is taking null values.
Domain Integrity: can be achieved through Not null, Default, Check .
Should be tested: Whether it is taking default values even though if we won’t give, checking the values in the column. Ex: age column should take < 60.

Referential Integrity: can be achieved through Foreign Key.
Should be tested : Checking Whether "child" rows are deleted or not when a parent row is deleted from parent table.

For performance related Testing in DB:
Indexes are used to increase the performance.
It is nothing but ordered list of values taken from one or more columns in the tables and organized in to b_tree structure
Need to test: whether we have created index on column for particular table or not.
Why back end testing is so important
A back end is the engine of any client/server system. If the back end malfunctions, it may cause system deadlock, data corruption, data loss and bad performance. Many front ends log on to a single SQL server. A bug in a back end may put serious impact on the whole system. Too many bugs in a back end will cost tremendous resources to find and fix bugs and delay the system developments.
It is very likely that many tests in a front end only hit a small portion of a back end. Many bugs in a back end cannot be easily discovered without direct testing.

Back end testing has several advantages
The back end is no longer a "black box" to testers. We have full control of test coverage and depth. Many bugs can be effectively found and fixed in the early development stage. Take Forecast LRS as an example; the number of bugs in a back end was more than 30% of total number of bugs in the project. When back end bugs are fixed, the system quality is dramatically increased.
Differences between back end testing and front end testing
It is not easier to understand and verify a back end than a front end because a front end usually has friendly and intuitive user interfaces.
A back end has its own objects, such as, tables, stored procedures and triggers. Data integrity and protection is critical. Performance and multi-user support are big issues. Slowness in operation can be vital to the project’s future.
There are no sufficient tools for back end testing. SQL language is mainly a testing tool. MS Access and MS Excel can be used to verify data but they are not perfect for testing. However, there are a large number of test tools available for front end testing.
To be able to do back end testing, a tester must have strong background in SQL server and SQL language. It is relatively difficult to find testers who understand both SQL server and SQL testing. This causes a shortage of back end testers.

Back end testing phases,database testing phases
There are several phases in back end testing. The first step is to acquire design specifications for an SQL server. The second step is test specification design. The next step is to implement the tests in this design with SQL code. The test specification design should contain information concerning component testing (individual pieces of the system), regression testing (previously known bugs), integration testing (several pieces of the system put together), and then the entire system (which will include both front and back ends).

Component testing will be done early in the development cycle. Integration and system tests (including interfaces to front ends and nightly processes) are performed after the component tests pass. Regression testing will be performed continuously throughout the project until it is finished. The back end usually does not have an independent beta test, as it only exercised by the front end during the beta test period. The last step is to deliver users a quality product.
Back end test methodology
Back end test methodology has many things in common with front end testing and API testing. Many test methods can be used for back end testing. Structural testing and functional testing are more effective approaches in back end testing. They are overlapped in some test cases. However, the two methods may discover different bugs. We strongly recommend testers to do both types of testing. There are many other test methods that can be applied to back end testing. We list a few below. For other test methods, please check other test design references.
Structural testing
A back end can be broken down into a finite number of testable pieces based on a back end’s structure. Tests will verify each and every object in a type of structure.
Functional testing
A back end can be broken down into a finite number of testable pieces based on application’s functionality. The test focus is on functionality of input and output but not on the implementation and structure. Different projects may have different ways to break down.

Boundary testing
Many columns have boundary conditions. For example, in a column for percentages, the value cannot be less than zero and cannot be greater than 100%. We should find out these types of boundary conditions and test them.
Stress testing
It involves subjecting a database to heavy loads. For incidence, many users heavily access the same table that has a large number of records. To simulate this situation, we need to start as many machines as possible and run the tests over and over.

Back end testing (Database Testing)

This document is to discuss general test specification issues for SQL server back end testing and

to provide testers a test design guide that includes test methodology.

Most systems, i.e. Forecast LRS, Delta, KENAI, KBATS and so on, that are developed by ITG

have client-server architectures. However, only a few projects have their back end completely tested.

1.  Why back end testing is so important

2.  Characteristics of back end testing

3.  Back end testing phases

4.  Back end test methods

 

 

1. Why back end testing is so important

 

A back end is the engine of any client/server system. If the back end malfunctions, it may cause system deadlock, data corruption, data loss and bad performance. Many front ends log on to a single SQL server. A bug in a back end may put serious impact on the whole system. Too many bugs in a back end will cost tremendous resources to find and fix bugs and delay the system developments.

It is very likely that many tests in a front end only hit a small portion of a back end. Many bugs in

a back end can not be easily discovered without direct testing.

 

Back end testing has several advantages: The back end is no longer a "black box" to testers. We have full control of test coverage and depth. Many bugs can be effectively found and fixed in the early development stage. Take Forecast LRS as an example, the number of bugs in a back end was more than 30% of total number of bugs in the project. When back end bugs are fixed, the system quality is dramatically increased.

2. Differences between back end testing and front end testing

It is not easier to understand and verify a back end than a front end because a front end usually

has friendly and intuitive user interfaces.

 

A back end has its own objects, such as, tables, stored procedures and triggers. Data integrity and protection is critical. Performance and multi-user support are big issues. Slowness in operation can be vital to the project’s future.

 

There are no sufficient tools for back end testing. SQL language is mainly a testing tool. MS Access and MS Excel can be used to verify data but they are not perfect for testing. However, there are a large number of test tools available for front end testing.

 

To be able to do back end testing, a tester must have strong background in SQL server and SQL language. It is relatively difficult to find testers who understand both SQL server and SQL testing. This causes a shortage of back end testers.

 

3. Back end testing phases

 

There are several phases in back end testing. The first step is to acquire design specifications for an SQL server. The second step is test specification design. The next step is to implement the tests in this design with SQL code. The test specification design should contain information concerning component testing (individual pieces of the system), regression testing (previously known bugs), integration testing (several pieces of the system put together), and then the entire system (which will include both front and back ends).

 

Component testing will be done early in the development cycle. Integration and system tests (including interfaces to front ends and nightly processes) are performed after the component tests pass. Regression testing will be performed continuously throughout the project until it is finished. The back end

usually does not have an independent beta test, as it only exercised by the front end during the beta test

period. The last step is to deliver users a quality product.

 

4. Back end test methodolodogy

 

Back end test methodology has many things in common with front end testing and API testing. Many test methods can be used for back end testing. Structural testing and functional testing are more effective approaches in back end testing. They are overlapped in some test cases. However, the two methods may discover different bugs. We strongly recommend testers to do both types of testing.

There are many other test methods that can be applied to back end testing. We list a few below.

For other test methods, please check other test design references.

Structural testing:

A back end can be broken down into a finite number of testable pieces based on a back end’s

structure. Tests will verify each and every object in a type of structure.

Functional testing:

 

A back end can be broken down into a finite number of testable pieces based on application’s functionality. The test focus is on functionality of input and output but not on the implementation and structure. Different projects may have different ways to break down.

Boundary testing:

 

Many columns have boundary conditions. For example, in a column for percentages, the value can not be less than zero and can not be greater than 100%. We should find out these types of boundary conditions and test them.

Stress testing:

 

It involves subjecting a database to heavy loads. For incidence, many users heavily access the same table that has a large number of records. To simulate this situation, we need to start as many machines as possible and run the tests over and over.

What is Database Testing?

What is Database Testing?

 

Over the years, various complex systems have been broken down to specific layers (user interface, business or application layer, data access layer, database layer). To effectively test the application, all the layers need to be tested for what bugs and issues they can introduce into the system. Testing judges what component is responsible for problem and who can fix the problem?

 

In a way, database testing includes testing all components related with database component. A database application has a data access layer which is the code written to manipulate and perform actions on the database. Most database applications are subject to constant change; for instance, business processes are re- engineered, authorization rules are changed, components are replaced by other more powerful components, or optimizations are added in order to achieve better performance for a growing number of users and data. The more complex an application becomes, the more frequently the application and its configuration must be changed. Database Testing is testing at the data access layer, the point at which your application communicates with the database. It is testing the integrity between the database application and its data stores (Stored Procedures, Views, and Tables). The databases and data stores used by the application present a multi-layered system in and of itself. Accessing multiple data stores – has become an integral piece of most applications and it is currently not being tested sufficiently in many organizations.Database testing is a process working with data that's stored in the database.

 

Databasetesting, basically, includes the following:-

1.Data Accuracy & Validity (Field size validation)

2.Data Integrity (Check constraints, insert, delete, update)

3.Database Objects (Stored Procedures, Views, Tables)

4.Data Migration (Import, Export)

5.Data Transaction Consistency and Concurrency (States & Locks)

6.Performance related to database (Indices, number of triggers and procedures)

7.Security related to database - Data Accessing ( unauthorized access)

ETL process and concepts

ETL stands for extraction, transformation and loading. Etl is a process that involves the following tasks:

 

    * extracting data from source operational or archive systems which are the primary source of data for the data warehouse

    * transforming the data - which may involve cleaning, filtering, validating and applying business rules

    * loading the data into a data warehouse or any other database or application that houses data

 

The ETL process is also very often referred to as Data Integration process and ETL tool as a Data Integration platform.

The terms closely related to and managed by ETL processes are: data migration, data management, data cleansing, data synchronization and data consolidation.

 

The main goal of maintaining an ETL process in an organization is to migrate and transform data from the source OLTP systems to feed a data warehouse and form data marts.

 

ETL Tools

 

At present the most popular and widely used ETL tools and applications on the market are:

Ø  IBM Websphere DataStage (Formerly known as Ascential DataStage and Ardent DataStage)

Ø  Informatica PowerCenter

Ø  Oracle Warehouse Builder

Ø  Ab Initio

Ø  Pentaho Data Integration - Kettle Project (open source ETL)

Ø  SAS ETL studio

Ø  Cognos Decisionstream

Ø  Business Objects Data Integrator (BODI)

Ø  Microsoft SQL Server Integration Services (SSIS)