Thursday, January 1, 2015

An existence way before I saw it !



I want to write the technical practices at which I'm failing and practicing. And the practices which I want to do for the betterment of my testing. Sometimes, I will get into writing as this as well because I want to challenge myself with what I'm seeing and interpreting about it.

This "Year in Review" app in last two weeks of Dec 2014 from Facebook gained inertia from FB users but it did not gain the momentum in field of Engineering to learn what it is -- technically and for the people who use it.  This is not wrong, it is right. Because, that is the way it is used. Until there is a way of figuring out other way of using it or accepting it, the same way will be used, more likely.

I do say 'yes' for words of Eric Meyer's in the way he see it. He is very right in that perspective. I do say 'yes' for words for who said "Year in Review" as spam. They are right because they happened to see it as spam. So, what's wrong in it? Nothing! I do say "Oh, yes!" for said it is a bug because that looks as a bug in that particular context for them. So it makes very logical at that instance of time.

While I do all this, I did not happen to learn what it is at all. For, Eric Meyer it was the design and how the algorithm picked photo irrespective of the context in which the photo was posted and sewing it as happy moments of the year.
But did it have customize option to remove the content and place the self picked and written content, at that time? That's the question which I want to learn. If it wasn't, then it is a bigger problem that any designers want to advocate for.  If there was an option to customize and remove and then add photo with content, then I see it provided an option. Parsing the technology data is easier and FB does that. But parsing the human emotion is not easier because we human's don't understand emotions of others. Then, how the algorithm written from a human can?
Where's the problem here if at all it exist? It exists way before FB saw to release this app and its users started to see it; while few started using it unhappily and happily.

I read this being addressed as Spam. Yes, it is spam if one see that way. But there are lot other spam with which one leaves everyday. It goes unnoticed and why this go so much attention? Did few accept it because someone said it and because someone said it should it be accepted? I believe, the UX team in FB would have exercised this app and survey would have gone for the analysis, way before it went out live. If not, this is something FB has to consider having the in-house UX team. Recently, when I met the VP, UX Practice for FB, we discussed and I learned how the stuffs get exercised there.  
Okay, what amount of its users considered it as spam while other as a source to express their joy with others? This is the number which might give different story for 'Spam' word attached to this app. Whatever, it way existed before one considered it as spam, because there were lot other which also have same attributes but used without labeling it as 'Spam' in FB. Isn't it?  Common life example, "Hi", "Hey!", "Good Morning", "What's up?", "Take Care!", "Good Day", "Good Night", should be considered as spam now because they appear from whom we meet whether we love or care for them or not. Isn't it logical? Then why this app got this label for appearing on screen. I need to learn this to help technology be better so I be happy.  This also hints, thought users are on FB since years, one might not have explored the inside of FB Settings with their account. And it is not logical to ask as well, because socially FB is not a technical product it is a social media. So, can I ignore it? That's the question at other level I want to educate myself and FB might have to think. Hopefully FB might not get into this though they send out a mail on update of their policies and technical changes to the policies.

Its a bug, an algorithm bug which did not understand what to add for saying "wonderful year of me". Can the friend or spouse who is living with me, can say, I had beautiful life for that day or for this years? May be or may not be. If yes, how consistent?  Expecting consistency from algorithm is reasonable but expecting algorithm to understand something I did not anticipate myself, is reasonable? That's the limitation of software and technologies. And, of human too but at that point of time only. Further she or he will learn and update self and technologies and way to use the product of technology until next bug is figured out.
In this view, it can be classified as bug. But, that does not help me to learn technology. This is the question which I ask myself when something I see or suspect as bug -- "When is this not a bug? Pick out the cases with claims technically, socially and contextually." I ask the same for fellow testers with whom I practice. Because, saying it is a bug is right, because it is annoying her/him. But, that is not the solution or solving the problem. If I want to say, I'm a tester, I want to learn "why it cannot be a bug as well, in first place before going with information and saying this is bug under this context." 
If it is a bug in a context, what was the design doing to avoid the problem or annoyance the user can face? That's the question I get and how well the users are learned to see this in the app. This takes altogether different survey for which FB has to spend dollars or may be million dollars. And it is up to them. And it is up to one who say it is bug for me or no harm in it.  Harm comes when both does not understand how to overcome with this.
It all existed way before, one saw and say it in the "Year in Review" app. It continues to be there as it is because I see same pattern of jumping into conclusion (from practicing practitioners and practitioners who have started to practice) before learning what it is. I feel strongly, one should be triggered why it is a bug and more importantly when it is not a bug from technical perspective. This helps to solve in quicker pace which is highly ignored in technical stream and studies. May be for this, there was a subject Operation Research in existence but still we do not apply it effectively in Engineering Operations or be any other operations.

To close it here, it is an existence way before I saw the comments as -- spam, bug and design flaw. In contexts, all these fits in and also none of these fit. I learn why it does not fit in, because it will help me to learn quickly and before thinking of solving it.  I request below to my fellow team members and practitioners.
"If you or your team member or friend said it is a bug or problem or anything that is troubling, think if adding one more question to it helps or doesn't. And the question is, when is this not a bug or problem or the annoyance? This is the wonderful gift as well which can be gifted, if asked so."

Monday, December 29, 2014

Heuristic and COP FLUNG GUN -- Part 2



Continuing from the previous post, I'm seeing what are the different factors in Communication to test and to automate.  In a brainstorm session, I got the below areas.  The below mentioned are apart from the call receiving and dialing, receiving and sending of the message -- text, multimedia, voice or whatever the message supports to send and receive.

I learn and see, these are the activities whose events bring in communication. When I say communication, I also see the communication as disturbance because it disturbs the ongoing activities of another active app(s) in the device.  For example, the disturbance to other app which is active in device and communicating.  I don't claim these are the only factors of Communication. These are the few which I was able to identify in a brainstorm session. As this, one can keep identifying and include it in test coverage and automation coverage areas.

  • Phone Call
    • Dialing
    • Receiving
    • Hold
    • Ending
    • Call Swapping
    • Conference Call
    • Unattended
      • Missed Call
      • Changing the system (device) state and ignoring call
        • Flight Mode
        • Mute off sound
        • Unmute 
        • Turn off/on vibration
        • Turn off/on indicators
    • Network interrupted call
      • Inconsistent signal transmission
    • Telephony Events and Notifications
  • Message (text, multimedia, voice)
    • Incoming
    • Outgoing
    • Notifications
    • Failure
    • Drafted
  • Bluetooth
    • Scanning
      • Manual Scan
      • Auto Scan
        • Scheduled Scan
        • Regular Scan
    • Receiving
    • Sending
  • Internet (WiFi and Network Carrier)
    • Switch of network signal
      • EDGE / 2G
      • 3G
      • 4G
    • Intermittent signal
    • Restricted Signal
    • Network/Signal Jammer
    • Upload Scenarios
    • Download Scenarios
    • Browsing scenarios
    • Other Apps Activities
      • Regular Interval Synchronization
      • Anti Virus and Enterprise App Synchronization
        • VPN
        • Restricted Network Channels
    • Client Server Scenarios
      • Restricted
      • Redirection
      • Timeout
      • Denial of Service
      • Payload
        • Processing by device and its resources
        • Processing time for app to keep communication alive
          • For example, transactions of amount via mobile banking apps
      • Platform Organization
        • Cloud
        • Distributed
        • One Store
  • System Calls
    • Alarm
    • Reminder
      • Meeting
      • ToDo
      • Tasks
    • Updates
      • Software Update
      • Scheduled update
      • Vendor Update
  • System Monitoring
    • Device Intelligence
      • Low Battery Interruption
      • Resource Shortage Interruption
      • Compatibility Interruption
        • OS and Device
        • OS, Device and App
        • OS, Device, App and Sensors
        • OS, Device, App, Sensors and related hardware and software
      • and many more upon building the heuristic list
    • Network Surveillance Interruption
    • Power and Discharge Interruption
    • Device not responding for any tap or interruption
      • During call
      • During transaction's request or response
  • Sensor Interruption
    • Gyroscope
    • Accelerometer
    • Compass
    • Motion Sensor
    • Light Intensity Sensor
  • Gaming Interruption
    • With association of above sensor
  • Hardware Support
    • Device support on different geographical network
  • Transfer of Files
    • On different USB modes
    • On different transfer modes
  • Manifest Permissions
    • Manifest not providing required communication permission
    • Revoked permission by device
      • aborted communication channels due to restrictions on launch of app or/and device
      • Geographical restrictions
  • Platform Library Integration
    • 3rd Party Library Integration
      • ODM's data or component being replaced by OEM's components
        • For example, default Android libraries being replaced by 3rd party vendor's SDK on particular device model
        • iOS platform can be approached on down scaling of device model i.e. installing latest apps on previous Apple devices
    • Compatibility with different version of pure native libraries of Android and iOS platform and the OEM's device
  • Device's Interpretation of Communication and Conveying to User

As this, I keep identifying the areas to interpret with tests which potentially can influence the Communication which is

  • existing and communicating
  • about to communicate
  • to start the thread of communication
  • the terminated communication thread

I will continue to identify them by several means based on the context of testing. In general, knowing and learning the Platform, OEM and ODM along with its associated system helps very much.  Now, looking closely into the above mentioned, I see Communication crossing over Network, Platform and other factors of COP FLUNG GUN. Further, understanding the architecture of the product and how technology is used to build the app, I will start isolating and narrow down much into Communication from and along with other factors of COP FLUNG GUN.

On the closing note, it is up to me for what do I bring in communication -- a phone call or a message. And both of these need Network and Platform assistance isn't it?  To keep it simple and structured, I believe, Network and Platform are seen as separate and individual factors here.  How I come up with tests and figure out the areas to automate using these factors which overlaps will be based on my Test Strategy for the context.

There are simple and yet handy tools which can be used to create events which will interrupt, disturbs and starts the new communication while a communication is happening. To end this here, I learn, communication is no more a phone call and text events in mobile devices; it is also a disturbance, noise and interruption to its very own system. And, the communication also exist within the device like the communication exist between the two or more devices.