Monday, September 2, 2013

Testing Facebook feature in iOS application. (Old)

Facebook plays an important role in any application or game. It is a medium where you can share about your application or share content of your application. As a tester we have to make sure Facebook feature is tested properly.

Work flow of Facebook in any application is as follows

1) iOS 5.1.1 and below

a) Facebook application not installed.
On tapping share button in application Facebook log in pop up has to be displayed if SDK has been integrated else it should take you to safari web browser. After entering the credentials Facebook would take you to Request for Permission page to ask you if it should allow to access the application. On tapping allow it should open up the share message window where you can share the content If you tap on don't allow it should cancel and take you back to application

Step 1 - Login window

Step 2 - Request Permission for Profile
Step 3 - Requests permission for sharing

3. You can choose with whom you want to share the content of application. Tap on Ok.

4. Share message window would appear. Tap on share and it would get shared in Facebook. 

b) Facebook application installed and not logged in.
On tapping share button in application it should take you to Facebook application. After entering the credentials it should display Request for Permission page to ask you if it should allow to access the application. On tapping allow it should open up the share message window where you can share the content If you tap on don't allow it should cancel and take you back to application

c) If user has logged in to Facebook application and user taps on share content in his application then it should redirect directly to Facebook application to request for permission without asking for login 

d) If user has already allowed sharing content to Facebook then it should take you to Facebook application and should immediately take you back to application to display share message window.

Step 1 : Redirects to Facebook application


Step 2: Permission Page

3.  Redirects to application to display share window. You can see in the screenshot below that eBay uses customized share message window which looks much better than the normal share window of Facebook. 

2) iOS 6.0 and above

a) Do not login to Facebook in settings.
On tapping share button in application it should display a native dialog box informing that you have not logged in to Facebook in settings.

b) Login to Facebook from settings
On tapping share button in application a system dialog box has to be displayed asking you if it can post to your friends on your behalf.
- On tapping OK button share message window would appear and on tapping share, post would get shared to your Facebook timeline.
- On tapping Don't allow device would display an alert which would indicate that in future if you want to share any content from this application You have to enable sharing in Facebook of settings

Step 1: Request for permission.


Step 2: Share window to share the content.


Tap on Dont allow


Useful test cases.

1) Revoke permission of the application through browser and share.
On sharing the content, error message has to be displayed and it should allow to re revoke the permission

- How to revoke permission
Facebook -> Apps -> App Center -> Your apps -> Tap on clear button (x) of the app you want to revoke permission

2) Change facebook password of the user who is already logged in setting
On sharing the content in iOS 6, an alert has to be displayed requesting to enter the password. Tapping on setting should take you to setting screen to enter the new password.

Tap on share - This would display alert displayed in screenshot


Tap on Settings and change password. Return back to application to share the content again.


3) Delete the Facebook account
Error message has to be displayed in message window of Facebook window in iOS 5.

4) Timeout
Sometimes due to slow network it would take lot of time to post the content. A timeout alert has to be displayed if the content doesn't get shared.

5) Disconnect network and then tap on share
No internet connection dialog has to be displayed.

6) In iOS 5.1.1 and below you would get an error in Facebook message window and you will not be able to share any content. This is because of
a) You have revoked the permission and your application is already running.
b) You are not given access to post in Sandbox environment
c) Developer account in which you have created is deleted

7) General
Always have a sign out button in application for iOS 5.1.1 At-least if your Facebook is not responding you can log-out and then try it again.

Thursday, August 29, 2013

10 things you should never tell a tester

1. Testing career is much easier
Oh ya! wait i know its easy right! I just check with same screen 50 times a day. Fun right :/

2. Can you test it soon!
I ain't a superman to test it without opening the application dude!

3. I couldn't regenerate it. Can you tell me how did you find it.?
Oh please! i have written the steps!!! for god sake please read it.

4. I hope you will find all the bugs
Yes Sir, can you make sure you don't inject any bugs ?

5. Testing is not a real job!
F$$k you

6. Are you sure this was not in previous build?
Can you please shut up and fix the defect!

7. Simulator shows the output!
Does an end user use simulators? dumb ass!

8. Nobody in the world would do that!
Hey Man! do I look like an alien to you ?

9. Why do you stress the application so much?
Because I don't want my manager to stress me!

10. I test better than you!
Good! you can test it. It would be a great honor if you test it on my behalf

P.S
I never answer like this in real life :P 

Wednesday, August 21, 2013

Audio testing

Audio plays an important role in any game or application. What fun to play a game without listening to SFX and Background Music. I really love to play any game which has good soothing music and awesome SFX. Normally while testing a game in a work environment where playing loud music and audio is restricted, a tester normal fails to identify the bugs related to Audio. So better put a request for a good headphone or an earphone and start testing audio.

1) Button Tap:
- If your game supports tap sounds then make sure you tap on each and every button to check with tap sound.

2) Audio shouldn't be heard on the following scenarios
- Put the device to sleep
- Hit the home button: This will take the user to device home screen.
- Hit home button twice for iOS devices

3) iTunes music-related test cases
- Play music through iTunes and then launch the game: Music should continue to play and should mute the game background music
Please Note: Music should stop playing when using certain video/music applications. Check with the requirements team if you support playing iTunes music while using the application.
- Play music after launching the game by multitasking: Music should play and should mute the game background music
Note: It's better to have an iTunes music button placed in your game so that user can access iTunes through the game itself

4) Use side keys to raise and decrease volume:
- Side hard keys should respect the music and SFX of the game or application

5) Mute using the hard key (iOS): 
Audio shouldn't be played.

6)SFX and Background:
- Check if the SFX sounds are heard on turning it off.
- Check if the Background sound is heard on turning it off.
- Check by only turning one i.e SFX or Background music on or off.
- Hit the Home button and check if the settings are still saved. 

Thursday, August 15, 2013

No network connection testing

I have seen many testers not concentrating on negative test cases. I insist every QA to test for negative test cases first and then start with positive test cases. No network connection test cases are one of them. So things which you need to keep in mind while testing for No network connections are below.

Disconnect the Internet and launch the application:
On tapping any button ex: Sign-in button, No internet connection alert has to be displayed.
Please Note: Its not a good practice to display the alert as soon you launch the application. Display the alert only when you tap on any button. The only exception is when you are downloading any assets from the server.

Display timeout alert:
If your internet connection is very slow then you may observe in some application that activity indicator would remain in the screen throughout and the only way you can access the application is by relaunching the application through force quit. So it's better to display a timeout alert when downloading takes a lot of time. A good practice is to keep the timeout as 30 secs or allow the user to return back to the previous screen when the activity indicator is on the screen.

Check if the content is getting downloaded on connecting back to the internet:
Consider this example, you are on a screen and your WiFi gets turned off by itself. Now you receive a No internet connection dialog box as downloading of content was stopped. Now connect back to WiFi and check if contents are displayed on tapping the tab again or if the screen is reloaded.

Check if Game Center/Flurry data is updated after connecting back to the internet:
Developers have to make sure that they have to store data of Game center/Flurry when the user is playing in offline mode. When the user connects back to the Internet and checks Game Center application, data of achievement and Leaderboard should get updated. Similarly with Flurry events.
Check my other post related to Game Center in iOS
http://qualitytesting1.blogspot.in/2013/08/game-center-in-ios.html

Check for the content that requires server support:
Any content which saves data in Server shouldn't be allowed to edit while using the application in offline mode. Ex: Profile of the user

Thursday, August 8, 2013

10 things you should never tell a developer

1. What the f$$k do you code!! I am getting a lot of crashes.

2. When the hell are you giving me the build?.

3. You can never meet the deadline bro.

4. That other developer is much better than you.

5. I want this to be fixed now itself!

6. Get this button a few pixels below.

7. Change the background color a little bit lighter.

8. Can we make it real-time!

9. Let me complain about this to the manager.

10. I can code better than you