Tuesday, February 25, 2020

Mobile GUI Testing Fragility: A Study onOpen-Source Android Applications

Mobile GUI Testing Fragility: A Study onOpen-Source Android Applications

Android applications do not seem to be tested as thor-oughly as desktop ones. In particular, graphical user interface(GUI) testing appears generally limited. Like web-based appli-cations, mobile apps suffer from GUI test fragility, i.e., GUI testclasses failing or needing updates due to even minor modifica-tions in the GUI or in the application under test. The objective ofour study is to estimate the adoption of GUI testing frameworksamong Android open-source applications, the quantity of modifi-cations needed to keep test classes up to date, and their amount dueto GUI test fragility. We introduce a set of 21 metrics to measurethe adoption of testing tools and the evolution of test classes andtest methods, and to estimate the fragility of test suites. We com-puted our metrics for six GUI testing frameworks, none of whichachieved a significant adoption among Android projects hosted onGitHub. When present, GUI test methods associated with the con-sidered tools are modified often, and a relevant portion (70% onaverage) of those modifications is induced by GUI-related fragili-ties. On average, for the projects considered, more than 7% of thetotal modified lines of code between consecutive releases belong totest classes developed with the analyzed testing frameworks. Themeasured percentage was higher on average than the one requiredby other generic test code, based on the JUnit testing framework.Fragility of GUI tests constitutes a relevant concern, probably anobstacle for developers to adopt test automation. This first evalua-tion of the fragility of Android scripted GUI testing can constitutea benchmark for developers and testers leveraging the analyzedtest tools and the basis for the definition of a taxonomy of fragilitycauses and guidelines to mitigate the issue Code Shoppy

One of the points of strength of the Android operating systemis the availability of several marketplaces, which allow devel-opers to easily sell the applications or release them for free.Because of the huge amount of apps available on such plat-forms, and the resulting competition, it is crucial for developersto make sure that their software works as promised to the users.In fact, applications that crash unexpectedly during their normalexecution, or that are hampered by bugs, are likely to be quicklyabandoned by their users for competitors [1] and to gather verynegative feedback [2]. Mobile applications must also complywith a series of strict nonfunctional requirements, which arespecific to a mobile and context-aware environment [3].In such a scenario, testing mobile apps becomes a very crucialpractice. In particular, it is fundamental to test the graphical userinterfaces (GUIs) of the apps, since most of the interaction withthe final user is performed through them.There is evidence that relevant players of the industry performstructured testing procedures of their mobile applications, alsoleveraging the aid of automated tools (for instance, Al ́egroth andFeldt documented the long-term adoption of visual GUI testingpractices at Spotify [4]). By contrast, it has been proved byseveral studies that open-source mobile developers rarely adoptautomated testing techniques in their projects. Kochharet al.[5] found that, on the set of open-source projects (mined fromF-Droid)2they examined, just 14% of the set featured any kindof scripted automated test classes; Linares-V ́asquezet al.[6]found that the majority of an interviewed set of contributors toopen-source projects relied just on the execution of manual testcases, even though a variety of automated testing tools (opensource or not) are available.Performing proper testing of Android apps presents a set ofdomain-specific challenges, principally due to the very fast paceof evolution of the operating system and to the vast number ofpossibleconfigurations andfeatures theapps must becompatiblewith. In addition to that, the development process for Androidapps is typically very quick, and the need for making the ap-plications available to the public as soon as possible may be adeterrent for developers to perform complex forms of testing.Mucciniet al.[7] stress the differences between traditional soft-ware and Android applications when it comes to testing them:the huge quantity of context events, to which apps have to re-act properly; the diversity of devices, to which the apps must becompatible; and the possible lack of resources for some devices



Mobile GUI Testing Fragility: A Study onOpen-Source Android Applications




Similar to what happens for web applications testing, auto-mated GUI testing of Android apps is also hampered by thefragility issue. For our purposes, we define a GUI test case asfragile if it requires interventions when the application evolves(i.e., between subsequent releases) due to modifications appliedto the application under test (AUT). Being system level tests,GUI test cases are affected by variations in the functionalities ofthe application (as it happens for lower level component tests),as well as from even small interventions in the appearance,definition, and arrangement of the GUI presented to the user.Fragility is a significant issue for Android application testing,since a failing test may require in-depth investigations to findout what are the causes of the failures, and entire test suitesmay need modifications due to even minor changes in the GUIsand in their definition. If that happens, developers may decideto not exercise any kind of structured scripted testing. In ourprevious work [8], we developed a small test suite (made of 11test classes) for K9-Mail3—a popular large-sized open-sourceAndroid mail client—and tracked the modifications that wereneeded by test classes to be executable on different releases.We found out that up to 75% of tests that we developed hadto be modified because of modifications performed on the GUIof the app. If scripted test cases were obtained through the useof Capture&Replay techniques, for some transitions betweenreleases, the entirety of the test suite had to be rewritten.In this work, we aimed at gathering information about ex-isting test suites featured by open-source Android applications.We extended the context of previous similar work (like the oneby Kochharet al.[5], who analyzed a set of about 600 open-source Android apps collected from F-Droid), considering allthe projects hosted on GitHub that contained proper Androidapplications and that featured a history of releases, for a to-tal of 18 930 projects. We identified six open-source AndroidGUI testing tools cited in available literature and producing testclasses in Java, and we searched for the presence of code writtenwith those tools in the mined Android projects. This way, wesubdivided the projects in six subsets, according to the testingtool they featured. Then, change metrics about the evolution oftesting code produced with a given testing tool were computedfor each project and averaged over the respective sets. In addi-tion to its evolution, we measured the relevance of testing codewith respect to the total production code for each project in termsof quantitative comparisons of the respective amount of lines ofcode. To estimate the fragility issue, we defined a set of metricsthat can be obtained for each project by automated inspectionof the source code. Thus, we can give a characterization and aquantification of the average fragility occurrence for each of thetesting tools considered.
https://codeshoppy.com/android-app-ideas-for-students-college-project.html 

Monday, January 13, 2020

Veterinary Medicine Engineering

 Veterinary Medicine Engineering

 
Android PHP Projects

Do cephalopods change colour when under distress? How to measure heart rate simultaneously on the three hearts of a oyster? This manuscript introduces and discusses the challenges veterinarians face daily when assessing and treating animals and the opportunities to overcome these challenges utilizing engineering tools. Modern veterinary allied to sustainable engineering will define a new specialty of Biomedical Engineering - Veterinary Medicine Engineering.

eCommerce Old Book Store Shopping with eWallet Android App

Android Smart Restaurant Management System in near-Field Communication

Android Operation Schedule Management System

iSearch Mobile App For Searching Lost Person

Android Blood Bank Availability Between Donors And Acceptors with SMS Alert

Rescue Wings: Android Computing And Active Services Support For Disaster Rescue

Online SMART BUSINESS - 1 Retailer 2) Distributor 3) Stockiest

Android eCommerce for Women Handicraft Shopping

e-Vaccination management System Android app

Soil With Suitable Farming Agent And Distributor Location Android App

Android App for online Super Market

Thursday, January 2, 2020

A Secure Cloud Computing Based Framework for the Blood bank

A Secure Cloud Computing Based Framework for the Blood bank


https://codeshoppy.com/

 

A blood Bank can be defined as a bank or storage place where blood is collected, preserved and used whenever needed or demanded. Everyone is aware that the traditional blood bank management system includes paperwork. Its way of working is not efficient enough at the time of emergency situations. The main aim of creating cloud-based blood bank system is to make the blood available on time to the people, even in emergency situations. With the help of this project, the user can be able to view information about every entity related to blood bank i.e. hospitals, donors, a location of another blood bank etc. The security factor is maintained properly. Every time the new user accesses the system as a donor, he/she has to register himself/herself and provide a proof of their identity like license or government document on which the blood group of the person is mentioned. This project will consist of the android application which can be used in the smart phones; it will contain all the information of the donor and nearby hospitals. The application will also contain a GPS (Global Positioning System) system to track the location of the nearby blood banks or hospitals. Every registered user will get the notification regarding health checkup drives, blood donation camps in particular area etc.

As the person did not need to go out far, for the search of the blood banks and hospitals, this application helps to save the time to a great extent. This also helps in correct and quick decision making. 

Blood contribute to 7% of total body weight, so to maintain the specific amount of blood in the body is necessary for a human to survive. Studies show that for every moment, to save their life someone needs blood [5]. Especially in the rural area the facility provided by the blood bank system is not appropriate due to lack of availability of information and amount of blood in one specific blood bank. 

The main idea behind the paper is, to improve the blood bank system working, management etc, with the help of cloud computing technology. The project provides a platform using which the information about the donor, its location, nearby blood bank etc are available for the requester requesting it. Location can be made visible to the user by the use of GPS technology [2].The paper includes brief information about working with the blood bank management system, its services and various technologies like cloud computing, android application, web technology etc.

 The entities involved in the cloud-based blood bank management system are as follows: Requester: The person who needs the blood from blood bank because of accident, disease, surgery etc. Donor: The person who is healthy enough to donate the blood to the blood bank for saving a person's life is the donor. The person having appropriate body weight, hemoglobin and no acute or chronic disease can become the donor. Blood Bank: Blood bank can be simply defined as a section of the blood bank where the blood is stored and tested, to reduce the risk at the time of transfusion The system Consist of an android application or website that the user can access. 

The system gives unique identification to its every user. This unique identification can help the user in future correspondence. The blood bank management system can update their information on daily basis. Administrator plays an important role in the system as he is responsible for collecting information about the donor, blood group and sorts them according to area wise and GroupWise respectively. All this information will be collected in the central repository and this center repository will be stored using the cloud. The requester can get the information about blood as per his need which will help them in emergency situations [3]. https://codeshoppy.com/android-app-ideas-for-students-college-project.html The problem may arise if the requested blood group will not be available in any of the blood banks. The requested amount of blood units will be made available to the requester from the blood bank [1].Cloud computing technology is used in this application because cloud computing is the latest and efficient way of server-based computing. Cloud provides good backup recovery, flexibility, and increased security. Cloud provides three types of service models namely: Infrastructure as a service model Software as a service model Platform as a service model

TECHNOLOGIES USED  
1.PaaS (Platform-as-a-Service) : It will be used for Developing our application on cloud platform.  
2.Ehcp (Easy Host Control Protocol) : It will be used for hosting our application.  
3.NoSQL : The use NoSQL is create and maintain database as it provides the mechanism of storage and retrieval of data. 
4.GPS (Global Positioning System) : It is used for tracking the location of nearby blood bank or donor.

The information collected from the blood bank and hospitals describe the working of the blood bank system. Blood cannot be produced artificially in the laboratory. Thus to satisfy an increased need of blood, blood collection should be increased. Various promotional activities are conducted by the blood bank and hospitals to enhance the donor to donate blood, as the amount of blood in the bank depends on a number of donors. Information like phone number, email, address etc is collected by the donor and stored after they complete their blood donation. The system that exists today is dependent on paperwork. To donate and receive the blood from the bank, the donor and receiver has to fill the form consisting of the basic details

To get started with our application user need to first download the application. Once the application is downloaded user will be provided with two options on screen. First is, log in and second is, sign in option. If the user is already registered, then he/she can go for the first option and login. If the user is using the application for the first time then he/she has to create an account by providing details like name, address, contacts, date of birth, blood group, and email id. The user has to upload his/her license or id proof on which blood group is mentioned. The user can anytime update his/her information. After registration is done the user can access the application, provided the user has internet access. Once the user is signed in he/she will be provided with various options like: Blood camp Search donors Search blood banks Request for blood Nearby hospital View notification Emergency contact details Just by selecting any of the options mentioned above he /she will get the information accordingly like information about blood camp, the nearby hospital, any notification etc. All the detail of the blood donor, hospital is stored in database. Security care is taken; the confidential data can only be access by the administrator. Data of each user is stored safely on cloud [5]. By using this application the user will not have to search for the blood in case of emergency and can directly get the detail of required blood donor by accessing this application.  

This paper proposed the reliable online cloud-based blood bank system. Latest technology and information system plays a vital role in blood bank system and its services, as its quality improves. The system is beneficial for both requester and donor too. Due to this System, the bridge between donor and the requester is reduced and their Communication improves. Thus, providing the requested blood on time to the requester, when needed. The health sector will be definitely benefited by the services provided by the system as patients safety and life is considered valuable[4].The purpose of the project is, sometimes patients life is at risk if the appropriate amount of blood is not made available to him
whenever needed. Even if blood units are present in the blood bank and the requester is not aware of it, then it is of no use. Code Shoppy This system prevents such situations, as every requester will be able to know about the blood bank and blood unit nearby. The GPS Technology will be used to make the nearby blood bank location visible to the requester. The database containing all information about the blood bank’s location, available blood group, donor’s information etc will be maintained and updated