? QA Design Gurus: December 2015

Dec 27, 2015

Mobile App Testing with Telerik Test Studio

Over the last few years, Mobile Applications development has grown exponentially. QA needs to ensure that every mobile application meets high quality. Testing mobile applications is complex and difficult compared to desktop and web applications. In mobile world, with frequent OS upgrades, new devices support, it is really complex to test mobile apps and to automate testing.
We will be able to solve these kind of issues with Telerik Test Studio Mobile.


It allows developers to write automated functional tests in JavaScript using a set of APIs we devised to make the process as easy as possible. With Test Studio, we can run automated tests on real devices as well as emulators. All we need to do is to install Mobile Testing agent on the devices we need to test. Agent will take care of connecting mobile device to our test studio script.

Dec 18, 2015

AWS Device Farm for Mobile App Testing

We have different types of mobile devices. They vary in the form factor, OS and various types of apps (native, hybrid, mobile-web) used in them.

Ref: http://www.flurry.com/sites/default/files/blog-images/SizeMatters_Chart2-resized-600_0.png 
This creates unique challenges to QA apps developed for mobiles. It is difficult to have all these combinations of devices with us. further running automated test cases across multiple real devices is another challenge.

AWS Device Farm is one solution for that. It allows you to test iOS or Android apps of native, hybrid or mobile-web categories on physical devices of your choice in the Cloud. They offer hardware and software isolation which helps us to ensure security and comes with several attractive features such as flexible pricing, schedule your runs, execute tests in parallel, consolidate results etc. 

Ref:https://d0.awsstatic.com/product-marketing/Mobile/DeviceFarm-productlandingpage-banner.png

Dec 15, 2015

Localization testing by changing your system locale

Localization: It is the process of adapting internationalized software for a specific region or language by adding locale-specific components and translating text.





Things to take care during installation while testing openedge with non-english environment

OpenEdge by default allows user to install OpenEdge in 14 different languages. Here is the list below-


Czech(VZE)
Polish(POL)
Dutch(Dut)
Portuguese(POR)
English-American(AME)
Portuguese-Brazilian(BRZ)
English-International(Eng)
Spanish(SPA)
French(FRE)
Spanish-Latin American(SPL)
German(GER)
Swedish(SWE)
Italian(ITA)
Chinese-Simplified(SCH)


Apart from these 14 languages it also supports other supplement languages as well. Here is the list of 22 supplement languages below-


Arabic
Croatian
Chinese (traditional)
Danish
Hebrew
Finnish
Japanese
Greek
Korean
Hungarian
Persian
Icelandic
Serbian
Lithuanian
Thai
Norwegian
Turkish
Slovak
Slovenian
Spanish - Mexican
Romanian
Russian



How to test your internationalization configuration using ABL?

OpenEdge database support internationalization . It means you can build application for non-english language/region and perform required operations. While working with non-english languages, you need to  use appropriate language setting to perform the operation and do the character processing correctly.

You can use ABL query to test the setting from your client. Here is the ABL query below- 

MESSAGE   
"Database    = " DBCODEPAGE(1)      SKIP   
"Collation   = " DBCOLLATION(1)     SKIP   
"-cpinternal = " SESSION:CPINTERNAL SKIP   
"-cpstream   = " SESSION:CPSTREAM   SKIP   
"-cpcoll     = " SESSION:CPCOLL     SKIP   
VIEW-AS ALERT-BOX.




Be a Technical Tester



Testing is a “technical” discipline that is different to programming and testers add a lot of value to projects and it depends on the context they work in. But in general they need to have technical skills to get success in their job.  As a tester I believe, the only way I can do a good job (testing) is by understanding technical and functional aspects of product in detail.

A technical tester adds lot of value to the product by
  • Understanding the architecture of the product
  • Reviewing the code he needs to test
  • Working with tools (testing tools) or scripts (to automate) to help his work
  •  Debugging issues by troubleshooting them from logs or system feeds
  • Being updated with technical aspects of infrastructure 
A test engineer should be at least be technical enough to do their job effectively and to talk the same language with the rest of your programming and testing peers.

Ref: https://martijndevrieze.files.wordpress.com/2013/06/waterfall-traditional-testing.gif

Dec 14, 2015

What is Kerberos Authentication? How to test it using fiddler

In every organization, employees use many applications in their day to day life. E.g. Project Management, Leave management, IT support, Timesheet...etc. All applications may not be provided by one vendor. Each application has its own authentication mechanism. Each employee needs log into these applications daily. Redundancy of entering the same username password on a daily basis for all the internal applications by Employees can be eliminated by implementing the Kerberos Authentication. Using this Kerberos Authentication, we can authenticate the user automatically if that employee is in the same private network. Most of the organizations are using Windows operating system and Active Directory authentication for their Desktop/Laptops. Many application vendors are also supporting this Kerberos authentication.

Kerberos is a network authentication protocol. It is designed to provide strong authentication for client/server applications by using secret-key cryptography. It has the following characteristics:
  • It is secure: it never sends a password unless it is encrypted.
  • Only a single login is required per session. Credentials defined at login are then passed between resources without the need for additional logins.
  • The concept depends on a trusted third party – a Key Distribution Center (KDC). The KDC is aware of all systems in the network and is trusted by all of them.
  • It performs mutual authentication, where a client proves its identity to a server and a server proves its identity to the client.


Ref:https://msdn.microsoft.com/en-us/library/Bb742516.kerb01_big(l=en-us).gif

Manual testing

Once the application is implemented with this Kerberos authentication, then the user should be able to access the application without asking login credentials. The application should have an account with the same login name.
 Open any browser and access the application. It should automatically provide the access to the application.
 Sometimes it may not work this authentication, if the DNS server has any problems. Client machine should be able to ping the application hosted server machine and the same IP should be shown at server side if we execute the ipconfig command.

Enabling Kerberos Authentication in Firefox


Firefox does not automatically perform Kerberos authentication against any sites. You must manually add sites to a trusted sites list.

To enable Kerberos authentication in Firefox:
  • Open Firefox and enter about:config in the address bar. Dismiss any warnings that appear.
  • In the Filter field, enter negotiate.
  • Double-click the network.negotiate-auth.trusted-uris preference.
  • This preference lists the trusted sites for Kerberos authentication.
  • In the dialog box, enter the domain, such as abc.com.
  • Click the OK button.
The domain that you just entered in the network.negotiate-auth.trusted-uris should now appear in Value column. The setting takes effect immediately; you do not have to restart Firefox.

Testing using Fiddler
  • Download and install the fiddler software at client machine, not at the server machine http://www.telerik.com/fiddler
  • Start the fiddler. It automatically captures the traffic
  • Access Kerberos Authentication enabled application in any browser E.g., Chrome
  • Fiddler captures all requests and displays in left-hand pane
  • Click on first successful(200) request
  • Click on "Inspectors" tab, then "Request Headers" section -> Headers
  • Look for the "Cookies/Login" section or "Security" Section
  • If you see the Authorization token begin with “YII” then Kerberos is functioning, if you see “TlR” then Kerberos did not function
Kerberos Working
or



Kerberos not Working




Dec 6, 2015

Graphical Test Planning - A picture is worth a thousand words

In software testing world, we write test plans with some list of test cases. A tester writes a test plan for a feature and sends it for review. Higher management and developers will review the test plan and provide their comments. Tester incorporates those comments. Higher management may not have time to read the entire document, thus ending up with only developer's review comments. Similar to architect diagrams in feature's functional specs, test plan can accompany a picture to explain the testing flow/scenarios.

Graphical Test Planning(GPT) is a way of creating a test plan without the need to write entire documents. This methodology was created by Hardeep Sharma of Citrix Systems. GPT helps us to find design-level issues at the earliest.

What a Graphical Test Plan is:
  • A structured relationship diagram
  • A list of behavioural areas that need to be tested
  • A method of getting greeting feedback about what needs to be tested
  • A method of tracking progress of design and execution of testing
What a Graphical Test Plan isn't:
  • A flow diagram
  • A QA manager's thoughts or mind map
  • A feature list
  • A hand-holding exercise for a test engineer on how to use the application
Ref: http://event.dnd.no/ttc/wp-content/uploads/sites/39/2015/01/David_Bradley.pdf


Advantages of this methodology

• Enables people to understand and work with complex systems
• Describes the exact behaviour we expect to observe from the system
• Find bugs from the beginning of the project
• No waiting for documents, code, etc.
• Be an integral part of the whole project lifecycle
• We understand the system better
• Communicates knowledge and understanding 
• Verifies the design
• Enables good Project Management & Control 
• Provides flexibility and agility
• We improve the system design
• Discover inaccuracies and ambiguities
• Identify potential design issues
• Ensures the RIGHT product is built
• Many people can contribute. Not only testers any person who is involved in this project can contribute to this GTP. Architects, PMs, UX, Dev, QA..etc 
• Test against the confirmed behaviour, not implementation