Tuesday, 6 October 2015

Web testing checklist that a website should meet



Software Application Testing is a continuous ongoing effort. Testing needs to be performed through various dimensions of quality each pertaining to particular aspect in varying degrees. Let us discuss the parameters that should be met by a website before it is launched. 





The different aspects of web testing checklist that needs to be met by a website can be listed as follows:

1) Functionality Testing: This process tests all the links in the web pages, databases connection and forms that have been used for providing or acquiring information from the user.  The following parameters are tested for in this category.

-      Redirection URL Check: This includes checking
-      all the outgoing hyperlinks from all the pages in the website under test.
-      all internal links.
-      anchor links.
-      email submission links.
-      orphan pages.
-      broken links.

- Form Check: Forms are used to submit personal to transactional details. Hence, it is an integral part of the website to capture leads and complete transactions. Form Checking involves
-      Form Field Validations.
-      Default values of the fields.
-      Check for wrong inputs, ex: filling in characters where numeric input needs to be provided.
-      Options to create/delete/edit and view a form.

- Cookies Testing- Cookies are small files in user machines which are used to maintain sessions. The application needs to be tested by-
-      Enabling and disabling the cookies in browser options.
-      Checking Encrypted cookies before writing them in the user system.
-      Checking login sessions and user statistics after the end of each session.
-      Checking the effect on application security by deleting the cookies.

- HTML/CSS Validation- This check is very important for Search Engine Optimization.
-      Check for HTML syntax errors.
-      Check if the site can be crawled by search engines.

-Data Testing
-      Checking data integrity and consistency while adding/editing/deleting the forms or its elements.
-      Check all database related functionality.
-      Check the execution of database queries.
-      Check for correct data retrieval and data updation.

2) Usability Testing: It is a user centric testing which evaluates the application based on the process flow, navigation, layout speed and content.  The main parameters tested in this process is listed as follows:

-Test for Navigation – Navigation refers to the different control buttons, options and links on the pages that navigate to different pages. Navigation options should be
-      Easy to use.
-      Clarified through easy instructions.
-      Main menu should be consistent and globally available to all the pages.
-Content Checking
-      Check for spelling and grammatical errors. Spelling mistakes are a huge turn off for the users.
-      Content should be logical, simple and meaningful.
-      Images should be relevant to the context of the website and balance the text content.
-      If printing options are provided then the font size, alignment and print layout should be checked. 

- Sitemap Validation – A sitemap is a very helpful page.
-      It should feature all the links in the website.
-      It should feature all the links in a proper tree structure.
-      The links featured in this page should be checked.

3) Interface Testing: Browser, Application and Database, they form the three interfaces of a web application.  Check
- If all the errors returned by any interface are handled properly.
- Check for the interruptions in transactions and browser connections.

 4) Compatibility Testing: One of the most influencing aspect of a website is its compatibility with multiple browsers and its versions. Check for website compatibility in the following respect:
- Browser Compatibility:
- The website layout and coding should be uniformly displayed across all the browsers.
- The functionality of the JQuery and Ajax calls should be ensured on multiple browsers and their versions.

- Operating System Compatibility- Different components may have been implemented using elements and processes that may not be compatible with all the different versions of the operating systems. This calls for cross OS compatibility testing.

-Mobile Responsiveness: Websites are now accessed by mobile devices more than desktop PCs. Hence, website responsiveness, content layout, navigations and functionality should be compatible with the smart devices as well.
                  
5) Performance Testing: This process validates the responsiveness, speed, scalability and stability of a website. This process
- Measures the response times, throughput and the resource utilization by the web application.
- Validates the performance characteristics when subjected from normal to peak load conditions.
- Validates the performance of the website when subject to workload over an extended period of time.
     - Estimates the conditions under which the website is bound to fail.
     - Determines the number of users and transactions that can be supported by the application.

6) Security Testing checks the following cases

- Calling internal links directly through the browser. Ideally they should not be displayed.
- Submit the forms with invalid inputs.
- Access to the web files and directories without download options.
- CAPTCHA Testing.
- All activities log in the log file.

Conclusion:

A low quality website is not preferred by online users. Poor quality, broken links, faulty images and extended load times result into loss of customers, corporate image and  sales revenue. Therefore, quality assurance of websites needs to be performed comprehensively. With the emergence of automated testing, we now have better potential to meet the quality and reliability challenges in website testing. There are many free and paid automated testing tools that can be used for comprehensive testing.

Thursday, 20 August 2015

Understanding Functional Testing Tools



Introduction: The Basic Architecture of Functional Testing Tool

The basic architecture of Functional Testing tool is described below. Some tools provide less and some provide more than that mentioned here.








Test Script Definition: In this process, an interaction with the application to be tested is recorded. The record defines a test script as output. This test script can be edited using the integrated script editor.

Parameterization of Data Value: For data-driven tests, the functional tool provides data access capabilities that help to select the data source accurately. Control points can be defined on the graphical objects or on data with the tool. This helps to analyze the test results.

Automated Test Execution: The test cases are executed reproducing the recorded user interactions. Data driven tests are executed based on the data access provided during the test definition phase.

Reports on Test Result: When the test execution is finished, the test results are compared to the reference points based on the control points set during test definition. Accurate results can be obtained from each comparison.

Functional Testing – Tools

-          SoapUI: It is an open source cross platform functional testing tool that creates and executes automated functional, regression, compliance and load tests. All the standard protocols are supported by SoapUI.

-          WatiN: It is a testing tool that makes testing possible for web applications in .Net framework.

-           HTTP Recorder: It is a browser independent testing tool. It allows us to record functional interactions with websites and produce scripts for automated playback.

-          Watir: It automates web browsers similar to user interactions. It uses open source Ruby Library files.

-          Canoo Web Test: It is also an open source testing tool for automated testing of web applications.

-          WebInject: It is a free automated testing tool which enables testing of web applications and web services. It can be used on HTTP interfaces to test individual system components.

-          Solex: Built in as a plugin for Eclipse IDE, it is a free open source testing tool for web applications.

-          Selenium: It is used to automate web applications for testing purposes. Selenium WebDriver can be used to create browser based tests for regression testing. Selenium IDE can be used to create bug reproduction scripts. It can also be used to create scripts for exploratory testing.

-          HP UFT – HP's Unified Functional Testing is an automated functional testing tool. It integrates the main features of Quick Test Pro(QTP), WinRunner and HP Service Test. HP UFT carries out automated execution of functional tests and thus helps in increasing the speed and cost effectiveness of the software development and delivery. UFT is very helpful for performing Regression tests.

-          HP LeanFT: The agile methodology of software development has called for introduction of test processes early into the software development life cycle. HP's LeanFT, released on 2nd June 2015, is an automated functional testing tool that provides a robust solution to this approach of continuous testing and integration. It enables coding in familiar scripting languages. It combines the best features by morphing Selenium with the key functionalities in UFT.

Conclusion
            Without test tools and test automations, functional testing will need to be accomplished manually by users logging in and performing the tasks in a business process. To some extent, this seems to be effective. But for an extensive software application it is not an economical solution. Using automation tools for functional testing, test scripts can be recorded and used repeatedly. Thus Functional Testing tools help to eliminate the need for manual tests hence reducing the risk of errors.

Thursday, 30 July 2015

Functional Testing - Basic Facts



Functional testing is also referred to as Quality Assurance (QA) of the application or software. It is a process of testing the system to ensure that it performs as per the functionality specified in the System Requirement Specification.

-          It verifies that the system functions as per the client requirements which were specified in the System Requirement Specification document.
-          It tests the usability of the system and ensures that all the navigational functions are working correctly.
-          It checks for exception handling and proper error message display.




Process of Testing

This testing generally involves the following steps:

·         Identifying the software requirements
·         Preparing a combination of test data for testing
·         Calculating the output to be generated with each input set
·         Running the test case and compare the results generated with the expected results

Types  

The different types of functional Testing are as follows:

  • Unit Test: It is the process of testing each unit of code to ensure that each implementation is functionally correct. When software requirements change or get modified, these tests also get modified.

  • Smoke Test: It is a series of tests that are conducted before the start of detailed testing. Smoke testing verifies the high level functional inconsistencies of the application.

  • Integration Test: This ensures that the software application is compatible with other applications. Here, testing goals require running those tests which will need communication to be established. In case the system under consideration is a stand-alone system, then Integration test may be overlooked.

  • White Box Test: This testing is based on the inter structure of the system. It can also be referred to as Code Based Testing as it
                       -  Verifies the security holes in the code
                       -  Verifies the incomplete paths in the code
                       -  Verifies the flow of data as in requirement specification document.
White box testing verifies 100% of the code in the software application.

  • Black Box Test:  Here the functionality of the system is tested with a combination of appropriate and inappropriate data and the output is compared with the required results. This test only focuses on the input given and the output generated without knowing the internal code implementation.  If any error or discrepancy as compared to the desired result is generated, then it is fixed and the system is tested again.

  • Regression Test: This testing ensures that code or functionality modification in one part of the system has not affected other functionality of the system. Regression testing is repetitive and ensures that the software quality is maintained.

  • Acceptance Test: This kind of testing evaluates the usability of the system from the end user’s perspective. These test cases are developed from user requirements and require to be defined in the System Development Life Cycle. This helps the developers to understand what kind of system they are developing.

  • Localization Testing: In localized testing, the application is tested for its performance and efficiency in the local market or a comparatively smaller geographical area than that considered for globalized application.

  • Globalization Testing: Globalized testing, also known as internationalized testing ensures that an application is functional in diverse locations or in a larger geographical area. . This test validates whether the application can be used all over the world and checks if all kinds of language characters are supported.

Test Tools

There are several tools available to perform functional testing.  JUnit is available for Java applications. SoapUI & Watir is used to test web services.