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.

Friday, December 5, 2014

Heuristic and COP FLUNG GUN -- Part 1

I have Heuristics given by testers from different geographical locations. I use them to identify to the test or what I perceive from outcome of the test using it. And, I often forget to learn this -- heuristic will not solve problem; it is tester who recognizes there is an unusual here or the usual or the consistency here with help of heuristic.

If this is very much right, then the Oracle never identifies the problem or unusual for itself. It is tester who identifies the problem with the help of an Oracle in the test. The heuristic and oracle helps in recognizing the information (which can be a problem or potential problem or not a problem); it won't identify or solve anything for itself.

For example, the tests done to diagnose if one is HIV positive or not, will not cure him. It may help doctor and test seeker to know the information.  The HIV test is one of the heuristic and the outcome of the test to which it is compared against and evaluated, is an oracle, here. But, it does not solve problem for the doctor and test seeker. It just helped to know the information. Solving or fixing the problem is in hands of test seeker and doctor using this information. That is, the same HIV test each time, the same result probably each time saying negative or positive or may be unable to diagnose.

On learning this, I understand, till to an extent, a heuristic can drive me. If I'm over dependent on the same perspective of heuristic, probably I will remain with the same ideas which I used earlier. With this, I learn, heuristic should help me in exploring further to identify more such heuristics. The more heuristic and oracles, I have, the better I can be prepared to approach and test.

For example, SFDPOT heuristic does not do anything. It is just an acronym for words -- Structure, Functionality, Data, Platform, Operation and Time.  It is me who does the action using the initiative given by word "Structure" in the context of testing.  Likewise, COP FLUNG GUN is useful as SFDPOT is. But both (and any) heursitic does nothing by itself. It is powerful enough when I identify and frame the tests to the context using it.

Are there any similarity between SFDPOT and COP FLUNG GUN ?  Has this thought come into me while I use the list of heuristics every day? I see the similarities in both and one is more specific to a context of mobile testing.

I will take an example of what I see in my practice. When the COP FLUNG GUN is used to assist the testing, I'm curious for the tests which get identified and frames to the context under each factors -- Communication, Orientation, Platform, etc.  Now, I see,

  1. COP FLUNG GUN gave me the help in identifying the factors of mobile handset, software of the mobile handset, operations of mobile, and the mobile apps.
  2. But it did not provide list of component in each factor and it cannot provide too
  3. Thought it provides, it might not be valid for all cases, hence it is heuristic
  4. Heuristic is effective when it is specific for the context of problem learning and solving, right?

What components I see in the Communication, now?  The obvious two stuffs that I happen to hear and see is -- Phone Call and Messages.  Are these the only two components in the Communication?

What the Communication is at all?

Thursday, December 4, 2014

Design Thinking and the UX: Compliments Each Other Parallely

Today morning, I was discussing with my friend. She asked, "Why is Design Thinking is being heard so much nowadays along with UX? I think it is testing practice, what you say?"

There is a common notion which I understand. Or probably, I get this one notion when I happen to learn by discussion and questioning with practicing programmers and testers. That is, Design Thinking is same as UX. I feel, in a very superficial layer it may appear to be so. But when I happen to digg around it, it is the two independent thoughts which exist to compliment each other. If they do not compliment, then it is more likely that there is a miss match in learning about the "Problem Learning" and designing the solution for it, which is the Design Thinking.

From this Design Thinking, I get to a solution which could be a Software Product. And now comes the UX in every other aspects here, right from the stage of Design Thinking to supporting the users in using the solution. This do not apply just for the Software Industry; it is also applicable where the problem is being learned and the solution is designed for it. It can be in Government which wants to open the Public Center as well.

I believe, the programming perspective is very important to tester. When I say this, I don't enforce it; but the perspective and practicing it, will help the tester surely and it will change the Testing perspective in terms of approaching. As this, I believe, the Design Thinking and UX practicing is also important. Because it is a solution which is places by saying this is the problem and it is solved by this and in this way.

To illustrate more on this,
  • Design Thinking about the tests to be brought into the testing
  • Design Thinking about the piece of program to be written for solving a problem
  • Design Thinking by Project Manager and team how to execute the project with available cost and value
These are probably day to day example in Software Industry. Likewise, each field has got its own way of identifying this. How the mother or wife or husband maintains the house with available budget by take care of each other in family? That is Design Thinking and each others in family will feel the experiences out of it.
It existed since long time when the race started to think about solving the problem and bringing in the solution. May be it is getting improvised and evolving with systems in meta system and the contexts around it by names or terms as this. Thus, emerging as an individual field of study.
To go ahead and trying to find the relativity, today the industries think about Customer Experience, yes not the User Experience; it is Customer Experience. All is same, just the targeted group is of different mindset and intent. Okay, going back into relativity, each small shop on the streets and pavements want to retain their customer while think about getting in more customers. Each news paper wants to retain their readers and they undergo and underwent changes. The politicians wants to retain their supporters. How?  They want to device the experience for their customers or targeted audience. This is possible when each and everyone in the organization or system, make the consistent attempt to get the design thinking thought what they want to accomplish and give out to intended audience. This is not the job of of just one who is seen as the big cheque or payment or share receiver in the company. It is the job of every other in company or system, who is seen as/assumed as/believed to be as big cheque or payment or share receiver to meager payment or cheque receiver.

I know how the programming perspective adds the value to tester, there is need now for every one another in a unit to practice Design Thinking and User Experience. Because, it is our solution that we sell as problem selling. Couple of month back, I was talking to my friends with whom I worked and few are from Sales and Marketing team. The sales and marketing team, wanted to know about the Design Thinking and User Experience, so they can incorporate right from the time sales approach when they happen to to approach the potential and actual problem holders, for selling the solution or the services.

As a company or service provider be it grocery or software solution provider or anything that expects the return value from service seeker, the innovation happens each and every time to retain at least the existing band and may be acquiring the targeted band also. If this is not considered i.e. Design Thinking and UX, then we may be learning problem but not actually in a way where we can see much more quick perspectives in the quick time.

You have your Visiting or Business Card or got the pamphlet printed? What it is? It is a product out of a Design Thinking to solve a problem (or may be create more problems out of it). Yes, it is a product of out of the Design Thinking. How the user receives it is just one aspect of the UX.