The latest in AWS, CodeBuild

The latest in AWS, CodeBuild

As an enthusiast of cloud and cloud-related technologies, I keep track of conferences and symposiums in this domain. AWS re: Invent is the most significant event in this regard by Amazon (Amazon Web Services) The main event was held in Las Vegas from Nov 29 to Dec 2, 2016. The event is also educational as it showcases the latest updates and trends in AWS with keynote announcements. I was unable to be a part of the event, but I followed the updates happening over Twitter, FB, Youtube, and various other blogs. Of the many new updates that were presented this year, CodeBuild Service caught my attention. In simple terms, the service automatically compiles lines of code written by the developers and runs test cases on it. The service has the ability to run on lesser popular languages through a docker image.  CodeBuild works seamlessly with CodeCommit, CodePipeline, and CodeDeploy i.e. other AWS tools for storing, building, and deploying code.  The combined set of the above assists the developer in every stage of code development, deployment, and code updates. In tune with the principle of cloud computing, the service is scalable and has the ability for automatic resource termination and instantiation, contrary to the “set and forget” model. The service is charged by the minute. Codebuild currently works on Linux. Looking forward to Windows support in the future.  Jordan Novet and Jeff Barr, your articles have been a big inspiration for me to have an up-close look at CodeBuild.  I plan to work/experiment with the tool and shall post updates in the upcoming articles.

5 Key Points to Successful Mobile App Testing

Mobile-App-Testing-5-keys-to-success

Mobile app testing is a completely different beast when compared with web application testing. The challenge of testing the mobile app across multiple mobile devices, each of which might be of different screen sizes and might be using a different operating system, and on top of all; mobility-related issues (ex. N/W, internet speed, etc) make mobile app testing tough. Challenges of Mobile App testing: 1. N/W connectivity: There are hundreds of mobile operators globally. Even the technology used by these operators is not uniform. Some operators use CDMA, some use GSM, etc. Mobile app testing has to verify the functioning of the mobile app across these operators and technologies. 2. Mobile OS: In general, it is difficult for the same mobile app to run on a mobile OS. Thus mobile apps are of different types: Native, Hybrid, Cross-platform, the web, etc. Mobile app testing has to ensure all versions of the app across the operating environments work without any glitches. 3. Mobile Devices: There is a flood of mobile devices in the market. Thousands of manufacturers across the world and each manufacturer have many device models. Mobile app testing becomes a huge challenge in such an environment. These are just a few of the unique challenges in Mobile App testing. In order to overcome these challenges and make mobile app testing a success we should take care of the following 5 points: 5 Key Points to Successful Mobile App Testing 1. Do mobile app testing on the cloud The cloud creates a mobile environment online on a simulator. This allows for a huge number of scenarios to be tested. Any other way of testing would have a limit on the number of scenarios that can be tested. The cloud is able to create various operating environments virtually. The mobile app can then be installed in these environments and testing can be performed. The cloud also provides an unlimited (scalable) amount of space for storing testing data. Most companies struggle because it is financially unfeasible to arrange for all the operating environments, devices, etc to be arranged physically. The cost of setting up such a lab is simply too huge. With the cloud, you can get operating environments on demand. 2. Choose a combination of Physical Devices & Emulators for Mobile app testing As was briefly discussed in the earlier point, physically arranging all the devices is a huge cost. But the alternative of only using emulators is also not practical. Emulators are not always available for all devices. So what is the solution to this conundrum? Let’s first understand what an emulator is. An emulator is software that allows for different environments to be created for the mobile app to be tested. There are many types of emulators: 1. Device emulator: The device manufacturers generally provide their own emulators. This is beneficial from their perspective. Device manufacturers generally want their devices to support most mobile apps. 2. Browser emulator: We also have browser emulators. The purpose of browser emulators is to create browsers virtually for mobile app testing. 3. Operating system emulators: There are many operating systems for mobiles. Amongst the various operating systems, the most popular ones are Android, iOS, and Windows. There are emulators which mock the operating systems. Though there is a wide variety of emulators available. It is just not possible to create all the combinations of real-world scenarios on an emulator. Many OEMs, for example, bring in part of their own software to the operating system. The operating system might be Android or iOS, but because this system has a combination of code from the OEM it may not be possible for the emulator to re-create this situation. Similarly, N/W conditions in the real world are so worried that it is again impossible to re-create them via an emulator. Hence it is suggested to have a combination of emulators and physical devices for mobile app testing. Emulators are especially very useful in the initial stages of the development of a mobile app. This proves very useful for software developers. Physical devices should be brought in at the later stages of development. 3. Develop special mobile-centric test cases The test cases that are to be developed for testing mobile apps should be specific to the mobile environment. Let me show some such situations that will likely happen only in a mobile environment: 1. Mobile handing off from one network to another: it can very easily happen that the mobile moves from the coverage area of a particular switching station to another. In this situation, it would be a change in connectivity or a temporary loss of connectivity. Mobile applications should be robust enough to handle such a situation. 2. Mobile running low on battery: Mobile phone (especially today’s smartphones) uses a lot of battery. It should not happen that mobile app contributes to battery usage disproportionately. Research has shown for example that the Facebook app uses a lot of battery. 3. The memory is running very low: The mobile phone has a much smaller storage space and it is common for the memory to be very close to being utilized. The mobile app should ideally be able to handle a scenario in which it doesn’t have enough memory space. These are just some of the mobile-centric scenarios. While doing mobile app testing is it paramount that all the mobile-centric scenarios be included as part of mobile app testing? 4. Automate your mobile app testing: The benefits of automation testing are numerous. Ideally, all repeated test cases should be automated and only new ones should be tested manually the first time. Automation saves precious tester time which can be then utilized to increase the test coverage. It also reduces the dependency on human resources. Also, human error can be reduced by automation, leading to a more robust system. 5. Test the performance of your Mobile App:  The mobile is a compact device. Also, mobile usage is very high compared to a personal computer or a laptop and

Cross-platform mobile app development – Truth vs Hype

Cross platform mobile app development – Truth vs Hype

Let me relate to your conversation which I was recently having with a client on Mobile app development. This same conversation repeats each time there is a discussion on Mobile app development. It relates to the type of mobile application that should be developed. There are 2 completely distinct types of Mobile applications: Native & Cross-Platform. Between these 2 distinct types are some intermediate types of applications: Hybrid & Web. In fact, Web apps may not actually be mobile apps in the traditional sense. Given a choice, IT decision-makers (I mean people who are responsible for the P&L statement and not technology enthusiasts) would always go for cross-platform mobile app development. The benefit is obvious, the same app works on all platforms and hence the effort in developing the app is a 1-time effort. Instead, if native apps have to be developed the same effort is to be repeated for each of the platforms. Why go for Cross-Platform Mobile App Development? So our conversation with clients (which are general with IT decision-makers), always starts with the client asking us, “What is the type of application you are suggesting for us?” Now no technology expert worth his salt will ever suggest a cross-platform mobile development over a Native app development. The native app performance will always outclass the cross-platform app (we will go into the reasons a little later). So that means businesses have to shell out that much extra in order to get more performance out of their mobile apps. And that extra would double, triple, quadruple, etc, depending on the number of platforms for which the app has to be developed. A workaround, to control the ballooning application development cost is the option of Hybrid apps. With “Hybrid apps” we can reuse up to 80% of the mobile application’s code. But again one cannot expect the performance to match that of a Native app. In order to explain this situation to our clients we generally show them the below graph, which summarizes the situation described above: Let us now clearly understand the different types of mobile apps: Native Apps: A native mobile app is developed specifically for its operating environment. The operating environment is the mobile platform (iOS or Android). Generally, these apps are developed using Java for Android and “objective – c” / Xcode for iOS. The main advantage of Native apps is their ability to integrate with the device’s hardware and software. This, of course, is on account of the apps being native. Because the mobile app is so integrated with your mobile system, it is able to unlock the full functionality of both the mobile’s hardware and its system-level software. Advanced user interfaces can be built on native apps which would allow double-tap, pinch-spread, etc. The screen itself can be very dynamic with Native apps, with lots of data flowing through it and getting frequently updated as well. The hardware components, in particular, come to life on Native Apps (camera, geolocation, etc). Hybrid: The hybrid app is defined by different people in different ways. In order to understand Hybrid apps we need to first explain HTML 5 or web apps. Web apps are essentially apps running on the mobile browser. Because they are running on the mobile browser, these apps are device-independent and platform-independent. They are in fact not apps in the traditional sense of the word because you won’t find these apps on the Android or Apple app stores nor do you need to install these apps on your phone. Development technology for HTML 5 apps is essentially the same as for desktop web applications. They are therefore easier to develop. They are also much easier to test given that you need not test multiple different versions. But the ease of development and testing doesn’t mean web apps are the panacea. Web apps still are unable to provide a great GUI experience. For example, multiple touches on the same screen simultaneously are not possible. The full power of the hardware cannot be unlocked. Another huge disadvantage is that web apps cannot work offline. A significant amount of data cannot be cached on the system for the app to be able to work offline. As a result of this security is also a huge headache for mobile app users. In general, using the generic cache to store user credentials (as is done for a web app) is an insecure way of dealing with important data. The workaround is to ask for login credentials each time the app is launched from the mobile and even in those cases where the app has just been sent to the background temporarily. Now that web apps are clearly understood we can move to hybrid apps. Hybrid apps essentially combine the features of Native and Web apps to provide an intermediate solution that is in – between a Native application and a Cross-platform application. Hybrid applications work on all platforms but with better performance than a web app even though they are developed using the same HTML 5 or JavaScript technology, because of the wrapper encapsulating them. This wrapper interfaces with the HTML 5 code and system-level code in the mobile. It essentially does away with the requirement for mobile apps to run on mobile browsers. PhoneGap also known as Cordova is a popular wrapper container. With a hybrid app, we can develop apps that can run on different platforms while not compromising performance. We can achieve close to 80% of reusable code with a Hybrid app and thus significantly bring down the cost when compared with Native apps. Cross-Platform mobile apps: Though many people regard Web and hybrid apps to be cross-platform. We think such a classification does injustice to apps developed using Xamarin, which are actually in the true sense of cross-platform mobile app development. Unlike Web apps, these apps are actually apps in the traditional sense and can be downloaded from app stores and can run offline. Also unlike Hybrid apps close to 100% of the code

7 Cloud Computing Security Concerns

7 Cloud Computing Security Concerns

Cloud computing security is probably the most important area of concern for most businesses that are evaluating a cloud computing strategy for themselves. “The Cloud” essentially provides the option of storing and processing data on a device that is externally located and may or may not be shared. The extent to which the processing & storage is being shared determines the cloud deployment model: Public, Private  & Hybrid.  However, in the purest sense cloud is a shared & external location for the storage and processing of data. Now because the data is externally located and also shared, naturally means that the risk profile of the data has increased.  But the increase in risk profile doesn’t mean that cloud computing is unsecure. In fact, given that most cloud computing service providers recognize the security risks of the cloud, they try to put in place time and effort to make their service offerings completely secure. Because of this concerted effort in this direction, it may actually be the case that your data may be more secure on a cloud server rather than on your office premise. So it goes without saying that all service providers are making effort in making their cloud secure. But it also remains a fact that cloud computing increases the risk profile of your data and as such all businesses should recognize these concerns and try and evaluate their cloud provider on their ability to address these concerns. With this blog, we attempt to explain “Gartner’s 7 cloud computing security concerns” and also prompt the questions that should be posted to cloud service providers in order to evaluate their security: Gartner’s 7 cloud computing security concerns 1. Privileged user access The cloud takes your data physically away from you. You are no longer the custodian of your data. The custody of your data now is with the administrator appointed by your cloud service provider. It is this person or set of individuals who needs to be scrutinized before you trust your data with them. It is therefore essential to ask your cloud service provider for information on the people who will administer the cloud. There should be a mechanism by which these individuals are screened, evaluated, and appointed. Any service provider who is not upfront about its recruitment process and employee profile cannot be trusted with your data. 2. Regulatory compliance There are external auditors who scrutinize the cloud computing security measures of any cloud service provider. They are an independent source of information on the cloud’s security. Any service provider you are considering should be willing to go through such audits. In cases the audit has already been done, you should request for the audit report to be shared by the cloud service provider. In fact, cloud service providers should willingly participate in audits. The audit can showcase and certify the cloud’s security. 3. Data location Location is important from the legal jurisdiction standpoint. With the cloud, the data can be physically located anywhere. It depends on where the service provider is having its data center. Let’s suppose the data center is located in a place where the legal system is lax. In such a situation the cloud service provider can escape prosecution, in case it is complicit in knowingly or unknowingly compromising the security of your data.  To avoid such a situation you should request your service provider to keep your data in a location that you are comfortable with and also execute proper agreements with your service provider which will force it to abide by the rules & regulations in the location. 4. Data segregation The cloud in its purest form (public cloud) is shared between organizations. There are ways in which the data can be segregated from each other. It is important to know the ways the service provider is ensuring the data is segregated. Encryption is one such way. However incorrect encryption can almost make the whole data set unusable. 5. Recovery Generally, cloud service providers replicate the data on at least a couple of locations. This is a way to ensure that the data can be recovered from a separate location due to any accidental loss. Any service provider who doesn’t back up the data is an immediate red flag. You should, therefore, request your service providers for information on the places where your data is getting backed up. If in case your data is not getting backed up, you should discontinue working with that service provider immediately. 6. Investigative support There are various ways in which data security can be insured on the cloud. You can do deterrent control by warning users of the consequences of stealing your data. The largest subset of deterrents is preventive control, like with the point we discussed on screening administrators. Then there is detective control by using techniques to monitor intrusion attempts. Finally is the question of corrective control, for which you need investigative support. Once you have suffered any data breach, investigative support enables you to find out the problem and limit its loss or prevent it from happening again. Your cloud service provider should ideally be under contractual obligation to co-operate in any investigation as and when required by you. 7. Long-term viability You should also spend the time to investigate the market and financial standing of your service provider. It should not be such that the provider is a newbie in the market with nothing to lose. If such a provider sees a sustained cycle of financial distress it is likely to fold and leave you high & dry. Also, the service provider should have deep pockets to withstand a sustained period of stress. Need help with Cloud? Reach us at mktg@inapp.com or Contact us

Mobile Test Automation Tools

Mobile-Test-Automation-Tools-1

Mobile users around the globe have increased exponentially. As per studies, it’s going to be much higher in the coming years, this means that people are going to use internet services from basic internet surfing to banking, shopping, etc from their mobile devices and we all can agree that even without any study because we all must have felt that trend in recent times. As part of this trend, every company is now looking toward developing its own mobile applications. 1000’s applications are released every month and what makes an app stand out is its quality, and when we talk about quality, ‘Testing’ plays an important role in making an ordinary application a high-quality user-friendly one, and choosing the right mobile test automation tools can be a challenge. Testing is not an easy job either, it is a complex, resource-intensive, and time-consuming one. This is why choosing the right testing tool is of at most importance. Through this blog, we are trying to help you with the decision-making process of choosing the right Mobile Test Automation Tools. Mobile Test Automation Tools Mobile devices are less accessible and less open than standard desktop environments or web-based applications and this makes automation a bit challenging. Appium Appium is an open-source project for test automation. It’s a native, mobile web, and hybrid application on iOS and Android platforms. It supports native, hybrid, and web apps. More Information: Appium SeeTest It’s a cross-platform solution, the same script runs on different devices. Facilitates test to run on several devices concurrently. It records on real devices. It supports Android, iOS, Blackberry, Windows Phone 9, and Symbian. More Information: SeeTest UFT UFT (Unified Functional Testing) software. UFT provides functional and regression test automation for software applications and environments. UFT is primarily used for regression, service, and functional testing. UFT can be used for enterprise quality assurance. It supports keyword and scripting interfaces. It also features a graphical user interface. TestComplete TestComplete is a functional automated testing platform developed by SmartBear Software. Tests can be scripted, recorded, or manually created with keyword-driven operations and used for automated playback and error logging. It can be used to create and automate many different software test types. It supports Web, Android (operating system), Microsoft Windows, and iOS applications. More Information: TestComplete Robotium Robotium is an open-source tool for Android UI testing. It’s used mainly for automated black-box UI tests for Android applications. It supports web, native, or hybrid mobile applications. Calabash Calabash works well with Ruby, Java, .NET, Flex, and many other programming languages. Calabash is an automated acceptance testing framework. It supports native and hybrid mobile apps. iOS-driver iOS Driver utilizes Selenium and the WebDriver API for testing iOS mobile apps. It is designed to run as a Selenium grid node, which improves test speed as it enables parallel GUI testing. It supports all IOS native, hybrid, or mobile web applications. Selendroid Selendroid doesn’t require any app-code modifications. Tests are written using the Selenium 2 client API. It supports Android native, mobile web, and hybrid applications. Frank It’s an iOS-only test framework combining Cucumber and JSON. It also includes an app inspector called Symbiote, which helps you to get detailed information on your running app. Frank is most suited for emulators and web-based apps. iOS UI Automation iOS UI Automation tool can be used to automate user interface tests for iOS apps by writing test scripts. Through automating tests of UI interactions, you can minimize procedural errors & shorten the time needed to develop product updates. UI Automator It creates functional Android UI test cases to test your user interface (UI) efficiently. Mobile app development and testing tools continue to be developed at a rapid pace and I will be updating them here, so keep checking again for more updates. Also, don’t forget to use our Free Mobile Automation Testing service. MonkeyTalk MonkeyTalk is a complete functional test platform for iOS and Android apps. The scripts use simple keyword syntax and Ant or Java execution engines. It supports native, mobile, and hybrid apps, real devices, or simulators. Need help with Mobile Test Automation? Contact us now!

How do Mobile Web Testing Tools help the Testers?

9-Online-Mobile-Web-Testing-Tools-2

Mobile technology has over the recent years shown remarkable growth and has evolved to become a multifunctional device that not only communicates, but helps us learn, earn, and have fun. Technology is advancing rapidly and people are now inclined toward high-end smartphones, tablets, and other mobile devices. Though Android and iPhone are the most preferred platforms for application builders, the Mobile Web platform is gaining momentum. We see some of the leading organizations are increasingly using the mobile web as a platform to reach their consumers. A typical conversation heard in a mobile app development center: Manager: Could you please assess the quality of our mobile web application in the brand-new iPhone series? The customer has reported a few vulnerabilities in the performance aspects. Tester: Oops!!, we haven’t procured those device series so far and have not yet identified the right tool to cross-check the same. The above concerns raised from both sides happen in a large number of mobile web application development centers. Device fragmentation, screen resolution, processing power, etc makes mobile testing very challenging. Having all devices handy is not a practical solution due to the cost; also upgrades and new devices get released frequently. In this article, I would like to touch upon a few mobile web testing tools for testing your site on mobile devices. These are basic web-based emulators, which allow you to check your site on an emulator’s mobile screen. Mobile Web Testing Tools Dynatrace The Dynatrace mobile readiness test evaluates how well your website will perform on a mobile phone. The tool provides detailed reports on Response-Time, Content analysis, Industry comparison reports, etc. Each report provides a score based on an in-depth analysis including suggestions for fixing the issues identified. Price: Free Link: Dynatrace MobiReady The mobiReady score represents how well a particular web page will do across the spectrum of mobile internet devices. MobiReady provides a score between 0 and 5 scores, with 5 being the top and 0 being the least. If a web page scores high on mobiReady the application will be capable of providing a greater extent of user experience on diverse mobile device types. Low-scoring webpages indicate that they might be slow to load, of poor application design, or incorporate components that will crack the user experience on mobile devices. Price: Free. Link: MobiReady W3C mobileOK Checker The W3C validators are hosted on server technology donated and Hewlett-Packard and supported by many more community donations across the globe. This checker performs various tests on a web page to determine its ease and level of mobile-friendliness and usability factors. A web page is certified to be mobile-friendly when it passes all the tests.W3C primarily assesses basic interoperability, usability, and efficiency, and is based on the WS3 Mobile Web Best Practices. It supports various validations such as Validation by URL, File Upload, and Direct Input. BrowserStack BrowserStack provides web-based browser testing with live interactions and a screenshot check facility. It helps to fast access remote browsers, developer tools, and live testing. BrowserStack has a wide collection and access to official mobile emulators distributed across different platforms such as Apple iOS, Android, and Opera Mobile. You can test and analyze your site over a large extent of devices. Since the application is paid, we can perform a responsive test on various devices free of cost. BrowserStack provides a free trial option for 30 minutes of live testing. Price: Plans start at $19/month Link: BrowserStack Perfecto Mobile Perfecto Mobile is one of the leading mobile cloud platform services which provides competence for Mobile Monitoring, Performance Testing, and Test Automation. Perfecto Mobile’s MobileCloud platform facilitates you to associate with real mobile handsets and tablets which are connected to live mobile networks distributed in different geo-locations. It grants you to analyze your test and monitor the processes on each handset and establish the ideal compatibility of your site, application, or service. Screenfly Screenfly allows you to view your website on a collection of device screens and resolutions. It contains various platforms simulators such as Desktop, Tablet, Mobile, and Television as well. All you need to do is to enter the URL and click on GO to get started. Price: Free Link: Screenfly Mobile Phone Emulator This emulator permits you to see your site on a mixture of mobile phones, including Apple iPhone, BlackBerry, HTC, LG, and Samsung. The Responsinator The Responsinator assists you rapidly in getting an indication of how your responsive site will be viewed on the most popular devices, such as Android, iPhone, and iPad. Price: Free Link: The Responsinator Matt Kersley’s Responsive Design Testing This is an addition to the responsive web design testing toolset… Test your site in several widths at the same time. All you need to execute is that, enter the URL into the address bar to test a unique page. Price: Free. Link: Matt Kersley’s Responsive Design Testing Conclusion This article is about the usage and peculiar features of a few handy tools which help mobile web development centers, resolve some of the technical and design hurdles. As you optimize your code for specific devices, it changes the functionality of others. All of these different renderings and interpretations are not to be considered bugs (well some are) but instead features of the device. This might seem like a major issue to developers and designers stuck in a pixel-perfect world, but in real-world scenarios, these contrasts are acceptable, even expected. Not all phones are created equal, it varies in screen size and resolution, installed fonts, colors, HTML and Javascript support, etc. So the best you can do is present the best, most extensible, equivalent design you can which does not mean identical. This is where testing is key! The sooner you accept the above-mentioned tools, the best quality can be ensured while releasing a mobile-friendly web app. Testing is a critical part of any web development process, but especially so for mobile devices due to the various scope of devices and capabilities. Need help? Contact us now!

Selecting the Right Mobile Test Automation Tool

Mobile Testing Tools Selection Criteria

Right Automation Tool selection is like finding the right ride for your journey. If you choose the wrong one, it will make your journey miserable. Automated testing is the backbone of mobile testing. This is more so in mobile testing than web testing, because of the shorter release cycle of mobile apps. The rise in popularity of agile development, continuous delivery, and DevOps is giving further impetus to mobile test automation. The success of mobile testing automation is dependent on the choice of tools. Let’s look at the main criteria for mobile test automation tools selection License cost The license cost of the testing tool is a major factor that can result in a go or no-go decision. There are several free and paid tools available in the market. In general, the market is dominated by free tools. The free tools are able to cover the basic functionality requirements. However, as you move up the testing complexity and volume, not all free tools are able to handle the complexity and volume. It can also happen that you absolutely require a particular functionality that is available in a particular tool. So the decision should be based on both the license cost and your requirements. Can be used by non – programmers Before selecting the right tool make sure the automation tool provides a good amount of inbuilt libraries by which the tester can easily automate the test cases without the tester knowing a lot of programming. Learning Another challenge in selecting the right automation tool is its ease of use. If you are picking a tool that is complex and needs a lot of time to learn, then it may affect the project completion time. A tester would be tied to his computers all day long learning the tool and as consequence doing unproductive work. The short learning curve is, therefore, a must. OS support This is another basic criterion to be considered while you make the Selection. The tool must be able to support different Operating systems in the market both established as well as new (like FirefoxOS).If you fail to select the automation tool which supports all major Operating systems, then you may end up running an automation testing suite on different platforms using different tools. This could lead to more cost, more effort, and less output. Integration Mobile Test Automation can’t be executed in an isolated environment. Mobile testing tools have to be integrated with Build Management and Release Management Tools. It is important for the Automation tool to be in sync with the existing Release and Build Management Tools. Define Test Automation Requirements like Test Cases that are to be automated belong to which category: Desktop Application tests, Unit Tests, Web Based tests, Web Services tests, DB tests. Mobile Testing Tools Selection depends a lot on what kind of tests it is expected to automate. Automated Test Scripting Scripts are very important when performing automated testing and you should consider the automated software testing tools which provide scripting capabilities while selecting the Mobile Automation Testing Tools. Additional features to be considered: Object identification methods Gesture Support Language used Support for Internet Browsers Record and playback mechanism Support for Cross-browser tests Reports Need help? Contact us now!

Everything you need to know about Scriptless Test Automation

Scriptless-Test-Automation

Most often, product features are required to be deployed to production frequently, rapidly, reliably, and without any downtime. In the DevOps approach, the time span between code commit and deployment to production is quite short, maybe within an hour. This makes test automation quite challenging. The existence of a framework may not suffice to meet the rapid pace at which software is developed and released. This article talks of a solution to this problem; an approach to building a test automation layer that helps automate test cases by using reusable, ready-to-use functions/keywords. An approach popularly known as Scriptless Test Automation overcomes the issues mentioned above and benefits organizations at the earliest stage. To know more in detail about scriptless test automation we should first understand the limitations of script-based test automation. Limitations of Script-based Test Automation Test automation based on scripting/record and playback is mainly performed on the UI part of the application. Some of the limitations of this approach are” Requires programming skills: A non-technical person will take time to learn/acquire the skill of the script since the scripts are developed using tool-specific languages. Since UI automation heavily depends on the UI components, scripting can start only after all the UI components are created, adding to the delay in keeping at par with the releases. Script creation by different people across different areas may result in variation in the coding style, resulting from higher effort in maintainability. In modern methodologies like Agile, DevOps application codes are committed and built frequently and the changes in UI may break the automation code. The team will need to work on updating the scripts more than working on new areas, thus creating more lag. Projects relying heavily on automation will require a large team to develop/maintain scripts to meet the frequent changes in the environment, application, etc. Script-based automation is always generated by keeping the technical person in the mind. This makes it difficult for others to understand and provide feedback to improve test coverage. Above all, there is a chance of the focus getting diverted from the main purpose of testing, i.e to find regression issues, to fixing script issues. What is Scriptless Test Automation? A simple definition for scriptless test automation would be “an approach to automate manual test cases without creating new scripts in any tool-specific language”. The key highlight of this approach is that it can be used by non-technical users also. It uses already developed scripts – “Keywords” to build up test cases for the automation run. These keywords will be the most commonly used actions like – “Enter Text”, “Click Element”, “Select Option” etc, and can be easily used to build up a suite of test cases. Point to note: Scriptless does not mean script-free. The scriptless approach creates a wrapper that hides the tools and technologies used. Testers do not need to bother about the languages compatible with the tools used for automation. There is a myth: A good framework that contains reusable functions is the same as scriptless testing. However, the scriptless approach is a superior form of a framework that creates a wrapper that hides all complexities of script-based automation. Scriptless test automation needs to be designed by an expert who utilizes experience/expertise to create an optimized set of keywords. Most commonly used arithmetic calculations like finding the average, calculating interest, file operations like reading/writing from/to excel/CSV/plain text, etc, database operations like establishing connections to different DBS, fetching data, etc are converted to keywords and kept ready before the application is ready. This will reduce the automation time and enhance ROI right from the initial stages of implementing test automation. The time taken to fix changes in UI would be lower than in the traditional approach, as all the assets used for automation would be stored in a repository. A change made at the repository will reflect in all instances that utilize the asset. In a scriptless approach, stakeholders can be involved in the initial stage itself and provide appropriate feedback to ensure the test focus is correct How to implement Scriptless Test Automation Following are the steps to implement scriptless test automation Select a well-established framework like Robot Framework, Cucumber Identify the most commonly used keywords Create a central repository that defines assets used in keywords. It can be an XPath / CSS path of elements used in keywords. It can be a key-value pair Keys should be unique and aptly named so that even non-technical persons should identify the asset used Create a global file that defines the custom values(variables) used in keywords. Values to be entered in text fields, selected in the select box, etc. It can also be a key-value pair Same as above, keys should be unique and identify the purpose of the value being used Create scripts for identified keywords Keywords should be created in the English language which is easy for everyone to understand. Keywords should be group-able to create user-defined keywords. Advantages of Scriptless Test Automation Easy to use: Since the keywords are like English words Initial implementation time is greatly reduced: Most of the common keywords are available in global files. The tester then needs to only mention the values for assets and variables. With a lesser number of resources, the desired level of automation can be achieved Suitable for Agile and DevOps methodologies: the Scriptless approach can cope with rapid changes and delivery models. ROI seen at the early stages Need help? Contact us now!

4 Best Mobile App Testing Strategies

4-Best-Mobile-Application-Testing-Strategies

Mobile app testing is a relatively new field and so it’s still undergoing changes. This is why many companies are still struggling to put in place a comprehensive mobile application testing strategy. With this blog, we bring out the 4 main challenges to mobile application testing and suggest mobile application testing strategies to tackle those challenges. Delivering a positive experience to the consumers from your mobile application can help elevate your brand. On the flip side, a buggy application can do permanent damage to your brand. Releasing your application without proper testing is like jumping off a cliff without a parachute. No one wants to use buggy applications. Chances are you won’t even hear from your customers again if you provide them with buggy applications. Challenges in Mobile App Testing A lot of Devices The number of new devices & manufacturers has gone over the roof. Different mobile devices are flooding the market. Every mobile app developer wants to support as many devices as possible, but it’s a huge challenge to satisfactorily test the app on each of the devices. Operating Systems Different OS varies greatly in their processing speed and memory size, so even if your device’s response time and overall performance on one OS are great, it won’t be the case when you use another. This is also a never-ending challenge because new operating systems are entering the market (like FirefoxOS). There is a need to ascertain app performance in each of the operating environments. Network There are over 400 mobile network operators in the world. The majority of mobile applications depend on network connectivity to work and it significantly affects mobile applications. Testing on all the possible networks is physically impossible. Short release cycle Unlike web applications which generally have annual releases, mobile application versions have a much shorter release cycle. Each of these versions needs to be tested properly prior to release. Following the whole manual testing exercise each time a new version is inefficient and ineffective. The problem is further extenuated with agile development, continuous delivery, and DevOps increasing in prominence. Mobile App Testing strategies to tackle the above challenges A lot of Devices Testing on many devices adds greatly to the time and cost spent on testing. The best possible solution to this is to use emulators and simulators to run automated tests during the initial phase and include testing with a variety of physical devices prior to release. Operating Systems The best possible solution to this is to use tools that are flexible and can stand the test of the ever-shifting mobile development landscape. Choose a framework that allows for testing on a variety of platforms and languages; this also gives you the flexibility to evolve continually. Network Use any network simulation tools available, and test mobile apps against bandwidth limitations, network speeds, connection dropouts, and more. These network simulation offerings add exceptional value to the testing activities. Short release cycle We believe Automated Mobile Application Testing is the best solution! Automated testing can give developers the power to develop faster and more easily. The mobile marketplace is changing much faster than the web marketplace, and so developers need a way to continue to make changes and improvements to their apps as easily as possible. With Automated Testing, the speed of testing is much higher when compared to the slow and costly process of manual testing. Automated testing will complete the tasks in minutes which can take hours if you do manual testing. Verifying application compatibility with newly released operating systems becomes easy when we use Automated Testing. Also, if you use a cloud testing platform, you can scale your testing to fit your needs without the lead time needed to increase your local infrastructure. Another advantage automated testing provides is cost savings. Manual testing is expensive, but using automated testing can reduce your cost while increasing your testing capabilities. Need help? Contact us now!

Why does Mobile Testing Automation Requires Expertise?

Why Mobile Testing Automation Requires Expertise

Mobile testing automation is very a critical aspect of the software development process. With agile development, continuous delivery, and DevOps increasing in prominence, Mobile testing automation is now a necessity. But the criticality of Mobile testing automation is not just limited to enabling fast delivery. Its criticality of it comes from it now taking up the role of primary custodian of the quality of the mobile application. A leading customer experience consultancy did a very interesting experiment. The result of these experiments gives further proof of the impact of Mobile testing automation. The purpose of the experiment was to “explore ‘Web Stress’ in relation to application performance and its impact on consumer behavior and buying habits.” As part of this experiment users were asked to complete a transaction while the internet speed was throttled continuously. The result of the experiment showed that as the app performance came down during the lowering of internet speed, users developed a negative opinion of the app and the brand. It would be natural to expect a direct correlation between app performance and user perception of the application. However, the fact that app performance is actually affecting the brand should raise concerns for all organizations. Another study corroborates this fact. In this study, it was found that over 70% of respondents felt that the performance of a mobile app would impact their perception of the brand. And not just performance users are also looking for features. An app is not enough – even one that is always available – if it is simply an online catalog or mirror of the mobile site. Consumers expect a wide variety of features and services that engage, excite, and enhance their experience at the Zero Moment of Truth. Companies therefore continuously come out with newer versions of apps. The typical release cycle of mobile apps can be as short as a week. With this type of delivery timeline, companies can only fall back on automation. Therefore mobile test automation is taking up the role of the primary custodian of the quality of the mobile application and by inference the custodian of the brand image of the company. With the risk of the brand lying in the hand of the mobile apps, organizations can ill afford to treat mobile test automation with kid gloves. More and more organizations are looking for expertise in the area of mobile test automation and in many cases looking beyond their own organizational setup. Added to this is the fact that mobile testing automation is a fairly complex task. Challenges in Mobile Testing Automation The abundance of Mobile devices The Android Fragmentation Report 2014 states that there are 18,796 distinct Android devices (compared to 11,868 devices in 2013). All these Android devices differ in shape and size, with vastly different performance levels, screen sizes, and input methods with different hardware capabilities. To add to this, we have nearly 6 generations of IOS mobile devices, iPads, iPods, Blackberry, and Windows mobile OS devices. Thus, the challenge is to cover testing in all the devices used by a client. The different versions of Operating systems We have already listed a few Operating systems available in the market – iOS, Android, Windows Mobile, Symbian, Blackberry, etc to name a few. And each of these has different versions which add to the challenge. Even though the market has the latest version of OS many of the end-users might be using the older version of the Operating system. So testing should cover the latest and most used versions of the OS. Different Mobile App types A mobile app can be a native app, responsive web app, or hybrid app that has both contents. Testing of each such app type is different than another as their implementation is quite different from one another. A huge number of network providers According to a private survey, there are more than 350 network providers around the world. Each network provider may use different network standards and different kinds of network infrastructure. So the challenge is to test with the different network providers. The team should be aware of the region where mobile apps are to be used extensively. This will help to identify the major network provider in that region. Internationalization Similar to network provider information, the region where mobile apps are used will help to know the language, culture, etc. Apart from the mere translation of content –regional traits, time zones, and target audiences must be taken into account. In conclusion, it can easily be observed that given the risk to a brand that companies carry if mobile testing automation is inadequately implemented and also given the complexity of mobile testing automation, companies should and are looking for expertise in this area. Need help? Contact us now!

InApp India Office

121 Nila, Technopark Campus
Trivandrum, Kerala 695581
+91 (471) 277 -1800
mktg@inapp.com

InApp USA Office

999 Commercial St. Ste 210 Palo Alto, CA 94303
+1 (650) 283-7833
mktg@inapp.com

InApp Japan Office

6-12 Misuzugaoka, Aoba-ku
Yokohama,225-0016
+81-45-978-0788
mktg@inapp.com
Terms Of Use
© 2000-2026 InApp, All Rights Reserved