Friday, May 31, 2013

How to manage Crowd Testing and Crowdsourcing? Addressing Major Managerial Problems

Crowd Testing is a new paradigm in the quality driven space of software testing. There are a number of predictions and pros stating that this type of testing might become immensely popular and would be able to acquire a profitable market share in the software testing industry. On the contrary it is yet to be seen any significant success stories or deliveries achieved via this innovative branch of crowdsourcing industry. Without denying the fact that this area of software testing is still in its so called adoption oriented infancy rather it has grown significantly based upon its technology/infrastructure driven maturity level, yet we have to keep a keen eye on the expanse or demise of the same.

Whenever a new technology comes in everybody starts to talk about its advantages and benefits it bring along. But as I am closely related to this field I felt to do otherwise I would like to point out more cons or problems that we need to manage or deal with, so that Crowd Testing succeeds and can truly stay put on the variety of beneficial claims laid down by its pioneers. 

The major managerial problem this crowd testing brings can be summed into these categories: 


  1. Proper Dissemination of Testing Requirements into the Crowdsourced Team of Testers
  2. Skill identified or Experience based Work Allocation
  3. Concrete Business Clarifications Mechanism
  4. Reduction of crowdsourced resources based liability risks and mitigation plan
  5. Irrefutable Wages Delivery Mechanism
  6. Enabling of testing technologies for mobile, business intelligence, VPN etc on crowd testing environments
  7. Business Confidentiality & Security Aspect Justification for Cloud and Crowd based software testing model
  8. Defects Validation Mechanism 
  9. Synchronization Mechanism of crowdsourced testers' (globally located) work for Test Reporting (For periods when defects are scarce)
  10. Crowdsourced Resource Retention
  11. Idiosyncrasy of Deployment Schedules & Stringent Timelines
  12. Ground level binding of Crowdsourced Testers with country specific legal contracts.


The above stated managerial problems presents a challenge to Crowdsourced Testing or Crowd Testing firms/organizations. There might be several scenarios where Crowd Testing companies will try to take these challenges one by one and address them by their own business model or implementation methodologies. Rather the one who can get rid of them all will stand out to be a winner. In my following blog I will suggest my own strategies to deal with these. So till then I invite all like minded and fellow professionals to find a way out and leverage the pros and diminish the cons to give a profitable business solution out of Crowd Testing and Crowdsourcing.

Thursday, May 23, 2013

Future of Software Testing - A Practical Approach for Service Industry

Software Testing of the present day scenario is either manual or automated wherein efforts are invested to get the desired Quality Analysed Validations or Verification based results. The future of software testing is an area not much thought of; in terms of technology based improvements or innovations. Rather people and organizations have largely invested on improving the overlay of various test management/delivery related processes. 

The problem with the current approach is that we are able to sustain and also grow in the respective business but what about threat and sustainability issues if an autonomous test mechanism is developed. Large organizations are focusing on creating capabilities and nurturing software testing talent on the basis of the software that is ready to be tested or has been tested once in its life cycle or is currently under development to be tested. But what about if the technology or principles on which software testing itself is based upon will it never change? Should it never evolve? If we will continue to linger upon service providing based on the eons old manual and software solutions will this area ever advance?

In order to get rid of these age old techniques new approaches has to be considered and developed plus adopted for this technology area to grow. There are 4 approaches out of which I do not foresee any clear winner or rather I should say I cannot predict which one shall be adopted more. 

Starting from the first one is: AI based Object Identifiers with Metadata based Action Definitions. These Object Identifiers will go through  any -> to-be-tested application regardless of the environment via which it is hosted. It will then identify all the user actionable and non actionable fields and make a classical approach based repository. Now the tool will be already be equipped with AI based Metadata Action Definitions which will enable the tool to process and analyse the objects to create test actions. When the Test Analyst will complete the analysis of the same it will execute the same and hence the software testing will be completed with proper capture of Test Actions (Evolved out of Test Design) and Test Results to generate Test Reports in a matter of minutes. This tool can also hold the test analytic from the current test to re-use the same test actions in case similar kind of application comes for any test assignment. 

Second Approach is: In current scenario (Laughable Fact) the business requirements gathering is not based on any technology framework which makes it a stenographers job apart from the understanding of the business imperatives/impacts/functionalities etc. which is a specialist's job. The business requirement gathering too should follow a industry standard and all the business logic collection should be done based on metadata or object identifiers based tech. This is will not only enable the testers to easily verify their findings rather reading the functional specifications documents as boring novels. But also enable the developers to easily follow the business logic as per business definitions logic. In order to validate the test actions itself business will also create a Requirement Documents in the Metadata Identifiable format to verify the test results. 

Third approach can be: AI Based Object Identifiers Embedding in Source Code. This approach will enable a self inclusion of Test Actions identifiable Object Identifiers based Metadata inclusion into the source code itself at the time of development. In this case it would be easy for the developer to code the application as per the business requirement and Unit Test it also with negligible efforts.

The fourth or the final approach is a bit tedious and can be less popular: Usage of AI based Object Identifiable Neural Network derived Test Actions Repository. In this approach a tester can either enter the test flow or test actions using his/her conventional test design and then see the tool identify the test actions and execute them. Or it can be run in a learning mode wherein the tester can record how it tests a particular application and hence can train a neural network to test the same in subsequent test phases. 


In order to get algorithms or technical consulting on the above ideas please comment on my blog or send me mail :) 

Monday, April 1, 2013

Features that can still make BlackBerry 10 outsmart competition in Business Phones Market Segment

BlackBerry 10 comeback is good but not impressive enough to compel customers who have moved on to phones from other popular brands. I will not waste my time in repeating BB10 features. Rather I will suggest a few to make them more Business Smart-er Phones:

1. Include a feature to share App only in Mobile Screen Sharing Mode so that if a person wants to just show a presentation then he can do it, without sharing his wife's continuous texts in the multi-task mode. This feature should enable sharing single or more apps but not the entire multi-mode screens so that a limited private space is still kept.

2. In BlackBerry Peek if the video is running and the BlackBerry Hub is recalled then the video should get paused automatically (This should be an ON/OFF feature).

3. In the BlackBerry Flow if the Browser could show tile-view of all the tabs that are opened then the user can easily click on any one of them that is required instead of first opening the browser and doing the hassle-job.

4. In BlackBerry Keyboard if the swipe from right to left deletes words then in the same there should be an option of undoing delete by swiping in the reverse direction i.e. left to right.

5. In the BlackBerry Balance if the work and personal apps are kept separate then the same kind of separation should be done in BlackBerry Hub so that Facebook and Twitter are separated from Corporate Social Network or Mails.

6. Picture Editing is good option but it should be enhanced with one more feature and that is to include pictures from Gallery of images into Presentations, Documents etc such that we can edit these pics to fit into these docs with simple UI strokes. This would immensely help in case somebody needs to brush up a presentation or a document.

7. Ability to view mail attachments in twin window mode so that a person can also refer the mail as well as read the attachment simultaneously.

8. A better voice recognition so that if a multi-tasking, multi-screen modes are launched in next versions of BB10x then a person can talk and listen via speaker and also do the multi-tasking on phone still maintaining an audible quality of sound, while holding the BB in his/her palm.

9. Ability to integrate Office Communicator with BB Messenger so that the message flow not stops no matter what.

10. Ability to share BB screen with a Desktop with limited or controlled access to the apps or files but with the enhanced or unique ability to drag n drop or even run compatible files on desktop.


I am in the process of thinking of more. As soon as they come I will share more can-be-added-features. Thanks for the read. 

Monday, March 18, 2013

Near Field Communication SDK in India

Hi All,

It was very tedious job for me to find any manufacturer or supplier of NFC based SDKs in India. But luckily there is one supplier MNC based in Chennai that provide us with all the NFC hardware and software bundles from which we can start experimenting with.


The name is SCM Microsystems. Check out there link: www.scmmicro.com/ 

Sunday, September 30, 2012

Relations between Dynamic Logical Entities and Inherited Knowledge

There is a relation between dynamic logical entities that expands as we start to learn the universe around us. These consists of all the logical patterns we attain, think, expand, disseminate or produce etc. On the other hand is the Inherited Knowledge that we gain access as instincts from our DNA and ancestral origins plus from people who surround us. 


I have been working on establishing a mathematical link between these two wonderful aspects of information and how it can be used to derive knowledge so that all the different random or sequential patterns can be studied to get each tiny or huge bits of information out of it. If anybody is interested in my work please feel free to assist me in the same. 

Sunday, July 15, 2012

Moore's Law can fail for the first time in History of Computing Power Growth!

Moore's Law is quite a famous and well known theory that one of the Intel's founding father's Gordon.E.Moore proposed. It said that processors size will be reduced and processing power will continue to rise every 2 years as the number of transistors on integrated circuits doubles approximately every two years. I have seen this law prove itself in all these years I grew up seeing hardware/software evolve. 

Intel already have reached 22 nanometers scale size for the transistor. But now the challenge that has come up that how transistors can be made to so that they continuously shrink in size. All the nanolithography and  etching technologies that were evolved for the same seems to have been saturated and can no longer shrink the size of the transistors. Intel and other players in the market are already behind schedule to reduce the size to 18 nanometers and then 11 nanometers. According to a latest article in MIT Tech Review Magazine the same problem is being stated as a major concern for chip manufacturing companies worldwide.

Intel has tied up with ASML a nanoprecision intruments making company to evolve a new technology called EUV  lithography i.e. Extreme Ultraviolet Lithography. This technology holds the potential to further reduce the transistors size using ultraviolet light. But a major hurdle in this is the loss of light due to absorption of the light energy by the surrounding vacuum based systems. Whatever light is being thrown over a silicon compound is being lost and only 90% of it reaches the chip wafer. ASML is being largely funded by Intel to eradicate this problem and develop a solution so that a large number of chips can be manufactured at cheap costs. ASML's CFO has also urged other competitors in market like Samsung and Taiwan Semiconductor Manufacturing Company to tie-up with partners in order to let the semiconductor lithography technology evolve and prevent the failing of Moore's Law for the first time in history. 


Currently as per all of the nano lithography technologies available for manufacturing processor chips at 22 nanometers level is not enough to bring the dimension further below atleast for 3 years in future. This will foresee a slight fall in the progress of processing power obtained. This would be a first instant since the discovery of transistors and Integrated Circuits that Moore's law pace will be reduced. Hoping that a new technology breakthrough in EUV lithography comes sooner. So that we are not devoid of growing processing power in future.

Saturday, July 7, 2012

Conventional Datacenter versus Cloud Offerings

Conventional DataCenter comprises of basic storage and processing components, unlike the cloud which not only has all the features of a conventional datacenter but also integrated web analytics plus development and testing frameworks all present under a single architectural setting. 

Conventional datacenters are always build from scratch as per the very specific requirements like if a business wants to host a large consumer base Java based website. Then they can only establish a dedicated static server plus can develop the site using the same server capabilities and host it there and then. 

But what are the disadvantages: First is that a specific setup done on a configurated datacenter will always require add-ins like load balancers, indexers, web analytics tools, development frameworks installed with lots of custom settings and secondly setting up of an identical setup so that whatever the business desires to launch can be tested well.

All these hassles of detailed architectural insight and configurations helps in making a very precise datacenter that can exactly suit a requirement. But the cost of all this to be done comes to be huge as multiple vendors or multiple areas comes into feature which all needs to be looked into very carefully so that issues like spamming, virus attacks, scalability, high performance based delivery, excessive load handling, cache built-up for fast accessibility and search can be done. Moreover the person or business involved has to always keep the payments upfront even if the hosted product/service/site is not used by proposed consumers 365X24X7. Maintenance of the servers, code upgradation, utilization of web based analysis has to be continuously monitored and these all comes with cost involved which is always irrespective of the usage patterns. 

Whereas on the contrary in a cloud based environment we already get most of the ''extra'' features like integrated scalability, global accessibility, high performance based delivery, analytics availability, and most important of all the security always enabled, protecting the underlying the products/services. A person/business always has to pay for what he has used in terms of processing power, storage, bandwidth, analytics derived, development or testing licenses used etc. 

One more added feature is being implemented in cloud that nowadays give it the power of configuration as per the cloud hosting users i.e. we can setup our own work environment over a layer of preconfigured setups like for Windows we have Windows Devlopment Frameworks, Database, Web Services and Test management tools present all in Microsoft based technologies so that business can simply come and fix the architectural components available as per the needs and start developing, hosting or testing any product. This feature provided by respective cloud vendors have enabled the users to used any kind of web technology base and start their utilization without getting bothered too much about the base/ground level architectural designing and setup. Windows is just one example if a business wishes to have Google based APIs setup then they can use Google cloud services. If they wish to use Open Source then Amazon is there, if any CRM based application is to be developed then Salesforce is there and many more such wonderful combinations are available for the product/service industry. 

The presence of web analytics all the time in the cloud helps derive the usage statistics across various geolocations and it proves to be boon if we are trying to read some kind of usage patterns across a variety of demographic locations globally. Whereas if we need to get the same capabilities in a conventional datacenter then a business would require a group of experts in all these fields who can actually setup the same and make  all these components available at all the time to the business clientele groups. 

A conventional datacenter base is very good still if we are involved into evolving a new kind of architecture where a lot of hardware plus software plus firmware based experimentation is to be done which involves frequent revamping or playing up with each of the configurable components. In a cloud based environment we cannot experiment with their basic architecture as then all of the setup can be jeopardized. Cloud layers will be intruded and the impact that they might inflict can still be a rather interesting topic to study on :)

Also if we are trying to develop an application that forms a middle or back end component and which never has to be scaled up or downgraded or its performance simply don't affect the overall functioning of the system architecture then also a conventional datacenter is best suited. For example if we think on the lines of service providing computations for mathematical simulations or computational modeling etc. As in these kind of requirements we do not need rapidly scalable hardware or software requirements not it is to be used by a large number of users whose numbers vary from peak to low or vice versa or just exponentially. Unless the simulations are for testing these requirements itself.

So a new business model can arrive where a cloud provider can allow the developers or business to configure some of the basic architectural features of their cloud without impacting the already hosted business services/products. This is a challenging business solution but still if somebody can pitch in with a revolutionary idea/model/plan it can be more suited to business domains like banking where security is to be handled much more seriously and analytical components can be detached, communications layer can be replaced by ESB layer and so on and so forth.

Next promising business in cloud domain will be a cloud architecture very similar to Hyper-Hybrid cloud architecture just the difference will be in this business a single private/public cloud architectural components will be configurable rather the integration of services from various other hybrid clouds. 






Bad practices for a Software Test Engineer

People mostly talk about the good and the best practices but it is also important to know the worst or the bad practices which a Software ...