Thursday, 13 October 2016

Key approaches to meet UX Design



A lot of thought goes into designing a product. After the designing phase the product goes into the development phase, where individual components or units are developed and tested for desired outcomes. However, more often than not the product is only checked from the perspective of developers and not the end users. In such cases, even though the products or applications come out looking fabulous, they might possess inherent flaws such as a poor user interface, lack of accessibility, delay in loading, slow scrolling, an unimaginative layout, and erroneous content etc. 






These flaws when faced by the customers end up as poor user experience, the reason being inadequate Usability Testing. Besides, since there are many competitors of the product(s) in the market, end users will not think twice before latching onto some other. This not only reduces the viability of the product, but also dents the brand image of the company producing it. Usability testing plays a crucial role in estimating consumer expectations. 

To avoid getting into such a situation in the first place, companies need to perform   usability testing in UX design for the product or application. Usability testing involves testing of the product by its end users or customers. While testing, the behaviour of users using the product is keenly observed by testers and key areas where some difficulties are faced get noted down. The areas of concern are addressed later before releasing the product into the market thus increasing its market viability. 

UX design or simply user experience design (also UX, UXD, XD, or UED) enables applications or products to work better for the end user. It includes designing a better user interface, incorporating cool ergonomics and delivering faster responsiveness such that the end user does not find any difficulty, while navigating or operating the product.

Best practices for usability testing

What is to be tested: The first step is to identify the application or a particular feature of the same that is to be tested. In a majority of cases, the whole application is tested for usability, accessibility and responsiveness. 

Who should be tested: The second step is to identify specific users who are going to use the product for all practical purposes. The users should be chosen carefully as a wrong choice of users would be costly and time consuming – for the testers as well as users. For example, a medical app meant for doctors should not have laymen as users, but only medical professionals. 

How many should be tested: A small group of end users should be asked to run the application, as it will be easier to observe them navigate and operate. They should be asked to ‘think out loud’ while navigating, so that the testers observing them can make informed choices about glitches. A large group will be unwieldy. 

Who should watch usability testing: It is important to involve all stakeholders during testing, as the difficulties faced by users will be visible to all. Unless the difficulties are observed in person, there are chances of them being lost in transmission or translation between various stakeholders.

Thursday, 6 October 2016

5 Smart approaches to functional testing in a cloud environment.



Performing Functional Testing in Cloud environment is not too different from that in regular test environments. However, for cloud environments, the test cases need to be rewritten in order to keep them Cloud ready. Unless new features have been added as a part of the cloud hosting strategy, there is no difference in business process validation.



Functional Testing is generally performed to ensure that the services provided by the software are consistent with its specifications. Functional Testing can be performed through two perspectives – 

-      Requirement based testing: In this approach the requirements are first prioritized and then the tests are prioritized accordingly. This is done to ensure that the most critical tests are covered in the process. 

-      Business process based testing: In this approach, the testing scenarios involved in the day to day business of the system are described. 

Functional Testing in a Cloud environment involves testing of all the features and functions of the system, which includes both the hardware and the software of the system. It is generally conducted on a completely integrated software platform in order to check its compliance with the requirements. In the cloud environment, the process of verification is carried out against a system of specifications and requirements on a Cloud instead of an on-premise software testing platform. Functional Testing may take various forms in a Cloud environment.

-      System Testing: This testing is performed in order to test the behavior of the system within its own boundaries. It is critical to prove that the system functions as it has been designed, inputs and outputs are as expected and the overall quality is ensured.

-      Integration Testing: Integration testing verifies that the Cloud environment will not be detrimental to the existing system and will successfully work with the current infrastructure and the environment.

-      User Acceptance Testing: This testing is performed in order to ensure that the Cloud environment supports the business requirements and the user accepts the Cloud solution. 

-      Interoperability Testing: Most of the applications are now cross-platforms and must meet business critical requirements such as data exchanges, etc. Through interoperability testing, testers try to verify that the programs work with equal efficiency on a variety of platforms.

-      System Verification Testing: It is more of a technical testing, which includes code audits, documentation revisions and the testing of hardware as well as software components under normal and stressful conditions.  

The difference between an end-to-end testing and system integration testing is very clear in a Cloud environment. A complete end-to-end testing mainly focuses on testing combinations of business processes and systems by recreating real business scenarios. The following potential scenarios need to be validated through the testing processes.

-      Data Inconsistency
-      Data misinterpretation due to human dependencies
-      Consistency of database schema

Conclusion

Testing and Cloud are both large domains in their own respect. Functional Testing with respect to the cloud environment involves both traditional and new methods. For software applications provided on clouds, it is important to perform functional as well as non-functional testing. Software applications hosted on the Cloud  pose additional testing challenges, which can get  resolved with  a systematic and comprehensive approach towards test planning.

Friday, 22 July 2016

Best practices for Functional Testing.



Functional Testing is a type of Quality Assurance where basic features of the Mobile or Web Application are tested. It verifies how the hardware, software , Web application or internal applications executes its intended features and functions. It validates user commands, business processes, data manipulation, search functions, integrations and user screens. Such a kind of validation of a mobile or a web application ensures conformity to its specifications and functions. Application Usability is of the highest importance here as compared to the internal working so of the application. If the user interface of an application is inefficient and does not work as intended, then it is a frustrating experience for the user regardless of the high quality internal code.



Functional Testing starts  with gathering test requirement which continues through the designing and development of test cases, executing the test cases and analyzing the results. The product quality depends on the effective planning and execution of the different stages in the functional testing life cycle.

There are different stages of the functional testing life cycle and there are some best practices to be followed in each phase. Let us review the different phases and the best practices that need to be followed in that particular phase.

Test Requirement Gathering

-      Conduct a product feature presentation by the business team. This minimizes the communication gap between the actual requirement and that what is developed.
-      Prepare a traceability matrix. It maps the relationship from
features -> requirements -> test cases -> issues. Also, update this matrix with every change in requirement.
-      Testers need to collaborate with the development team throughout the life cycle of the product development. Being a part of the requirements discussion, feature expectations can be understood better which can help in better designing of test cases.

Test Planning

-      Get the traceability matrix approved and reviewed. This helps to reduce functionality gaps in test plans.
-      Review the test plan  with the development team.

Test Strategy

-      Prepare a consolidated functional test coverage for the various test cases.
-      Make use of an extensive decision model while finalizing on the test matrix.
-      Prioritizing the test cases helps to reduce the risk factors for high risk features.

Test Execution

-      Get the intermediate product build before the formal handover for QA.
-      Maintain a knowledge repository of various problems faced during setting up of the test environment and their possible solutions.
-      Exercise flexibility in the plans if the project needs change.
-      Ensure that the installation and configuration instructions are detailed.

Defect Management

-      Use standard templates for filing and verifying defects.
-      Establish a clear criteria for defect severity and priority.
-      Maintain an up to date list of defects found in the product with appropriate details.
-      Focus on filing technical defects more than cosmetic defects.
-      Escalate highly impactful defects so that the development team works on them first.

Test Results Reporting

-      Reports generated should be easy to understand and hence should be prepared in a spreadsheet format.
-      Provide a list of all the executed test cases and the effort spent for each testing.
-      Mention the all the risks  associated along with all the defects found.
-      Provide a chart diagram of the distribution of the defects based on severity and priority.

Test Metrics Collection

-      The various metric that need to be collected are:
o    Number of bugs
o    Time to resolve the bugs.
o    Number of defects missed by the QA and were reported by the user.
Reopened defects and regression defects.

Conclusion

Functional testing or Web Application Testing need not be a time-consuming or an expensive process. Automated functional testing can help in better test coverage and increase both speed and accuracy of the testing process.