Blog 2.0

Featured Posts (66)

Why you need to perform integration testing

Integration testing is an intermediate stage between modular testing and system check-up. In the process of software testing are arranged and studied in complex. As a rule, smaller modules are integrated into bigger ones. The purpose of such integration of several modules into one group is to check whether these units meet functional and acceptance criteria. The testing itself is done with the help of the so-called “Black box” method when there’s no access to product’s source code.

Pretty often, integration testing is compared to modular testing which helps to assess the correct performance of separate modules of product’s code. The difference between modular and integration testing lies in their goals, and, as a result, in the methods they’re carried out with.

Thus, when we do integration testing, the emphasis is made on the analysis of interaction among interface objects. Such integration testing is done on two levels: component and system ones. The first level, component level, assesses system components behavior by the results of component testing. Accordingly, on a system level a testing specialist checks interaction among the systems by the results of system testing. As a rule, two ways of merging modules in groups are singled out:

  • Monolithic (when all system modules are merged simultaneously);
  • Incremental (when system modules are merged step by step).

Incremental way has two approaches to modules merging:

  • Descending testing: at the first stage, modules of higher level are checked. After that, they are gradually merged with low-level ones. In the process of testing low-level modules are replaced with the so-called plugs with the same functionality. Later, these plugs are replaced with real low-level modules.
  • Ascending testing: low-level modules are analyzed. This method is considered to be more effective when all modules are low-level. At this stage of testing it is possible to assess the level of readiness of the product under testing.

The results of integration testing can show mistakes in the process of module merging. In order to avoid them, a test plan if testing separate modules is made. After testing separate modules, they can be merged based on the peculiarities of their testing.

Read more…

""Apple has unveiled the  ios 10 at annual Worldwide Developers Conference (WWDC) 2016 earlier. Tonight Apple may announce official launch of iPhone 7 and iOS 10 along with some other announcements.

The new Iphone beta iOS 10 includes dozens of major new features and it  is moving steadily with the development of iOS 10. There are plenty of new features  including upgrades to the siri voice assistant, photos, maps and - my personal favorite - the ton of new ways to interact with friends using the message app. we may find a number of cool features that just about every Apple fan is going to love.


Which devices will run iOS 10?


Any iPhone 5 and newer will run Apple iOS 10 along with most recent ipad. Feature that use 3D touch for pressure sensitivity will only work on the iphone 7.

What features are bundled in iOS 10?

Advanced lock screens:

 iPhone 6S users and those keen to adopt the next iPhone will get the most out of the new system. Users will be able to pop in to notifications from the lock screen and respond quickly to messages without unlocking the phone. iOS 10 gives you a bunch of widgets right on your lock screen so you can do more stuff quickly. Apple iOS seems to have learned from Android and added more value the other lock screen.

Interactive messages with lots of fun

Apple is making bigger emojis that are now three times as large as before, and the keyboard can now identify words you can easily replace with emojis via a single tap on each word.Expressions don't stop there. There'll be bubble effects so you can "say it loud" with a bursting bunch of text, or say something "gently" with slow-to-exist texts. Double tap a bubble to send a reaction.

Siri


The biggest change to Siri seems to be that Apple is opening it up to 3rd-party developers. This means that you'll be able to activate non-Apple apps and functions via voice control. This upgrade might help apple join the growing trend of messenger bots. Integrating siri with third party apps like Uber or Open Table might allow ios users to do things like call a cab or make dinner reservations without having to actually open the app. Siri functionality will likely advance on the iphone as well, possibly with the capability to answer phone calls,  play recorded messages and transcribe voice mails.


New keybord help to save your time:


Apple is " introducing Siri intelligence to the keyboard". New keyboard tricks spare your tired, typing hand. Which mainly manifests itself in the use of artificial intelligence and context cues to offer more suitable and relevant suggestions when typing. New keyboard is pretty handy and a genuine time-saver at the moment. it is going to become more proactive at bringing in data from other apps and offering it as part of your responses. Siri can now anticipate what you might want to do or say and suggest information you may need. If someone asks where you are, it will offer your location as a suggested response; if someone asks for a person's email address and iOS thinks it knows who that is, it will suggest the relevant contact details. There will be support for multilingual typing - in other words, not in just one language or another, but in a blend of the two.

“Memories” are Smarter now


Like Key board, Apple is making a big effort to catch up and has been given an injection of artificial intelligence. Photos can draw together linked photos and videos by place, people and time, and automatically create highlight reels and trip mementoes; Apple calls this 'Memories'. Memories is a pretty cool feature for looking back at key points in your life, especially if you have thousands of photos on your phone. If you click on one of the Memories, it takes you to a photo gallery, while also featuring an automatically-created video (with music) at the top. That was definitely the best moment. Good job, Apple. Ios 10 uses facial recognition software to automatically build album of people places and events. To access it, just pull up your Photos app and click "Memories."

 Maps


Maps gets a new design in iOS 10; which are easier to access for controller like some of the other apps it looked broadly simpler and cleaner. Apple Maps in iOS 10 takes traffic into account dynamically, and offers alternative routes on the fly if traffic makes them preferable. Maps now does more in advance, with the proactive elements we've seen before in iOS coming to the fore. Slide upwards from the bottom of Maps and you get suggested destinations. If you normally go to work at this time, then your workplace will be on there. Another location may be drawn from a calendar appointment for this time.
You can sub-filter when searching for nearby businesses. Fitter for restaurants; then filter for seafood restaurants. And, like many of the other features here, Apple is opening Maps up to developers. Your phone will now automatically tell you exactly where you parked your car with the help of maps. Fortunately, iOS 10 solves this problem by remembering where you parked your car, automatically. Instead of snapping a picture of your surroundings or jotting down GPS coordinates in notes, iOS 10 will remember your car's location anytime you stop at a place other than your home.

Music

As we expected, Apple Music has had a major visual redesign - and to be fair, it looks good. It also gets onscreen lyrics for some songs, although you may have to wait for the lyrics for your favourite song to be added.
Better still, whilst taking Live Photos, your music will continue playing - allowing you to have uninterrupted music sessions.
Everything’s much more clean and navigable, including a new tab for “downloaded music”  and a For You section that provides a new playlist of music Apple thinks you’ll like every single day. Think Spotify Discover, but more frequently updated.

 
News

Apple has added subscriptions in News. This recent addition to Apple's stable of pre-installed apps received a complete makeover, with sections that make it easier to find and read content you're interested in.Now there is also a 'Breaking news' notifications from the app. You can toggle the feature from the app's settings and even custom-tune the publications you wish to see push notifications to your device.


 HomeKit & new Home app

And now a bigger one. Apple is getting serious about smart homes and the internet of things, launching a dedicated app, Home, for controlling all the appliances that are compatible with HomeKit. Although there’s not a ton new to say about it, aside from there’s an actual app now, called Home, from which you can control all of your smart home devices that have compatible apps.  If you open up Home, you'll see all your HomeKit-compatible accessories, no matter which company makes them, and you can easily control them all from one hub. Many of these will have 3D Touch shortcuts: you can force-tap and slide on a dimmer app, for instance, to adjust light levels.  Profiles let you perform a bunch of actions with a single tap, such as setting lights, curtains, air conditioning and security when you leave the house or come home. T
There are some really nice features in Home. One is called Scenes, which is effectively a pre-customised set of adjustments across a range of accessories that you can activate with a single tap or Siri command.

Phone

Apple barely mentioned the iPad when it spoke about iOS 10, and there aren’t a whole lot of updates for the tablet that haven't come from the phone. You can now have two Safari tabs next to each other, which is handy, and if your iPad mainly stays on the sofa at home then you can use it as a hub to control your HomeKit-enabled tech The all-important but often neglected Phone app gets a single big enhancement: voicemail transcription. iOS will convert speech into text so you can glance through a voicemail without having to listen to it. Will be great if it's accurate enough (and remember that it doesn't need to be that accurate, since you're just trying to get the gist; if it's clearly important, you can just listen to the message).

Read more…

Calabash Automation Execution

pCloudy provides automation execution environment to run your Calabash test script of android & iOS and hybrid applications as well.

Here are steps to run Calabash test script over android device:

  • Login over www.pcloudy.com with your registered Email ID & Password
  • Go to the Automator Page
  • Select Android or iOS OS version & Manufacturer
  • Select and add desired device
  • Choose Calabash (to run Calabash test scripts)
  • Select Application .apk/.ipa file (the App to be tested)
  • Select Test Script zip file (the Test Script developed for testing)
  • Enter Single Device execution Time (Time required for the entire script to be executed on single device)
  • Enter Name of your Test Cycle (this name will represent your Test Cycle)
  • Click on Schedule Test Cycle

calabash-test-automator
 
Click on Schedule to confirm schedule of test automation. Here, you can see your selected application, test script, device(s) etc.

calabash-confirm-test-cycle
 
You get a pop up message of test automation schedule confirmation.

Click on OK to proceed.

calabash-test-cycle-scheduling-successful
 
Go to your mailbox and open pCloudy Automation Alert mail.

Click on the given link “Click to view Report”.

calabash-simplest-online-device-cloud
 
Here, you can see result of your Calabash Automation Execution. This directory contains all important information of execution result.

calabash-cloud-automator-report

Read more…

The art of mobile app testing

We all know how rigorous competition in the world of mobile apps is. Naturally, the quality of new mobile product, its functionality and stable work are essential. Comprehensive testing of the app before its public release can’t be ignored or done negligently. Automation of mobile app testing allows checking app’s functionality, safety, integrability, updates, and other important indicators.

As any mobile app has a range of tasks which users relegate to it, it’s important to test app’s correspondence to its business goals and make sure the app shows stable performance under different conditions. To do that, load testing is used which goal is to reveal and forecast the possible scenarios of apps performance under different loads – depending on the number of connected users, volume of information being sent, etc.

In addition, stress testing is used. It show app performance under the highest loads: specialists pay attention not only to what maximum loads can the app resist, but also to time it needs to revert back to normal functioning after lowering loads to usual level.

Software testing automation also comes in handy when you need to do volume testing – in this situation you need to check performance and speed when data volume constantly grows and the app needs to process and keep this data.

Testing results are always detection of errors and bottlenecks which needs to be fixed further on. All detected bugs are reported into special reports. Load testing can also be done manually, not always it assumes automation. By combining manual and automated testing you can check all aspects of a system because sometimes only a human can spot some unusual behavior and vulnerabilities in the system which can be omitted during automation because there was no such task.

Comprehensive testing of a mobile app allows bring the app to a new level, which will surely lead to a positive feedback from users.

Read more…

Android version names have always been in the name of some sweets/desserts. If you take a look on all android versions you can see lots of desserts all around.

Just have a look:

Android Versions

Source: Wikipedia

Traditionally it was google team which was involved in giving appropriate names to these android versions. However first time ever, google has provided an opportunity and asked users to suggest and submit a  name for its upcoming android release,"Android "N".

For android lovers, google has designed a special page in which you can suggest the name for upcoming android version. What you need to do is just:


Android Name N

Woohoo...you are done...Now it is up to google Android Team to decide which tasty idea they really loved :)

Read more…

 

You’re a business guy, brand image and customer delight is your concern!
You’re a technology guy, steadiness in app behavior is your concern!
Both of them are conscious about the performance of the enterprise mobile app?
Want their app to work full-proof and be supremely responsive and intuitive in case of any unforeseen/ unexpected interruptions. Want to guarantee a consistent and stable app behavior to the customers?

What should they do to establish synergy and achieve the desired goal?

The answer is that we need a mechanism to generate random interruptions across the complete application flow to test its behavior in real time and to adjudge its integrity and responsiveness.
In simpler terms, the app should not hang or crash because of sudden pop-ups, network state change etc.
To resolve this, a term namely “Interrupt Testing” came into picture recently.
Interrupt testing is an testing approach which provides a way to simulate real time interruptions like change in network availability state, orientation change etc. so that we can predict, stabilize and enhance the app behavior on mobile.

For interrupt testing we broadly have two options

Generate interruptions manually while the app is on like

1. Keep app in background
2.Moving device out of network or toggle network
3. Manually change the orientation / background
4. Clear app internal data
5. Scroll screen up/down very frequently

Generating interruptions manually for a single device may not be a challenge but problem arises when we are targeting large number of devices of different OS versions. In such a situation, manual efforts are very time consuming and hence is not cost-effective.

To overcome this we need a promising mobile test automation tool that facilitates simulation of automatic interruptions. The one which cover wide number of permutations and test on each of them, rectify them by viewing comprehensive test case results in visual and graphical formats.
mAutomate is a mobile test automation tool which provides you numerous options to test your app with automatic interruptions that actually simulates real time events on your device screen.

Using mAutomate you can test your application for:
I. Connectivity issues on OS versions of devices
II. Pop-up handling!
III. Distortion when you rotate your device
IV. App hang due to interruptions like calls, messages
V.  Clear data
VI. Screen scrolling
VII.Background simulation etc.

Conclusively, you need an awesome tool that can give your app a way to achieve a standard of being flawless and seamless. The tool which can give your brand a spotless stature.

Try mAutomate today for free. Visit http://www.mautomate.com



Read more…

Location: New Delhi (Experitest India offices) 


Requirements: 
- Graduated Computer Science in university 
- Degree: B.E/B.Tech 
- JEE Main CMS 110 or higher 
- 2-8 years programming experience 
- 2-3 years experience in Java 
- Experience in QTP - advantage 
- Start Date:1 Oct 2014 
- Salary: Excellent salary for suitable candidates 


pls email CVs to jobs@experitest.com

Read more…

Continuous Integration. A wonderful concept. Merging all developer working copies of a mobile application code with a shared mainline a number of times a day. The copies are checked, problems are detected early on and easily. However, despite the obvious advantages of such a system, many companies have problems in putting continuous integration into practice effectively. We present here five potential stumbling blocks and ways to effectively prevent them.

                                                             

Don't Let Your Build Spiral Out of Control!

Challenge:

Continuous Integration means dealing with a whole lot of new builds and if your build process is not under control as needed you may find yourself with new builds that has new code checked into it by your developers, resulting in your newest build having errors and changes.

Solution:

In order to avoid this, you can do two things

  1. Mark and promote a candidate build and perform testing on that build
  2. Branch the code and then at a certain fixed point carry out new development on that branch.

Although the latter adds a bit of overhead due to the need to merge the project branch back into the master on occasion, control tools can lessen the pain of merges.

 

Treat Problems from the Root!

Challenge:

Continuous Integration includes carrying out unit tests (that test isolated components), integration tests (that test the way components integrate with each other) and possibly acceptance tests (high-level tests that are customer understandable). The higher level a test, the more likely that it will fail.

Solution:

If the value of the tests starts to be negative in your teams' eyes with talk of ignoring failures, not figuring out why their failing or how to make them successful you need to STOP. Fix the issue by finding the root cause and fixing it. If it can't be prevented, the test is no good. An excellent way to deal with a failing test is to separate it into smaller tests and deal with each, step by step.

As Fast as a…Turtle

Challenge

Continuous Integration of mobile application development projects builds often start out speedy but with time become more complex and before you know it, you can find yourself with a build that takes several hours (in comparison to the several minutes it originally took)! With drawn-out tests the problem is that is something goes haywire along the way, it will take not hours but days to check that the tests passed. In a high-pressure environment this is a recipe for disaster.

Solution

Take care as far as your build time is concerned. For slow-running tests consider overnight end-to-end runs or running tests in parallel. As far as automated GUI checks are concerned, consider if they are truly valuable as part of the build process (such as fast verifications that always succeed).

 

Exploratory Testing is your Friend!

Challenge

One may assume that after carrying out the acceptance tests part of Continuous Integration that your mobile application's code should be ready for deployment. That simply isn’t the case. Bugs could still very well be lurking.

Solution

Passing acceptance tests should be equated with being ready for acceptance by testers. Exploratory manual testing should be the next stage so that those pesky bugs can be plucked out in the magnificent way that only human testers can pluck them out. Automated testing should be considered one side of the mobile application development coin- exploratory manual testing is the other side of the same coin.

 

On the Same Wavelength?

Challenge

Suddenly, you realize that your remote team has a different understanding of what unit tests- they think that unit tests are what your local group refers to as "integration tests". No problems with the code but false errors are getting sent to the local team who spend precious time trying to get to the bottom of a non-existent problem. Oh dear.

Solution

A distributed Continuous Integration setup is fine- just make sure that your teams are on the same wavelength and have the a joint understanding of the commit and build rules.

 

In Conclusion…

Continuous Integration in the production of mobile applications doesn’t start and end at setting up the system. Far from it. The real challenge is keeping the Continuous Integration process running smoothly over time as it grows and grows. The daily build challenge that we've dealt with for years is even larger once Continuous Integration stepped onto the scene. Just remember- you want to keep it as repeatable, fast and simple as possible.

 

 

Read more…

Become a Mobile QA Zone core Team Member

Are you enthusiastic and passionate about Mobile App Testing? Do you want to share your work in Mobile Testing & would like to get recognized for it? Mobile QA Zone is providing opportunity to become a core members of MQZ  to all its members.

You can become a Core Team Member of Mobile QA Zone if you can do anything of the following:

  • If you are able to write some good stuff around mobile testing which is of your own
  • If you can plan and promote activities for MQZ Members
  • If you can take some Live sessions for MQZ members related to Testing
  • If you can work on any creative Idea that will help all members
  • If you can Explore Mobile Test Automation tools and provide your findings
  • If you can Participate and promote the activities run by MQZ.
  • If you can Participate in Small Meet Ups
  • If you can help spread Mobile QA Zone all over the world.
  • If you can do anything else? (Let us know)

Becoming Core Team member will provide you opportunity to:

  • Highlight your work before whole world and especially before Mobile QA Zone
  • Place on a Core Team Page on Mobile QA Zone
  • Badge of Core Team Member
  • Opportunity to learn new things in Mobile Testing
  • Part of any initiative that runs on Mobile QA Zone.
  • Rights to edit contents on Mobile QA Zone

How to Nominate:

-You can nominate yourself as a Core Team Member by filling this form here

-The core team would be finalized after discussion with the applicants.

- Last date of nomination is 28th Feb

Read more…

Basic Security testing Checklist

HI friends

while making a checklist for security,with my experience i have prepared a short checklist for security testing kindly share ur comments and list out any features/list left by me .

Generic

  • For All web pages which carry confidential data like password, Secret answer for security question should be submitted via HTTPS(SSL).
  • Password & security answer needs to be masked with input type = password.
  • Server Side Validation for form. Use “Firebug” and “TamperData” to perform this test (You can tamper for minimum length of password, set only new password without old password >> You got to remove the old password element from Firebug from the client-side and then submit it <<)
  • Check for SQL Injection for any page in your application that accepts user-supplied information to access a database.
    • A login form, signup form, or “forgot password” form is a good start.
    • A dynamic page that uses URL variables such as ID (product information pages are good for this).
    • Check for XSS by searching application for a page that takes user input and outputs it directly to a webpage. Common examples: Forums, Comments, Wikis, Review. Also, check for CSRF.

 

Password

  • Set of rules for setting a password should be same across all the modules like Registration form, Change password, and Forgot password. If these rules differ than hacker might exploit it through brute force method. Example: If the registration form does not validate for password minimum length as 8 chars but while changing password from user profile it validates for minimum length or vice versa. Now, as registration form accepts password which are less than 8 chars it becomes easy for hacker to apply brute-force method.
  • Password enforcement of alphabets + numeric + special characters should be used in order to protect the account to a greater extent against brute force attack mechanisms.

 

Forgot your password

  • There need to be a restriction on number of forgot password requests sent per day or in “X” hours interval or have a captcha so that automated requests are not sent (To automate the requests  you could use “ReloadEvery” add-on which is to be used on http://example.com/user/forgot-password/)
  • The URL has to expire on one use after being used to set new password.
  • The token associated with the URL should not be guessable or there should be any pattern which could be easily cracked.
  • If the URL is not used within “X” hours then it has to expire (Example: Once the URL is generated, if it is not used then it has to expire after “72 hours”)
  • When new token is generated the old ones should expire even if they are not used.
  • Example.com should not send the password via e-mails by resetting automatically. There has to be URL which should be used by end-user to set new password of his / her choice.
  • While typing secret answer in Forgot Password the secret answer needs to be masked (Secret Answer is also part of authentication which is similar to password, shoulder surfing or auto-complete stuff could be dangerous here compromising the end-user account).
  • Once the password is set, you might want to take end-user to logged in state or requesting him / her to login now with the hyperlink (I, personally would recommend taking to login page and requesting him / her to login with new password)

 

Registration Form

  • There needs to be a CAPTCHA so that spam bots do not register and spam in discussion forums with illicit content which could be frustrating for your genuine end-users.
  • Tamper with the mandatory fields by trying to register without mandatory fields – This is a server-side validation (Add-on on Mozilla Firefox – Tamper Data) Example: Can anyone bypass acceptance of terms of conditions and proceed with registration? This could be applied for all the forms and this test idea will not be repeated in other forms.

 

Change Password

  • Once the password is changed successfully. User should not be able to login again with his old password but, with his new (changed) password.
  • Login using the credentials on Mozilla Firefox | Login with the same credentials on Google Chrome | Now, change password for the account in Google Chrome | After this, refresh or try to navigate to some webpage which are allowed to be navigated only by logged in end-users | Result: The end-user in Mozilla Firefox web browser has to log out as he / she is in the session which has old password

 

Security Questions & Secret answer

  • Frame the security question in such a fashion that they are not obvious to be known (What’s your pet’s name? >> Now, is that secret and no wonder we see such questions in famous web applications). It would be good if user is provided with option of choosing customized security question.
  • Secret / security answers should be stored in database as hashes and not plain text.

 

 

Session Management

  • User whose activity is idle for some time should be automatically logged out by expiring his session. (Example: User has gone out to fresh room or to have some snacks without logging out. Now, anyone can come to his system & see the user account open & exploit user account.
  • No confidential details like password should be saved in cookie.
  • Check what information cookie carries & try to tamper with it using Mozilla add-on Tamper Data.

 

Captcha

  • Captcha characters should not be displayed in cyclic fashion.
  • Captcha images should not be allowed to download at one time using add-on like “DownThemAll”
  • Use http://free-ocr.com/ to see if captcha could be deciphered.
  • Every refresh of a webpage should display new captcha every time.
  • Do not show the absolute path names of the captcha that is being displayed because it is easy to put assertions identifying the URL and then entering the according characters to pass the captcha.
  • I personally insist on using Google reCaptcha for your web application because it has not been cracked till date. There are many captcha third party services out there but, I do not recommend those.
  • Usage of question and answers type of captcha in textual format is good but, not good enough.

 

Read more…

Make sure that your mobile applications are truly Christmas-ready- there could be nothing worse than an enterprise's application failing them on the most critical days of the year. Start working now and make sure that your enterprise won't be in the embarrassing position of offering items for incorrect prices (hello American Airlines) or even chasing away customers completely by them not being able to access the application…

The temperature is dropping, the days are getting shorter and the festive lights are already sparkling in the shopping centers and malls. The winter holiday season is clearly on the way and to get an idea of what stores are getting ready for consider the following- the National Retail Federation reports that for some retailers the holiday season can make up as much as 40% of annual sales while Adobe Systems predicts that Cyber Monday 2013 spending will top an incredible $2.27 billion- the highest US online shopping day ever.

In the beginning of September 2013, the software analytics company, New Relic, posted information regarding, "the background workings of a mobile app," based on the billions of metrics gathered by them on a daily basis. Astonishingly, they announced that the average response time for a mobile application is a lazy 3.28 seconds, 2.28 seconds more than the optimum timeframe of roughly 1 second. Furthermore, there is a 1.86% average network request failure rate per minute per app and a 1.7% average server error rate per minute per app.

We believe that the following points provide some useful direction for enterprises wishing to ensure that their application(s) will serve them as needed in the winter holiday season.

Load Testing

Load testing should be carried out on your mobile application before peak time so as to ensure that your mobile application can deal with the heavy traffic that is an inevitable part of the festive season. Surely, you don’t want your enterprise to be 2013's ClickFrenzy?

 

Transaction Process Testing

All sub-operations making up the transaction process on your mobile application should be running smoothly. Atomicity, consistency, isolation and durability (the ACID test) should all be taken seriously into account and thoroughly tested.

Device Matrix

A device matrix is your way to ensure that each and every version of devices that support your application are tested. Don't forget to make sure that you have device matrixes for different geographical locations so that your enterprise's application is stable no matter where it is used in the world…

Benchmarking

Stephen Phillips, market research expert, explains that, "Businesses need to spend more time…looking at what their competitors are up to…" We suggest quantifying what is going on with your mobile application relative to your direct competitors.

Timing

Timing is an important consideration for enterprises wishing to release the festive version of their mobile application- on the one hand, there is the incomparable effect of the surprise mode, yet a soft launch may be the way to not find oneself in a whole lot of system dysfunctions due to overload. Before committing to a certain time schedule, an enterprise should make sure that their mobile application is more than ready to face the festive buying madness.

Experitest (http://experitest.com/) is the provider of tools for mobile test automation, manual testing and monitoring, supporting all mobile OS: iOS, Android, WindowsPhone8 and Blackberry.
Its test tools plug-in to all test environments including UFT/QTP/QC, Visual Studio/MSTest/TFS, Rational (RFT), TestComplete, Junit, Perl and Python.
Experitest is a HP Gold Partner (and its tools are HP Certified applications) and Microsoft VSIP partner (and its tools are Microsoft certified).
Experitest's customer base includes Fortune 500 companies (including Barclays, Verizon, BSkyB, Orange, China Mobile, DoCoMo, McAfee, TexasInstruments, Qualcomm, Cisco, Intel, Marvell, Motorola and many more) and 7 of the 10 leading worldwide banks.

Read more…

How the Google+ Team Tests Mobile Apps

How the Google+ Team Tests Mobile Apps

by Eduardo Bravo Ortiz 

“Mobile first” is the motto these days for many companies. However, being able to test a mobile app in a meaningful way is very challenging. On the Google+ team we have had our share of trial and error that has led us to successful strategies for testing mobile applications on both iOS and Android. 

General 

  • Understand the platform. Testing on Android is not the same as testing on iOS. The testing tools and frameworks available for each platform are significantly different. (e.g., Android uses Java while iOS uses Objective-C, UI layouts are built differently on each platform, UI testing frameworks also work very differently in both platforms.)
  • Stabilize your test suite and test environments. Flaky tests are worse than having no tests, because a flaky test pollutes your build health and decreases the credibility of your suite.
  • Break down testing into manageable pieces. There are too many complex pieces when testing on mobile (e.g., emulator/device state, actions triggered by the OS).
  • Provide a hermetic test environment for your tests. Mobile UI tests are flaky by nature; don’t add more flakiness to them by having external dependencies.
  • Unit tests are the backbone of your mobile test strategy. Try to separate the app code logic from the UI as much as possible. This separation will make unit tests more granular and faster.


Android Testing 

Unit Tests 
Separating UI code from code logic is especially hard in Android. For example, an Activity is expected to act as a controller and view at the same time; make sure you keep this in mind when writing unit tests. Another useful recommendation is to decouple unit tests from the Android emulator, this will remove the need to build an APK and install it and your tests will run much faster. Robolectric is a perfect tool for this; it stubs the implementation of the Android platform while running tests. 

Hermetic UI Tests 
A hermetic UI test typically runs as a test without network calls or external dependencies. Once the tests can run in ahermetic environment, a white box testing framework like Espresso can simulate user actions on the UI and is tightly coupled to the app code. Espresso will also synchronize your tests actions with events on the UI thread, reducing flakiness. More information on Espresso is coming in a future Google Testing Blog article. 

Diagram: Non-Hermetic Flow vs. Hermetic Flow


Monkey Tests 
Monkey tests look for crashes and ANRs by stressing your Android application. They exercise pseudo-randomevents like clicks or gestures on the app under test. Monkey test results are reproducible to a certain extent; timing and latency are not completely under your control and can cause a test failure. Re-running the same monkey test against the same configuration will often reproduce these failures, though. If you run them daily against different SDKs, they are very effective at catching bugs earlier in the development cycle of a new release. 

iOS Testing 

Unit Tests 
Unit test frameworks like OCUnit, which comes bundled with Xcode, or GTMSenTestcase are both good choices. 

Hermetic UI Tests 
KIF has proven to be a powerful solution for writing Objective-C UI tests. It runs in-process which allows tests to be more tightly coupled with the app under test, making the tests inherently more stable. KIF allows iOS developers to write tests using the same language as their application. 

Following the same paradigm as Android UI tests, you want Objective-C tests to be hermetic. A good approach is to mock the server with pre-canned responses. Since KIF tests run in-process, responses can be built programmatically, making tests easier to maintain and more stable. 

Monkey Tests 
iOS has no equivalent native tool for writing monkey tests as Android does, however this type of test still adds value in iOS (e.g. we found 16 crashes in one of our recent Google+ releases). The Google+ team developed their own custom monkey testing framework, but there are also many third-party options available. 

Backend Testing 

A mobile testing strategy is not complete without testing the integration between server backends and mobile clients. This is especially true when the release cycles of the mobile clients and backends are very different. A replay test strategy can be very effective at preventing backends from breaking mobile clients. The theory behind this strategy is to simulate mobile clients by having a set of golden request and response files that are known to be correct. The replay test suite should then send golden requests to the backend server and assert that the response returned by the server matches the expected golden response. Since client/server responses are often not completely deterministic, you will need to utilize a diffing tool that can ignore expected differences. 

To make this strategy successful you need a way to seed a repeatable data set on the backend and make all dependencies that are not relevant to your backend hermetic. Using in-memory servers with fake data or an RPC replay to external dependencies are good ways of achieving repeatable data sets and hermetic environments. Google+ mobile backend uses Guice for dependency injection, which allows us to easily swap out dependencies with fake implementations during testing and seed data fixtures. 

Diagram: Normal flow vs Replay Tests flow


Conclusion 

Mobile app testing can be very challenging, but building a comprehensive test strategy that understands the nature of different platforms and tools is the key to success. Providing a reliable and hermetic test environment is as important as the tests you write. 

Finally, make sure you prioritize your automation efforts according to your team needs. This is how we prioritize on the Google+ team: 
  1. Unit tests: These should be your first priority in either Android or iOS. They run fast and are less flaky than any other type of tests.
  2. Backend tests: Make sure your backend doesn’t break your mobile clients. Breakages are very likely to happen when the release cycle of mobile clients and backends are different.
  3. UI tests: These are slower by nature and flaky. They also take more time to write and maintain. Make sure you provide coverage for at least the critical paths of your app.
  4. Monkey tests: This is the final step to complete your mobile automation strategy.


Happy mobile testing from the Google+ team.
Read more…

Partners HP and ZAP Technologies, the leading provider of full lifecycle test automation solutions for mobile, Windows, iOS, and Unix applications, announces the publishing of a whitepaper released to discuss and illustrate how ZAP’s most popular, market-leading product ZAP-fiX extends the HP ALM suite to testing environments on Mac-based platforms.

ZAP Technologies Introduces Real Device Test Automation

ZAP Technologies is an HP Elite Partner, HP software reseller, and solution provider. The company has been developing and delivering leading solutions through HP Software for more than 15 years. ZAP Technologies specializes in developing software that extends HP Software technologies, implementing its industry experience and expertise in test automation best practices, QA management, performance validation, and application management for Mac and cross-platform environments.

Recognizing and understanding the need for automated testing for mobile and cross-platform applications, ZAP Technologies has developed a product called ZAP-fiX (ZPX). Using this product with ZAP’s unique 1Script technology, customers of HP Application Lifecycle Management (ALM), HP Unified Functional Test (UFT), and HP QuickTest Professional (QTP) users can execute that same script cross-platform on all applications—both native and Web-based.

Testing on Mac-based Platforms 

ZAP Technologies recognized and understood the need for automated testing for Apple Mac-based native 

and Web applications. The company developed ZAP-fiX software, which seamlessly extends the HP Quality Center (QC) or HP ALM desktop testing environment for Mac and other platforms. ZAP-fiX software helps QA organizations test and monitor applications using HP software in an ergonomically friendly way—saving time, money, and resources.

Companies using HP ALM products like HP Quality Center (QC) and HP UFT/QTP have historically lacked tools to support testing and test automation for Mac-based applications, because HP ALM cannot functionally test on Mac platforms. Businesses are therefore unable to access the rich functionality and best practices afforded by HP ALM—or tap into the large community of HP ALM users or HP UFT/QTP developers and vendors. Thanks to ZAP-fiX with HP ALM on Mac platforms, that’s about to change.

“We recognized a demand on the market among primary users who adapted HP ALM products as their strategic QA management technology to extending their testing to the Mac-based community,” Alex Chernyak, President and CTO of ZAP Technologies explains. “ZAP-fiX can fill in the gaps and provide testing teams with a tool that will allow them to approach test automation from all angles.”

Together, ZAP Technologies and HP will put their historical footprint on Mac platform testing.

To read the whitepaper and find out more about how ZAP-fiX revolutionizes test automation, visit our website atwww.zap-fix.com. The materials are available for quick download on the home page. Interested in learning how ZAP-fiX can forge a road to success with your application testing projects? If so, fill out our short evaluation form and a ZAP Expert will be in contact with you to discuss if our products are right for you.

Read more…

When Apple announced iOS 7, it revealed an operating system with a much different look than the mobile OS we’re used to. According to Marco Arment, creator of Instapaper and iOS developer, this was an intelligent, strategic and aggressive move on Apple’s part. In a recent article, he describes iOS7 as a defense against copycats. Since this platform was released in 2007, iOS has seen countless immitations of its structure and appearance, especially by Android and Samsung. The iOS “theme” quickly became the “go-to” look for smartphones. Now, six years later, Apple is stepping out once again to set a new trend.

iOS7 is going to display radical changes from the “norm” that we are used to. But, when this platform’s popularity skyrockets, the old “norm” will fade into history. This is, naturally, what Apple hopes for. They’ve taken steps to assure that their new product retains its originality and uniqueness. Marco mentions in his article that:

"Apple has introduced new patents and features in their product that will make copying their UI more and more difficult. iOS 7’s appearance and dynamics require a powerful GPU and advanced, finely tuned, fully hardware-accelerated graphics and animation APIs. This will hurt web imitators most, but it’s also going to be problematic for Android: while high-end Android phones have mostly caught up in GPU performance, and recent Android versions have improved UI acceleration, most Android devices sold are neither high-end nor up-to-date. The gap is much wider in tablets, and even “high-end” tablets usually have insufficient GPU power to drive their high-DPI screens."

Apple is looking to reclaim its place on the top of the mobile UI pyramid. At first, they may succeed, for the drastic changes will be difficult to copy and will create new challenges for cross platform frameworks. Since developers aren’t likely to abandon iOS app development all together, they’re likely going to spend much of their immediate time updating apps for iOS 7 – meaning Android and other platforms will be neglected for awhile. As Marco said:

“Whatever app developers were planning to do this fall is probably on hold now, because everyone’s going to be extremely busy updating and redesigning their apps for iOS 7. Anyone thinking about expanding into another platform now has a more pressing need to maintain marketshare on iOS.”

As testers, we need to prepare for iOS 7 and the new and revolutionary changes it will bring to the table.

Read more…

Opportunity - Motorola Handheld Device Tester

Please send me your updated resume to sunny@capricornsys.com OR Call me at 678-514-1080 Ext 3210

 

Job Title: Motorola Handheld Device Tester

Job Location: Johns Creek GA

Job Duration: 5 Months

Client: Retail Giant

Rate: TBD

Note: it is a requirement for the candidate(s) to have experience testing on Motorola (3190 & 3190Z) handheld devices

5+ years Mainframe testing recent experience

5+ years experience with Software Application testing techniques and quality assurance practices.

5+ years experience with all phases of the test cycle (Test planning, Test case development, test execution, regression & system test)

Hands on test script creation and execution experience in a Web/Java environment desired

Experience logging and tracking defects Experience testing on handheld devices (Motorola 3190 & 3190Z) Experience testing mobile phones

Experience w/ test management tool HP Quality Center Experience creating and validating data to test functional component of application

Experience testing report functionality (operational and Analytical data warehouse reports) a plus

Relational DB/SQL experience (query database to verify test results/find test data etc.), a plus Identify major developmental or design risks and action plans Excellent verbal/written communication skills

Read more…

Silk Test- Mobile Test Automation Tool

Brief:-

# Business & technical users alike quickly & intuitively generate test scripts to validate functionality with Borland Silk Mobile.
# Meet business requirements & ensure application performance by modifying scripts to enhance synchronisation & validation.
# Plug devices directly into a PC & use the visual scripting to capture & validate gestures & mobile interactions directly in your environment.
# Export scripts easily to the IDE of your choice (Silk4J, Silk4Net, Junit, Nunit, MSTest, VB.Script to name a few) to quickly & easily replay test scripts in continuous integration testing & test automation frameworks.
# Find out more & take a free 30 day trial http://www.borland.com/products/silkmobile/
 
Read more…

Is it possible to run your automated test-scripts on real device from Jenkins job? Yes, it's possible and very easy.

First of all you need to create Ant build.xml file where you will create your targets to launch .sh or .bat-scripts which are executing commands.

It's a very simple example of build.xml file:

<?xml version="1.0" encoding="UTF-8"?>

<project name="Example" >

<target name="install_apk_device" >
        <exec dir="/Users/all/Documents/Tools/Android_auto/Source_files/" executable="sh">
            <arg value="install_apk_device.sh"/>
        </exec>
    </target>
    
    <target name="launch_application_device" >
        <exec dir="/Users/all/Documents/Tools/Android_auto/Source_files/" executable="sh">
            <arg value="launch_application_device.sh"/>
        </exec>
    </target>
    
    <target name="stop_application_device" >
        <exec dir="/Users/all/Documents/Tools/Android_auto/Source_files/" executable="sh">
            <arg value="stop_application_device.sh"/>
        </exec>
    </target>
    
    <target name="uninstall_application_device" >
        <exec dir="/Users/all/Documents/Tools/Android_auto/Source_files/" executable="sh">
            <arg value="uninstall_application_device.sh"/>
        </exec>
    </target>

</project>

As you can see - in "Source_files" I have .sh-scripts and every script making his job. Let me describe every script:

1) "install_apk_device.sh (or .bat if you are using Windows)" -  this script has only one string:

adb install -r path_to_your_apk-file/Example.apk

2) "launch_application_device.sh (or .bat if you are using Windows)" - this script also has only one string:

adb shell am start -n com.example/com.example.SplashActivity

This command launching your application activity (package/package.Your_activity). In this example command launching first activity of my application. You can launch any activity of your application, but we need first, yeah? And don't worry - your application will launch in any case (even if display is locked) :)

3) "stop_application_device.sh (or .bat if you are using Windows)" - this script again has only one string:

adb shell am force-stop com.example

This command will close your application after automated tests. "com.example" - it's a package name of your application.

4) "uninstall_application_device.sh (or .bat if you are using Windows)" - and again this script has only one string:

adb uninstall com.example

This command will remove completely your application from device.

Sure to successfully run all this scripts you should have adb in your PATH (or you can use direct destination to your adb in Android SDK like "/Users/Example/Documents/Tools/android-sdk-macosx/platform-tools/adb uninstall com.example" ).

So, now you could involve this ant-targets to your Jenkins job: Configure -> Add Build Step -> Invoke Ant -> insert list of your targets (for example: uninstall_application_device install_apk_device launch_application_device stop_application_device) and insert path to your build.xml file in "Build File" field. Between "launch_application_device" and "stop_application_device" you can insert some target which will launch automated tests running. In my case it's MonkeyTalk suite, but you could involve any tool which can be launched by Ant.

Read more…
Welcome to Mobile QA Zone, a Next Generation Software Testing Community.Invite your friends to join this community.Write to us to become a featured member.