Showing posts with label Software Testing. Show all posts
Showing posts with label Software Testing. Show all posts

Friday, June 18, 2010

Security Testing

Security Testing
Type of testing which validates that system doesn’t has any loophole for any unauthorized access to the data or part of the system.
Every Software Product Should Undergo Security Test. It is observed while software development process. Developers follow shortcuts to save time and these speedy coding processes leave the product open data theft.

Security testing on web Applications.
Securing a Web Application can be an all together different job. If data in source is highly confidential and it needs to be protected from unauthorized access then application needs to go through high Security Test.
Most of the web applications are equipped with Roll/Authorization functionality.

Let Us say we have a Huge Website with Many People Using this Website.
Users Of the website may Vary with their Profile i.e. There may Be Customers, Sellers, Re-sellers, Administrators, Inventory Managers, Advertisers and many More.

It’s Not the Good Practice to give all users with different website & Different Login.
The Whole Product is developed with different sections, now we introduce Role which has different authorizations to sections.

Let Us say we have a Role with a name customer, This Role will have authorizations t the section or pages which are developed for customer use.
For Seller we will have Different Role, which will have authorizations to seller pages on the website.

Whenever the user logs in to the system with his/her credentials only those parts of the system are accessible to him which is allocated to his role.
Tester has to ensure that Roll by Authorization matrix should be validated for every combination.
Tester Should Deliver a Test Matrix to the client for validating that Role / Authorization functionality is working fine on the system.

Most Common Terms used in Security Testing

Login Testing
Testing user login credentials is a security testing scenario. User should be successfully able to login to the application using their password.
Need to check system lock’s after 3 or 5 incorrect login requests.
Proper Message should be displayed to users in case of any access or login related Problems occur.
If anyone attribute, Username or Password is wrong. System should not say please check your username or please check your password. Either it should say please check your login credentials. This helps is reducing brute force attack. Some of the hackers use crawling software for logging in to website using artificial intelligence.

Password Encryption & Decryption
Login Page gets open on Client side. User enters username & Password. Now when user clicks on Login Button, Both the credentials are sent to server via post or any other method.
This means that that your user name and Password travel over internet and hit to the required server.
We suggest that whenever the page gets loaded, we should also load some encryption scripts with that page.
When Login Button is clicked, before the credentials start traveling over internet, they should get encrypted and as soon as they reach the server, decryption script is waiting over there for conversion.
This Mechanism will act as Prevention to many Attacks.


Cookie Testing
Now we should know what a Cookie is?
Cookie’s can be considered as Register which can store information. Cookies are present on your computer itself. Cookies can save your passwords. Let us say you use visit cybercafé and checked your email.
Mostly we have an option on standard websites with a check Box.
-Stay Logged on
-Keep me signed in
-Remember password

Now if you check this, the cookie will be saved on that PC containing your username and password and the next time you login, you are not asked username and password.
Initially we are happy because we have skipped one step, but no one knows that this is a threat to your privacy.

In case next customer uses the same computer and visits the same site which you were using he will be logged in to the system using your login credentials and can easily see your data.

Let’s Come Back To Testing:
In respect to Cookie Testing, Tester should confirm that cookie should be working fine.

Session Testing
Once you login to the system, a session is established. Every session has a unique session id. Every site has some session expiry time set. This Time starts as user’s stops any activity after logging in to application.
This Time can vary from 5 minutes to number of hours, depending upon the website requirement.
If User comes on the system after the session time has been expired, any link clicked on that website, the user should be directed on login page.
Testers should verify that Session Expiry Time is working as per the Requirement. Session Testing should be implemented on different browsers also.


URL Manipulation
While testing web application, this is the most important part of security testing.
Most Of the software developers miss this part while coding, I have see many projects in the past which were developed using many complicated frameworks and they failed when we stared URL manipulation.
This can be explained with the help of below Example.
Let us say we have a user “Jones” who is allowed to see only some of the web pages.
A.jsp
B.jsp
c.jsp

Another user “Pal” who we allowed to see other web pages
x.jsp
y.jsp
z.jsp

Now how will you conduct URL Manipulation Testing?
Login to the application using Username: Jones
Manually Change or manipulate the URL
Say:
http://example.com/main/A.jsp?dir=Language%20Training&content=Spanish
to
http://example.com/main/X.jsp?dir=Language%20Training&content=Spanish
And Press Enter.

What should we get?
We should get a message that “You are not authorized to access This Page”
Now if the page is getting opened using Jones as a Logged in User, then this is a security Breach.

SQL Injection Attack

We all know that there is much variable information which is user dependent.
This information is required from user end to fetch records or data from the database.
The information is gathered in the form of forms as well as Query string values in url’s.

These values are sometimes directly used in the SQL statement.
Some Hackers use special character like single quotes. They add special characters with the values. This is called injection, now it depends upon the database server, how it behaves when this sql command is triggered.

To Prevent Application from SQL Injection Attack, Tester needs to check what information is needed to Fetch Data from the Application.

Values Coming from Forms, from URL’s, Web Services should be checked before giving release.

Spoofing
There are many Types of Spoofing techniques used by hackers to gather personal information.
Content Spoofing, Email Spoofing, Phishing, Caller ID Spoofing, IP Spoofing
As Testing Point of view, we don’t have any mechanism to prevent Product from Spoofing.
Although this is not consider to be a security breach, because we are not touching the Real Application but then also we are losing information.

Open ID
Open ID is A Project where one single Username and be used on many sites.
Most Of The websites are now using Open ID to login their users.
The Big Disadvantage of Having Open ID is that, If This ID is hacked, then Hacker will be able to log into many Website’s Using Your Identity.


We have a New Term knows as “Web Application Penetration Testing”
This is said to be the combination of above Techniques discusses packed in one single bundle.
Companies Have Developed Set of tools which can be configured to test Web Application, The results can help to create much Better Applications.



Security Testing Tools
http://www.powerfuzzer.com/
http://www.owasp.org/
http://www.tenablesecurity.com/solutions/
http://www.cerias.purdue.edu/


Security Testing Certification
http://www.comptia.org/certifications.aspx
http://www.technologytransfer.eu/event/902/Q/SA_(Qualified_Security_Analyst)_Penetration_Testing_Certification.html
http://www.coresecurity.com/content/Training-Certification-and-Support
http://www.rsa.com/node.aspx?id=1261

Monday, May 24, 2010

What Is Regression Testing?

What Is Regression Testing?
Regression testing is carried out to verify all fixes are working fine which were introduces during development and no functionality of the application is hampered.

Advantages of Regression testing
Assures all the features are working fine.
Assures no side affect has occurred due to new code or fix
Assures there is no broken link available on site.


Disadvantages of Regression testing
Automation Regression scripts needs skilled Software Testers
Budget of the Product increases
With new functionality added, number of automation scripts also increases and hence needs hi maintenance.
Production Support Job increases and sometimes costs as overhead for the company.



Regression Testing for Web Applications
Whenever a New feature is implements on the website or a bug is fixed, we need to assure that the others features are at their place, hence we need to regression testing on web application, which assures us that everything is working fine.
We have regression testing tool offered by http://www.regressiontester.com/


Regression Bugs
The bugs which are found after executing regression tests are called as regression bugs.
Usually these are the defects or bugs which take birth while adding new feature or during a fix.
Some Developers also call these bugs as side effect bugs, because they are born due to change in some line of code.


Regression Testing Tools, Reporting Tools
http://www.boost.org/doc/libs/1_43_0/tools/regression/doc/index.html


Regression Testing Tool
http://www.automatedqa.com/products/testcomplete/
http://www.mmsindia.com/JEvolve.html
http://www.symbioware.com/



Regression testing Frameworks, Pearl, PHP, Java
http://www.cloudtesting.com/
http://www.nunit.org/
http://agilewebdevelopment.com/plugins/webrat

PHP
http://www.lastcraft.com/simple_test.php

PERL
http://mechanize.rubyforge.org/mechanize/

JAVA
http://watij.com/

RUBY
http://cukes.info/




Regression Testing Interview Questions
• What Is Regression Testing?
• What are The Levels of Regression testing?
• What Is the Difference Between Re-Testing & Regression Testing?
• How Many Times Regression Testing is done during software development process?
• Give Example of Regression Testing?
• Have you used any Tool for Regression Testing?

Thursday, May 13, 2010

Mobile Phone testing Resources

Mobile Phone Testing
We have a Huge Mobile Phone Market. You can’t even imagine how many tests a Mobile Phone Passes Before coming in to the Market.
Mobile Phone testing is not restricted to voice, signal or Battery.
We have a Huge List of Applications which has to be passed before Certifying a Mobile Phone.
Some of the Applications:
Basic Mobile Applications:
Phone Book, Calculator, Media Player, Camera Resolution, Folder Structure, Tools, FM / Radio, Gaming, Messaging Etc.
Integrated Applications
Blue Tooth, Infrared, Internet, Camera, Micro USB, Wi-Fi, WLAN, Head Phone, Screen, Video Calling etc.

We have a Wide Range of Applications Being Developed for Mobile Phone Industry.
So there is a Huge Need of Mobile Phone Testing Companies. Usually Mobile Phone Manufacturing companies prefer 3rd Party Testing Companies to do this.
It is considered that almost 60 % of the Total Cost spent in Mobile Phone testing.
This is a Device which always considered being available with a Person for more than 20 Hrs a Day. So companies are taking no chance to remain out of this market, they just want the product to be heavily loaded with all the applications and work as much as efficient they can.

Mobile Phone Testing companies need to be ensuring that the Phone which is released has no defect or a bug, because the stake of the company is on this.
Now a day’s Lots of money is being spent on Mobile Game Testing.
Gaming Applications: Downloadable Games, Embed Games, JAVA Games, etc are Vigorously Tested by Mobile Phone Testers.




Mobile Phone testing Resources

Perfecto Mobile Ltd.
http://www.perfectomobile.com/

NTI
http://www.nti-audio.com/Home/Products/ProductionTester/MobilePhone/tabid/86/Default.aspx

e2Campus
http://www.e2campus.com/test_your_phone.htm

Mobiquest Solutions Pte Ltd.
http://www.mobiletestcentre.com/

Wednesday, May 12, 2010

Joke on Software Testing

Joke on Software Testing

Once Asked in an Interview, What Is the Difference Between Defect and a Bug?

Candidate: Can I Explain this with an example.

Employer: Yes

Candidate: Once a guy went to a tea shop and ordered one cup of tea and when the tea came he saw a fly in his cup.
Now this is a BUG.



Employer: Laughed and said my dear now you tell me what is a defect?













Candidate: Once a Guy went to a tea shop and ordered a tea and when a tea came he tasted and said there is less sugar in the tea.
Now this is a defect!



Employer: Laughed Hahahaha Haaa and said Can You Elaborate what you want to say?

Candidate: Yes Sir!
You can manage to drink a cup of tea with less or more sugar but you can’t drink a cup of tea with a bug.

I.e.:

Product can’t be delivered with a Live Bug.
Quality of the Product can be compromised with a defect.

Please feel Free to give your comments below.

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

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

Skills Needed For Testing

Testing Skills

Testing Skills matter the most in the success of the software project.
Getting a right combination of domain knowledge & Software testing skills is a rare combination.
But if anybody achieves this, Project quality increases exponential.

Domain Knowledge and an industry experience matters the most, numbers of years you have given to the industry will get you inn’s & out’s of the product to be developed.

Below are the skills with the domain

Banking Industry:
Software Tester with Banking Background
Testing skills (manual Testing, Functional Testing, Qtp, Load runner)

Telecom Industry
Software tester with telecom domain knowledge (IVR, Mobile Communication, GSM, SMS, unified Communication Solutions)
Testing Skills (Manual testing, Automation testing, QTP, Load Runner, Hammer, Network Testing Tools)

Bioinformatics
Software testers with a medical Background can easily enter in this field.
Testing Skills (Manual Testing, Automation, High Functional Knowledge)

Animation Industry
Software Testers with a Multimedia and Gaming background can enter in this field
Testing Skills (Manual Testing, High Analytical Skills, Puzzle solving skills, QTP, Load Runner)

In spite of the entire above skills software tester should know about Management tools used in this industry.
One should be experienced with Bug logging tools like Bugzilla, PHP Bug Tracker.
Test Tracking tools TestPlan etc.