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.