Software Automation Testing of Mobile Applications
Abstract Software testing is an expensive and a standout amongst the most repetitive techniques in software development life cycle. Now a day’s companies are investing more time and resources on testing to make sure that the application is fully tested for best user experience. Automation of testing is a key thing for organizations who develop applications on substantial scale. This paper is focused on the latest automated software testing technologies used in testing the user interface of iOS and Android applications using a testing tool called Appium. Appium is an open source testing automation tool for mobiles
…show more content…
With the increasing use of mobile technologies testing has to keep up with the complexities. Automation is the efficient solution to this challenge, as it not only reduces the cost of entire process but also makes it quicker and efficient. This paper focuses on the need for automating testing for mobile technologies and also highlight the challenges involved in implementation. This paper details about the automation tool Appium which will give an insight in avoiding the challenges.
Most of the tools available for automating testing for desktops like calabash, KIF require an additional agent that needed to be compiled with application code as the tool cannot interact with the mobile application without those agent. For agents like these, libraries associated with them had to be removed at the time of submitting the app. Whereas Appium on the other hand doesn’t need any such sort of extra agents to be included in the original code there by completely changing the testing process in a much efficient way.
Appium has improved significantly over the time and constantly added up with new features. It has three main components Appium server, Doctor and Inspector.
Manual vs Automation
In my view here is how manual testing is different form automation, no programming can be done to write test cases in manual testing , where as in automation, testers can write the programs to identify hidden bugs and other missing information. Manual testing
Created test cases and test scripts for the inventory bar code reader, sale system terminals and customer invoice integrations from mobile application.
Setting up a usability test involves carefully creating a scenario, or realistic situation, wherein the person performs a list of tasks using the product being tested while observers watch and take notes. Several other test instruments such as scripted instructions, paper prototypes, and pre- and post-test questionnaires are also used to gather feedback on the product
Smartphone Pentest Framework (SPF) is another useful Android application tool. This application tool was created by Bulb Security. The Smartphone Pentest Framework (SPF) basically allows the user to access the security of other smartphones in the area. This application is a open source security tool and this application is designed to help users in assessing or evaluate the security in smartphones in the vicinity. It is basically created to target
The main goal of this project is to deliver one fully functioned app on IOS and Android platform within the given time.
Application Runtime: This is where a developer uploads his code and does not have to think about the underlying architecture, servers needed to provide different components, they handle them in a very scalable and highly maintainable multi tenant way that is from an operations point of view a developer has to adjust some knobs only to manage or scale his application, to increase or decrease web processes or manage background processes or need of another database or scale the current database, all these things a click away from the developer rather than any configuration or
Few, if any, companies and organizations can maintain productivity without utilizing applications of some type. Even mom-and-pop retail operations likely depend on applications for employee scheduling, tax preparation, inventory tracking and other functions.
Developers can test exhaustively with automatic testing at record-breaking speeds and minimal costs when compared to traditional testing. Testing on multiple devices isn 't a luxury in today 's environment of technical one-upmanship. Surveys show that manual testing has become less effective and more cost-prohibitive because it now requires developers to test their products on at least 134 devices just to cover 75 of the U.S. market.[3]
In current Mobile era, mobile computing and mobile applications play an important role in our daily life. mobile devices face the limited memory resources and low processing power of Mobile Terminals problems. For this reason, standard mobile application development procedure and deployment decisions are very important for developing applications for mobile devices. The widespread use of smartphones equipped with cameras, accelerometers and its 3G & 4G networks allows us to obtain precious data at a low cost. For mining large scale data from these small devices, efficient lightweight, robust and scalable algorithms, proper memory management techniques and capable design patterns are very important. To improve the application stability, reusability, maintainability as well as introduce software bugs free application, agile methodologies, architectural patterns, unit testing, standard automation testing procedure, standard documentation of the source code, various standard procedures of testing the whole application are also very important.
Android, the popularly used mobile operating system has so many sophistications which displays live contents and notifications directly on the home screen mainly accomplished with widgets and applications. Android being open source allows the users to modify the codes and applications and enrich them. This makes young developers much enthusiastic and lets them contribute to this open source[5]. Moreover Android 's source code is available for free by Google under the Apache License allowing the software to be freely modified and distributed[6]. It is also found that as in 2013, Android has the largest number of
2. Application Framework: This is the skeleton or framework which all android developers has to follow. The developers can access all framework APIs an manage phone’s basic functions like resource allocation, switching between processes or programs, telephone applications, and keeping track of the phone’s physical location. The architecture is well designed to simplify the reuse of components. Think of the application framework as a set of basic tools with which a developer can build much more complex tools.
Software testing is an important activity in software engineering, as it is used for examining the quality or capability of a software and conforms that it meets the desired output. There are several methods to do software testing, but testing a complex software efficiently is the process of investigating thoroughly, it is not like to follow a procedure or method merely. In complex software it is not possible to discover all the errors. In testing, this type of complex software always creates problem for tester and throws open questions like, “what would be the best strategy that we should follow?” Also, selecting a strategy is important decision as selecting right strategy will allow tester to work effectively and efficiently.
Application software consists of instructions that direct a computer system to perform specific information processing activities and that provide functionality for users. Because there are so many different uses for computers, there are a correspondingly large number of different application software programs. Examples of different types of software applications are Microsoft Office, Adobe, IBM Lotus, Novell, and Netscape.
There are numerous advancements in technology since past few years especially in Mobile technology. A great evolution has also been done in operating systems as well. Different Mobile operating systems are available in the market for smartphones which includes Android, IOS, Windows mobile, Blueberry OS, Symbian OS and many more. The most popular among all are Apple IOS but the newest and popular as well is Android. It doesnot only contains Operating system but also middle ware and key applications. It is the First Open Source Operating system. The OS of android is based on Linux Kernel and it was developed by OHA (Open Handset Alliance). An abstraction layer is provided by Linux kernel between Hardware and the rest Stack. Furthermore, Android SDK also gives the necessary APIs and tools in order to develop android applications using the java programming language. Special user interfaces of android exist like Android TV that for television channels, Android wear for wrist watches and Android Auto for cars.
The android application is solely built for end users. This application is the one which provides users the opportunity to monitor and control devices remotely.