Sie sind auf Seite 1von 6

STeP-IN Testers Arena 2014 Contest 8

Ravisuriya | ravisuriya1@gmail.com 1


Task
Pick a mobile application supported on both iOS and Android platforms. Find out a scenario that crashes the
application. Feel free to come up with platform specific scenarios as well.

App Tested
Twaang 1.0.21
Platform: Android
Google Play URL : https://play.google.com/store/apps/details?id=com.twaang.app&hl=en
Latest Update: 17
th
July 2014

Tested on Device
Moto G | Android 4.4.4
Samsung GT-S5302 | Android 2.3.6

Network
Wifi: -45 dBm


Below written is the detail of the crash behavior of the app noticed during the touring of its features. The
audience of this bug report is Programmer.

Observation Records
Observed on: 18
th
July 2014
Reported on: 18
th
July 2014

Quality Criteria: Functionality
Severity: Critical

Tools used: Android SDK Toolkit



STeP-IN Testers Arena 2014 Contest 8


Ravisuriya | ravisuriya1@gmail.com 2

Observation Summary:
On terminating buffering activity in no network condition, the app crashes on navigating to Now Playing screen.
Steps to Reproduce
Prerequisite
WiFi or Carrier data network is available
Wifi is enabled in mobile device and connected

1. I opened the app.
2. I signed in with my Google account.
3. Navigated to Playlist screen and I tapped on WE RECOMMEND button.
4. Selected a playlist to play. Noticed a buffering message toast and it disappeared.
5. Noticed the playlist being played and I was taken to Now Playing screen.
6. I turned off the WiFi connection in device. I noticed the message Twaang is offline on screen.
7. On playing the buffered seek length of track, media player stopped playing.
8. After couple of seconds, I noticed a toast displaying buffering message with Cancel button.
9. I clicked on button Cancel and noticed nothing happening.
10. Navigated to Playlist screen and noticed empty screen as no WiFi connection.
11. Navigated back to Now Playing screen. I tapped on play button of media player.

Noticed the toast showing message Unfortunately, Twaang has stopped. Clicking on button OK, that instance of app
activity life cycle was killed and it opened a new activity life cycle. That is app got opened again in offline mode and said
unable to play as no network connection.

This crash does no bring much trouble in this scenario. But Im not sure what happens to subscribed user who can music
offline i.e. with no network as well. Will I be able to play music then when the app open up with new life cycle?


Screenshot


STeP-IN Testers Arena 2014 Contest 8


Ravisuriya | ravisuriya1@gmail.com 3



Reproducible: Consistently Reproducible
Device Specific: Looks like it is not device specific. It is reproducible on my two test devices.


Video of Crash
1. https://www.youtube.com/watch?v=TW0Ls_dH4gw
2. https://www.youtube.com/watch?v=wl7wtxgolQQ
3. https://www.youtube.com/watch?v=8LnjXerrcps


Log File
1. http://www.scribd.com/doc/237131753/Twaang-Android-Crash-Log


What is the impact?

Obvious impact for me (unsubscribed user)
1. There is no straight impact where I will lose any of data or information in the above described scenario.
2. I feel, Im misguided when there is no network by showing that Buffering message. Why the buffering
should happen when there is no network? I expected the app saying to me Unable to play. Check for
network connection.

Obvious impact for subscribed user
1. Im not sure about this as I havent subscribed
2. I have a test to perform for learning this. Will the subscribed user be able to play the offline tracks after this
crash?
3. I notice a NumberFormatExcpetion recorded in Now Playing screen when I stream a list. Im not sure why is
this exception.

Impact for business
1. Based on the impact to users described above and in other contexts of them, surely the business will have
impact. Especially with the subscribed users. What is the type of impact and cost of it has to be analyzed by
the stakeholders.
2. For me, surely the operational cost will come in from the impact to subscribed users.


Test Investigation

1. The log reads the crash behavior with termination of the activity life cycle. Below excerpt of the log file indicates
this.
08-18 20:29:49.937: E/AndroidRuntime(22383): at
com.twaang.app.player.NowPlayingActivity$RefreshAllWorker.doInBackground(NowPlayingActivity.java:1297)
08-18 20:29:49.942: W/ActivityManager(1064): Force finishing activity
com.twaang.app/.player.NowPlayingActivity
08-18 20:29:49.946: W/ActivityManager(1064): Force finishing activity
com.twaang.app/.startup.TwaangActivity
STeP-IN Testers Arena 2014 Contest 8


Ravisuriya | ravisuriya1@gmail.com 4

08-18 20:29:50.046: I/ActivityManager(1064): START u0 {cmp=com.twaang.app/.startup.TwaangActivity} from
pid 22383

2. It opens a new life cycle on acknowledging the forced termination of previous life cycle. The log file indicates
this. And it continues to be in offline mode with crash not being reproducible when navigated to Now Playing
screen on tapping. If tapped, it shows message saying cannot play as no network.

08-18 20:29:50.058: I/LaunchCheckinHandler(1064): Displayed
com.twaang.app/.player.NowPlayingActivity,wp,ca,238
08-18 20:29:50.461: W/System.err(22383): java.net.UnknownHostException: Unable to resolve host
"www.twaang.com": No address associated with hostname
08-18 20:29:50.467: W/System.err(22383): at
com.twaang.app.db.DBAdapter.txCommand(DBAdapter.java:105)
08-18 20:29:50.467: W/System.err(22383): at
com.twaang.app.db.DBAdapter.getPlaylist(DBAdapter.java:196)
08-18 20:29:50.468: W/System.err(22383): at
com.twaang.app.startup.TwaangActivity$ReconcileWorker.doInBackground(TwaangActivity.java:528)
08-18 20:29:50.468: W/System.err(22383): at
com.twaang.app.startup.TwaangActivity$ReconcileWorker.doInBackground(TwaangActivity.java:516)
08-18 20:29:50.754: I/LaunchCheckinHandler(1064): Displayed
com.twaang.app/.startup.TwaangActivity,wp,ca,601
08-18 20:29:50.754: I/LaunchCheckinHandler(1064): Displayed
com.twaang.app/.player.NowPlayingActivity,wp,ca,936 (total)
08-18 20:29:50.755: I/ActivityManager(1064): Displayed com.twaang.app/.startup.TwaangActivity:
+602ms (total +937ms)

3. The other problem noticed here is, the AlaramManager is being called for every second after this step. That is, it
indicates, there is an intent which is not being acknowledged. This intent raised for every second, is looking for
full filling broadcast service, which is not happening. Why the AlarmManager is invoked when there is no
network?
08-18 20:30:07.818: V/AlarmManager(1064): sending alarm Alarm{42964220 type 0 com.twaang.app}

4. Cross verified the intent initiation and noticed on terminating the buffering activity this becomes more
prominent. While there is network, AlarmManager will keep sending the intent, but the frequency was small
when compared to no network condition. This indicates, there could be flag not set for broadcaster for the
intent raised. This in turn consumes the battery unnecessarily.
5. The crash looks to be for not having the return data for background activity performed by the Twaang app in no
network condition. The log indicates this hint.

08-18 20:29:57.834: V/AlarmManager(1064): sending alarm Alarm{4291abf8 type 0 com.twaang.app}
08-18 20:29:57.881: W/System.err(23749): java.net.UnknownHostException: Unable to resolve host
"www.twaang.com": No address associated with hostname
08-18 20:29:57.883: W/System.err(23749): at
com.twaang.app.db.DBAdapter.txCommand(DBAdapter.java:105)
08-18 20:29:57.883: W/System.err(23749): at
com.twaang.app.db.DBAdapter.getAuthentication2(DBAdapter.java:1915)
STeP-IN Testers Arena 2014 Contest 8


Ravisuriya | ravisuriya1@gmail.com 5

08-18 20:29:57.883: W/System.err(23749): at
com.twaang.app.whatsnew.WhatsNewActivity$AuthenticationActivityWorker.doInBackground(WhatsN
ewActivity.java:595)
08-18 20:29:57.883: W/System.err(23749): at
com.twaang.app.whatsnew.WhatsNewActivity$AuthenticationActivityWorker.doInBackground(WhatsN
ewActivity.java:574)

6. The information about the Twaangs life cycle being killed is obvious from this log excerpt.
08-18 20:28:25.848: I/ActivityManager(1064): Killing 19414:com.twaang.app:remote/u0a89 (adj 11):
remove task
08-18 20:28:25.849: D/WhatsNewActivity(19889): TwaangService unbound
08-18 20:28:25.892: I/ActivityManager(1064): Killing 19889:com.twaang.app/u0a89 (adj 16): remove task
08-18 20:28:25.918: W/ActivityManager(1064): Scheduling restart of crashed service
com.twaang.app/com.parse.PushService in 1000ms

7. I notice the NumberFormatException on Now Playing activity thread is opened. Im not sure why this exception
was displayed. I do not have more clues except there was a background job was in progress looking for
streaming data. On analysis of the service threads I see, the app is trying connecting and sending data to Google
Analytics. While this is happening, the exception is fired and looks like it is handled but it has the effect when
moved to Now Playing screen.

The DEX is unzipped to open the new activity and this is obvious as the app is restarted on the crash and looks
this is handled via the programming of the app. This looks good for me because as a user I expect the app to in
foreground thread which I was using when it crashes.

08-18 20:28:57.755: W/GA-SERVICE(2146): Thread[Thread-164,5,main]: hit:_gmsv=1-5089036&ul=en-
au&sr=720x1184&ht=1408373644101&a=893730866&AppUID=10089&aid=com.twaang.app&cid=7d74
b8d8-c694-4f99-80ae-
8d53fcbbe8f2&av=1.0.21&v=1&t=exception&an=Twaang&aiid=com.android.vending&tid=UA-
41212736-
1&exd=NumberFormatException+%28%40NowPlayingActivity%24RefreshAllWorker%3AdoInBackground
%3A1346%29+%7BAsyncTask+%233%7D&_u=.E&_v=ma1b5&cd=com.twaang.app.whatsnew.WhatsNe
wActivity&qt=293651&z=2962
08-18 20:28:57.756: W/GA-SERVICE(2146): Thread[Thread-164,5,main]: hit:_gmsv=1-5089036&ul=en-
au&sr=720x1184&ht=1408373916930&a=1353461970&sc=start&AppUID=10089&aid=com.twaang.app
&cid=7d74b8d8-c694-4f99-80ae-
8d53fcbbe8f2&av=1.0.21&v=1&t=appview&an=Twaang&aiid=com.android.vending&tid=UA-41212736-
1&_u=.nUWlMB&_v=ma1b5&cd=com.twaang.app.whatsnew.WhatsNewActivity&qt=20822&z=2963
08-18 20:28:58.522: V/AlarmManager(1064): sending alarm Alarm{4294ab78 type 0 com.twaang.app}
08-18 20:29:00.601: I/ActivityManager(1064): START u0
{cmp=com.twaang.app/.startup.TwaangActivity} from pid 22383
08-18 20:29:00.999: D/dalvikvm(22383): DEX prep
'/data/data/com.twaang.app/cache/ads1947099298.jar': unzip in 0ms, rewrite 107ms
08-18 20:29:01.271: I/LaunchCheckinHandler(1064): Displayed
com.twaang.app/.startup.TwaangActivity,wp,ca,653
08-18 20:29:01.271: I/ActivityManager(1064): Displayed com.twaang.app/.startup.TwaangActivity:
+653ms
STeP-IN Testers Arena 2014 Contest 8


Ravisuriya | ravisuriya1@gmail.com 6

08-18 20:29:01.492: I/ProcessEventsCapturer(12874): Top activity changed. New activity :
com.twaang.app.startup.TwaangActivity
08-18 20:29:02.275: I/ActivityManager(1064): START u0
{cmp=com.twaang.app/.whatsnew.WhatsNewActivity} from pid 22383
08-18 20:29:02.512: I/LaunchCheckinHandler(1064): Displayed
com.twaang.app/.whatsnew.WhatsNewActivity,wp,wa,237
08-18 20:29:03.500: I/ProcessEventsCapturer(12874): Top activity changed. New activity :
com.twaang.app.whatsnew.WhatsNewActivity

8. My learning on how to mitigate this behavior from my investigation?
By avoid showing the toast which says Buffering while there is no network.
But, this will not solve the problem I believe. It will be just a work around to skip the crash. The fix has to
address the tests at least in two ways for start.
i. Having the toast which shows Buffering and on canceling, the open threads cycles and Twaang
activity life cycle should not be killed forcibly when navigated to any screens and for my actions
in these screens. This will be exercised in four conditions With Network, No Network,
Inconsistent Network and Low Bandwidth Network.
ii. Not having the toast when there is no network and exercising the open activity life cycle of app
and its threads in above said conditions.
Note: Please provide the details of fix and what is the problem. This helps in regression of the fix and for
app usage with this fix.




-- End of Report --

Das könnte Ihnen auch gefallen