Tuesday, May 11, 2010

Boundary Value Testing

Boundary Value Testing
Every Software Application has a Range, Hence testing a Range for a particular given field is define as boundary value Testing.

BVT can be explained with the help of simple example:
Let us say we have a Sign Up form in our website. In that for we have Age Dropdown field.

As per software Specification Document users less than in 16 years of age and more than in 50 years of age cannot sign up.
Boundary value for Age Field is:



Very Interesting Facts:
How can a Software Tester crack the application?
We all know Applications have many Layers, let us discuss Front Layer and Back Layer
Front Layer: GUI Part
Back Layer: Data base procedures.
Developers usually apply validations at front end and most of the applications are unsecure from Front end.
These Validations are usually developed using Java Script.
We don’t hit Server’s for this, But If product has gone through Black Box Testing then The DB Procedures should have passed through the Tests.
Developers should also Test DB procedures for Boundary value.
Let Us take a case where Java Script was Disabled On The system, and Front end Validation didn’t happened, In that Case Value can be pushed in o Database via NON VALIDATED DB Procedure.
Simple Example;
Procedure Name:
Exe Add_Age(age);
Age should be in the range from 16 to 50.
Tester Should Manually test By executing This Procedure that values less than 16 and more than 50 should not be allowed to enter the database & Proper Err message should be Thrown Back By DB.



Please feel free to give any Examples for Boundary Value Testing in the form of Comments below This Post.

Monday, May 10, 2010

SIP Testing Tools

What is SIP?
It is a Signaling protocol Used for establishing a session in an IP network.
SIP Based Products
Soft phones, SIP Based IP PBX, SIP Servers, Media Servers, Web phones
As the SIP Based Devices are being invented day by day, there is a need of SIP Testing Tools.
Before releasing a product in to the market, Validation is necessary for the success of the product
SIP Testing companies Provide SIP Simulation software’s to ensure that the Products are using SIP Protocol in full conformance to SIP Protocol.
Before Selecting a Testing Software, we need to ensure that the test covers all the Requirements.


Valid8.com, Inc.
http://www.valid8.com/products_sip.html

Empirix
http://www.empirix.com/products/hammer_sip_trunk_tester.asp

RADVISION
http://www.radvision.com/Products/Developer/Testing-and-Analysis-Tools/ProLab-SIP/sip.htm

SIPCENTER
http://www.sipcenter.com/sip.nsf/html/Testing+Measurement

GL Communications Inc.
http://www.gl.com/packetgen.html

SPIRENT
http://www.spirentfederal.com/IP/Applications/Voice_VoIP/Overview/?gclid=COas0uGwyaECFZdL5QodiESodQ

NetIQ
http://www.netiq.com/products/vd/default.asp

Data Migration Testing

Data Migration Need:
We need to know the need of data migration.
Let us say Company had a Product running from Past few years and now Technology in which it was created is old and not is use now a day.
Company has taken a decision to create the same product using new technology from Scratch.
There would be phase where Data Migration will be carried out.
Similarly Data Migration Testing Phase comes in to picture, where QA team has to ensure that all the Data Used in Old Application has been fully migrated to New Application and the Users will be use the same Old Data on New Application.
QA Team Also has to ensure that the Data is fully intact with the Functionality of the Product and Calculations Doesn’t Hamper the Flow.

SOURCE DATABASE –This is a Source database in physical form, from where the data is too be fetched.
This is the database which is connected to old application.

DATA MIGRATION REPOSITORY – Mostly Data migration repository is in the form of XML file. While Data migration process XML scheme is widely used.

TARGET DATABASE – This is new physical database where data is migrated, this database is connected to new application.

We need to know some of the basic Commands used in accessing Database.
SELECT STATEMENT
SELECT * FROM table_name
SELECT column_name(s) FROM table_name

UPDATE STATEMENT
UPDATE table_name SET column1=value, column2=value2, WHERE some_column=some_value

DELETE STATEMENT
DELETE FROM table_name WHERE some_column= some _value



SQL Query to calculate total number of records in a Table
SELECT count(*) FROM table_name
SQL query to calculate total distinct number of records in Table
SELECT DISTINCT count(*) FROM table_name



Some of the Terms used in Data Migration testing:
1. Database Schema – The Schema of the Database in the form of Tables, Fields, Relationships, Views.
2. Data Redundancy – Avoid Unnecessary Duplication of data.
3. Boundary Value Analysis on Data – Change in Data Type Can Cause Boundary value failure on some of the fields.
4. Application Attributes Pre & Post Migration – Data Sheet Pre Migration & Post Migration.
5. Logical Dependency of Data – Any Logical Change can Hamper Front end screens.

Data Migration Resources:
http://www.sas.com/technologies/dw/migration/index.html?gclid=CJ70oZ7txqECFRIeDQodRHb9BA
http://www.vamosa.com/data-migration-seven-steps-to-success-a351?gclid=CO-T_7TtxqECFQINDQod2F6Q_A
http://www.infosolvetech.com/datamigration.html?gclid=CPWwrcrtxqECFRUhDQod0x6UhQ
http://www.listertechnologies.com/reporting/data-migration.html
http://www.rever.eu/rever_new/en/content/data-and-database-migration-platform

Data Migration Steps:
http://www.databaseanswers.org/data_migration/general_migration_approach.htm

Database Testing Framework:
http://www.dbunit.org/intro.html

Sunday, May 9, 2010

Software testing Life Cycle

Software testing Life Cycle

Creating Test Plan Design – At This Stage one has to start Plan the testing, this is considered to be a high level view for testing cycle to be performed during the development of the project.
Defining goals, Test Modules, Test Phases, Resources, Tools, Test Plan Documents, Query Tracking Documents, Responsibilities and Resource Trainings as well as Risks are taken in to Consideration in this Phase.

Analysis / Review Test Plan – After Finalizing test Plan, The document is then reviewed by higher management and Peers. Team has to analysis the Test Strategy written in the document server the purpose of Testing the Product in all respect.
i.e.: White Box Testing, Black Box testing, Functional Testing, integration testing, Database testing, Performance tests, If Applicable then Data migration testing.

Creating Test Case Documents – In this Phase all the possible test case documents are prepared. One has to be sure that the Test case document should cover all the possible functionalities mentioned in SRS document and in no case we are missing any functionality.
Test Case Document should have a Proper format as prescribed by the client or any standard followed by the company.

Software Development with Verification & validation Phase – In this Phase Software / Product Development is carried out, Once the Modules of the Projects are completed, they are released to QA team on the release basis.
QA Now starts with the Verification Check List, before starting any test one has to verify that Development Team has delivered the module with all the functionalities.

Running Test Cycles - Test Cycles are the tests which if run successfully will assure that functionality still remains tight and no functionality is loosely coupled in any case.

Final Release Testing – After Final Release of the Product has been delivered, Regression test scripts are executed many times. Performance Testing is conducted on the final Product. Product Delivered should pass all the Stress and Load Prescribed at the time of Test Plan.

Some of the Performance Testing Tools:
http://loadstorm.com/
http://www.webmetrics.com/
http://www.loadtestingtool.com/
http://www.webperformanceinc.com/
http://www.opensourcetesting.org/performance.php


Testing On Production Environment – After Certifying the Product is free from Defects & Bugs now the product is deployed on Production Servers. QA Team Still has to work on Production. One round for complete Testing is still to be conducted. SANITY of the product is conducted. Now The Product is ready for the actual Users.
In This span to time Documents of the Product are created and full knowledge Transfer is given to the Production Support People.

Thursday, May 6, 2010

SIP Session Initiation protocol

SIP Session Initiation protocol

It is a Signaling protocol Used for establishing a session in a IP network.

To know how SIP Works, we need to know the following Terms:- INVITE Invite a User to a Call
- ACK Used for Response for Invite user
- BYE Used for Terminating a connection between or declining a call.
- CANCLE Terminates a Call from a user
- OPTIONS Solicits information about server’s capabilities
- REGISTER Register a Users Current Location
- INFO Used for MID Session Signaling

What are SIP Responses?- 1XX Used for Information example: 100 Trying , 180 is Ringing
- 2XX used for Successful example: 200 OK, 202 Accepted
- 3XX Redirection Example: 302 Moved temporary
- 4XX Request Failure Example: 404 Not Found , 482 Loop Detected
- 5XX Server Failure Example: 501 Not Implemented
- 6XX Global Failure Example: 603 Declined

Some of The example for SIP End Devices:- Soft Phones
- Hand phones
- Web Phones
- Messaging Clients
- PSTN Gateways
- Media Servers

SIP Can Function with some of the Following Protocols- SOAP
- HTTP
- XML
- VXML
- WSDL
- UDDI
- SDP

IVR testing Essentials

IVR testing Essentials

While Testing as IVR system, we need to keep many things in Mind.
What Is INBOUND IVR Testing?
What is OUTBOUND IVR Test?
VIOP Basic Concepts
Text To Speech Engines & Speech To text Engines
INBOUND test on IVR can be performed by the software which can receive multiple calls coming from out real world and test all the Processes which a Happy Path flow can have.
Happy Path is a Simple true path with no negative scenario.
Example: Caller calls in to Bank and enters Account number and PIN, if successful, now selects options given by Auto attendant. Let us say User Selects an option to know what is the Amount in his current account.
The test case should be that validation should be done for the account number and the Amount present in the Account.
In OUTBOUND Test the software can be used to call the test audience and can play the required Prompts.

Companies involved in IVR Testing:
http://www.empirix.com/
http://www.ptg-global.com/news/current-news/new-ptg-software-the-ptg-ivr-simulator.cfm
http://www.voxeo.com/library/ivr.jsp
http://www.syntellect.com/pages/information/landing/trust_request.aspx?_kk=ivr%20services&_kt=4635e57e-9c5e-437f-a0cb-b30e2d20d357

Sunday, May 2, 2010

Open Source Software Testing Tools

Grinder
Source: http://grinder.sourceforge.net/
Grinder is basically a load testing frame work in java.
Key features
• Generic Approach Load test anything that has a Java API. This includes common cases such as HTTP web servers, SOAP and REST web services, and application servers (CORBA, RMI, JMS, EJBs), as well as custom protocols.
• Flexible Scripting Tests are written in the powerful Jython scripting language.
• Distributed Framework A graphical console allows multiple load injectors to be monitored and controlled, and provides centralised script editing and distribution.
• Mature HTTP Support Automatic management of client connections and cookies. SSL. Proxy aware. Connection throttling. Sophisticated record and replay of the interaction between a browser and a web site.


DBMonster
Source: http://dbmonster.kernelpanic.pl/
dbMonster is a tool which helps database application developers with tuning the structure of the database, tuning the usage of indexes, and testing the application performance under heavy database load. dbMonster generates as much random test data as you wish and puts it into SQL database. It provides a very pluggable interface and is trivial to use. dbMonster is written in java.

WWW:Mechanise
Source: http://search.cpan.org/dist/WWW-Mechanize/lib/WWW/Mechanize.pm

WWW::Mechanize, or Mech for short, helps you automate interaction with a website. It supports performing a sequence of page fetches including following links and submitting forms. Each fetched page is parsed and its links and forms are extracted. A link or a form can be selected, form fields can be filled and the next page can be fetched. Mech also stores a history of the URLs you've visited, which can be queried and revisited
HTTPerf



JCrawler
Source: http://jcrawler.sourceforge.net/

JCrawler is an open-source (under the CPL) Stress-Testing Tool for web-applications. It comes with the crawling/exploratory feature. You can give JCrawler a set of starting URLs and it will begin crawling from that point onwards, going through any URLs it can find on its way and generating load on the web application. The load parameters (hits/sec) are configurable