Sunday 23 November 2014

Fivefold Testing System.

Fivefold testing System.

This blog post is about five fold testing dimensions that can be used by a tester to get the required Information from the product under test. This post is very brief and limited to non description of the terms that Are mentioned. Each of these dimensions can be isolated and used or used in combination with other dimensions to find failure Behaviours.

There are five dimensions in this system-Tester, coverage, potential problems, activity based dimension and evaluation based dimension. Each of this  one, has its own context and meaning associated. Tester dimension is related to information about the person who is performing testing. Coverage is about identifying areas to be tested. Potential problems are related to risk areas that are relevant to system under test. Activity based dimension relates to information about how a tester test his app.Finally,evaluation is about knowledge base related to make judgement about information we receive from the product. Each of these dimensions has many techniques linked with it.

People based testing is about information on who does testing. Some common techniques used in this dimension  can be user based, subject matter expert, customer, test team; external user .Coverage based dimension is used to focus on identifying areas to be tested. For instance, popular ones in this dimension could be spec based, requirement based, configuration, logic, state transition, combination, domain, function, menus, constraint based.


Problem based dimension is used to identify risk areas in the product/service. It could be very useful to find out risk Areas  related  to computation,storage,input,output,security.There can be many more relevant techniques associated with this dimension. Activity based dimension is concerned about how the tester tests. For instance this dimension deals with techniques like (to name a few)explore,scripted,manual,regression,load,performance ,scenarios,smoke test.

Evaluation based techniques can be used as a knowledge base to judge about testing. Some techniques that can be used like self-verifying data, oracles, and heuristic oracles, specifications, saved results .There are various artifacts that can be helpful in applying these dimensions to our app. Some of the important ones that are used are test matrix, all pairs, and trace matrix.



Finding right balance from this dimensions is a easy task provided we start doing it.However,this blog post gives a very simplistic view point of the five fold testing system.

Saturday 22 November 2014

Mobile Tech Jargon

This blog post is short post about some popular terms associated with apple ios and android based os.It is far from exhaustive list that can be documented.



ios

  • ios is the foundation of apple products.let us catch up the important jargon associated with this fine devices.
  • Siri-It is a voice feature thru which task can be performed with the device.
  • icloud-Feature for seamless mobility between different devices and  also a storage  house on cloud.
  • Universal features.-Special consideration for world wide users.
  • Panorama view-It is 240 degree view available in ios camera/
  • Safari-It is a browser specific to apple devices.
  • cocoa touch-Fundamental Stack in ios for building app store apps.
  • Media layer-This stack is used for audio,video,graphic requirements in the software.
  • core services-It is foundation layer for cocoa touch and media layer.
  • core os-It is a layer that directly interacts with the device hardware.
  • udid-It is unique id associated with each device.


Android ios-


  • Android is based on Linux kernel.
  • AVD-It is a emulator.
  • ADB-Protocol that run through usb and can be used for debugging.
  • Dalvik Virtual Machine-Android app run on this and this machine  uses just in compiler along  with it.
  • Android Stack Architecture-It has four layers application layer,android debugger,android app 
  • framework,Android kernel.
  • Android has features that enable processes to share memory,inter process communication,debugging log files,power manager,support emulator cpu.
  • Android apps have uid and gid for each of its apps with paranoid networking facility.This enable security .
  • Native library in android can interact with app.framework through JINI and with kernel by system calls and signal calls.
  • Android has many packages inbuilt that support  various features.
  • APK-File created from sdk.
  • Android uses j2se classes;api
  • SDK provides .dex files for java byte code conversion.
  • Android resource xml file can be used to store data for app and they can be converted to class file.
  • Manifest file is used to store security settings.
  • Android uses activities,services,content providers,broadcast receivers as building blocks for app making.
  • Activity is relevant to user screen interaction
  • Services run in the background for  tasks like  i/o interaction or network set up; for example..
  • Content providers are used to provide database related functions .
  • Broadcast receivers act as notification agent like the ones we see on top of our screen.
  • Xml is used in android app as a way to store and exchange data.They are  key-value pairs.

Thursday 20 November 2014

TestersCrush

Testers Crush.

Testers do many mistakes during his interaction with the product, oracles, heuristics, and interaction with developers or management by developing certain stereotypical ideas (crushes). This all account for hidden time bombs that will explode in future. It has happened time and again. Lets us consider for example the Y2K syndrome or the present generation privacy syndrome or domain server war syndrome or ip address shortage syndrome.

The following article lets us know about typical stereotypical attitudes (crushes) among present generation testers and past testers .The enlisted stereotypes ideas could be textual or video or audio that we experience during our testing activity. The challenge lies ahead in using this stereotyped ideas individually or in combination in the right context rather than using it from  a narrow point of view.Thus, we can make the IT services or products  better.

Testers usually form continuous patterns, forms, figures, groups that are very limited in nature and leaves behind discontinuous ones behind. These places can be the reserves for failures. Testers have a tendency to leave behind discontinuous forms and irregular forms under the hood. His interpretations are closed and limit himself to stereotypical figures and their backgrounds. He limits himself from going to that  extra mile and find out alternative viewpoints. Time pressure, metric calculation pressure contributes a bit for this type of behavior.He always look forward to form proximity and group similar chunk s together. His short sight makes him blindfolded for that extra mile or view point to tap the hidden bugs.

I conclude this post by urging the testers to use these stereotypical ideas (crushes) in right dosages, intervals , combination in the right context. I don’t prescribe testers to weed out this but make use of it for tapping the hidden bugs.


MindMapping and Speedreading

Speed Reading for tester:

Speed reading is important for testers. They might have to read lot of documents to understand the design documents, architecture documents, and external documents. Lot of information is  essential for performing different type of tests related to each test strategy. These kinds of situations are very time sensitive. Speed reading can help us a bit in removing the boring part of reading many documents.

Reading material is normally divided into different paragraphs and heading. Depending on the nature of the reading material and individual requirement, the choice of headings that should be read can be decided. The choice of identifying the required reading is challenging and depends on the task at hand. Once the choice of reading material is finalised; speed reading can be started.

Simple techniques might help us. We should never   reread or making any other bodily movement other the eye contact with the test. It is very important to first skim the document and find out the relevant difficult words, sentences and their meaning. This will create a new knowledge base for us .It is bad practise to reread Words or sentences again. It is better to understand about difficult words at this stage...

Each individual paragraph from the identified reading material can be read by going though each sentence from it.   It is always good idea to group words and form an image of it and relate to its physical world or underlying process. Most important advice for speed readers is to sit in a comfortable sitting position without any noise. Imagining visual images for each sentence or group of words can reduce the time to read. There might be a situation when a speed reader can grab the whole paragraph with a single visual image that he can relate to.

Now ,lets put this in practise.Try IT and let us be one among them .We can choose each of these discrete  ideas as per our context. These approaches can increase our reading speed and make use speed reader.

Mind mapping for a tester:

Mind mapping is useful for creating a structure in our mind in related to testing tasks. There are always many ideas that are essential for a testing mission. In order to use ideas for effective testing mission; Mind maps can play an effective role.

Creating mind maps around each Central idea (main word) is the first step. This is the starting idea (main word).Each main word (idea) can branch out to different word (idea) and branch out further to many levels. It is like a tree structure and connected through thick lines at the higher order nodes and thinner lines at the bottom end. Use of colors and images for certain words (ideas) and lines can help us to frame better visual images.Each idea(word) can be termed as a node.

There are tools like xmind to work out this technique. The ideas created between the bottom node to the parent  node should be very constructive and clear. Different configurations and operations among these tree structures of  nodes can be recreated to identify possible new structures and ideas.

  Let’s try it and use it for our work….

Tuesday 18 November 2014

WebTech Terminology

Web Tech Terms:

I post some key terms and their meaning.The meaning  that are presented in this post are narrow ,but are quite related to the detailed definition that can be defined.

  •  Cookie-Sample text file used by web apps 
  • Mvc- It is a design pattern. Controller acts as a agent between user interface and database.
  • Design patterns-It is a template for a solution.
  • Framework-It is a reusable component.
  • Types of files-There are various types of files like jar,war,ear,sql at the production level
  •  Checkout system-It is a code repository maintenance system.
  • N tier system.-A system which has many layers and each layer has specific functionality.
  • Soap-It is a protocol specification for exchanging structured data and used in web services.
  •  Rmi-It is a java api for distributed computing.
  • API-Interface that programmers can use in their app.
  • Rest-It is a communication protocol used in web services.
  • Corba-It is a distributed computing enabler service.
  • Web services-It is  a platform independent method for data access.
  •  Wsdl-Language used for defining web services.
  • Smtp-Protocol used in emails.
  •  Json-It is used for data interchange in the web
  • Parsing-It is a syntax analysis procedure.
  •  Port-It is a application specific construct in networking.
  • Socket-It is an end point of an interprocess communication.
  • Dns-Service that translates domain name into ip address.
  • Host- Thing connected to internet.
  • Http-Application protocol that use get,post,put, delete commands.
  • Web server-Server which processes http requests.
  •  Appserver-It is a framework for handling business logic.
  •  Soa-Structure supporting communication and services on the web.
  • Middleware-It connects OS and other components of app on the web.
  •  Gsm-It is a communication standard
  • Nativeapp-App designed for a specific device
  • Hybridapp-Multipurpose app.
  • Simulator-It is used to create artificial environment.
  • Emulator-It is an combination of hardware and software for  creating artificial environment.
  • Linker-Library files can be linked to object files used  by a linker
  • Loader-It is used to put an app file into memory
  • Debugger –It is used to correct bugs.
  • Hybrid compilation.-It has both compiler and interpreter function.
  • Shell –User interface aspect of os
  • Kernel-User interface aspect with hardware.
  •  Register.-It is a storage space in processor.
  • Interrupt-It is a signal to processor emitted by hardware or software.
  •  Stateless protocol-Independent transaction are used.
  • Stateful protocol-Transactions are not independent.
  •  Tcp/ip-It is an end-end protocol
  •  Firmware-Software written in rom
  • Main memory-It is a working memory.
  • Ssl and tls-Data encryption standard used in web apps.
  • Hub- It is used to connect different lan segments.
  • Switch-Different devices can be connected and data can be forwarded with a switch.
  • Gateway-It is a proxy server that routes between different servers.
  • Router-It forwards data packets.
  • Interface-It is a point of contact between private or public network.
  • Mac address –Special address assigned for network device.
  • Datagram-Basic transfer unit in network.

Sunday 16 November 2014

Security Testing Snippet

Security Testing snippets.

The following short article is applicable for testers to gain certain info .Security is a way to protect the system in terms of integrity and authorization. .I will present few trouble spots  that are fundamental  for testers at various skill levels.

Url manipulation in the server is favorite spot for hackers.This leads to data theft.Spurious script input and HTML  tag inputs also can used as a way to hack the system.This type normally occurs at user interface layer.data transaction that occur between various stateless and state ful protocols should be analysed for any possible breaches.There should be no breach of confidence for the user in terms of his roles and rights.Possible strong encryption and password checking will contribute to better security. Nowdays nano tech processors makes it easy to break paraphrases within short times.This  should be checked.There are loop holes in terms of unwanted script execution during data transactions between nodes of the webapp.This aspect should be investigated.cookies are one of the favorite tools for hackers to gain access to data.This condition should be negated in various contexts. Usage of input data beyond limit and special symbols  with the form might be risky for the user.Data theft from main memory is the buzzword for hackers .This particular use case is more relevant with smartphone and tablets.

The above paragraph tells us about  few important trouble stops that need to be questioned by using age old technique of who,what,where,why,how,which,whom,with w.r.t to system architecture and its users.Certain tools can be handy if we have write test approach to uncover the mystery.Finally we can make good risk assessment and informed decisions .

Friday 14 November 2014

Tester-Proven Technology

Tester and his work:

There are several citation that lay excessive stress on new types of terms like model base, statistical ,random testing ,Markov models etc... and new ways of test assessment.The fundamental duty of tester is very important than the use of new ways to gain empirical information. This short post is to let the reader know certain work that a tester can do, irrespective of the various flavor of ideas.

Tester can help stakeholder to avoid things which they don’t desire. They need to give a service which is integral and competent for the stakeholders. This can be helpful to get the right quality and it can be achieved with a strategy. A strategy can be framed with a mission and suitable logistics. Certain procedures that are essential have to be followed to get right information. This information can be useful for performing  priority based activities which drive the stakeholder’s vision and passion.

It is essential to do a bit of argument but should be thought provoking and mission oriented. This enables for  releasing a nice product or service. Testers might have to do experiments that are critical .Certain contract based artifacts also need to be produced by a tester .Time duration and cost effective parameters have to be considered by a  tester. He has to adapt himself  with unexpected situations, diverse range of activities and viewpoints. A tester is not the only torch bearer for the quality aspect of the software and its associated process .The more important task is to make the team realize the information that is essential and vital.


The above lines will certainly help a tester but is fairly slim written text. There are certainly many gems of wisdom that could be required and helpful to arrive at a solution.The core underpinnings of a advanced testing lies in the thoughts of a tester.The following thoughts are not my own patented and belong to various audio,video resources of the new age testers around the globe.



Monday 10 November 2014

Best Automation Tool.

Testers best Tool-Programmer.


This days many people are so concerned about using automation tools and thus miss the fundamental tool that a tester can always depend on.Yes  ,i mean a programmer.i think the best way to gain some good knowledge about testing is to interact with programmer at right time.start a conversation and thus bring good testing on board.The following  paragraphs can be helpful for a tester in getting some nuggets of info that can be useful.There might be much more but all it depends on how well a tester communicates and frame his requirements to a programmer.He can also save lot of time with right communication and right demands .The might be some noteworthy tips and tricks that can help a tester with heuristics,oracles and test coverage he performs with the app under test.


Programmer insight about the the system he is building is limited .He is concerned about his component that he is building.He tries to understand the system.Keeping this in mind,a tester must report the bugs in such a way that programmers understands  and appreciate test reporting.It is necessary for a tester to give simple steps for failure reachable and explain with good faith about things which are not easy to report.

Good Communication with programmer to understand process work flows,product architecture,process architecture,priority based features could be helpful for a tester.There can be some excellent rapport that can be build if a programmer and tester identify some future failure with the help of this documents.Programmer often  work with buggy tools,third party api,components that might be very hard to use,regular spec updates.This all add to programmer woes and a tester has to keep this in context and follow right communication protocol in getting information necessary for his work or reporting his work.It might also be of useful for a tester to identify the problem areas in the those; that will have impact on the app that programmer is working.A tester can help programmer and also help his testing in a way.

There might be some ways in which a tester can help programmer such as by creating some test environments for him,review third part apis,report some bugs in the third part components or api that programmer uses.This will help a tester for his future course of testing.All the above points can bring competence and integrity for a tester

Monday 3 November 2014

Few Testing Tips

I hope the following points about testing will be useful for testers.I based this points from my experience during my testing activity.

-Testing tools can be very handy for checking facts but not testing as a whole.


-Testers should  explore underlying complexity of the product from simple  observations.


-Using  new heuristics relevant to a context can be useful for finding serious bugs.


- Alterations of test techniques and test strategy could be very useful during interaction with the system under test.

-Quick heuristics will be very handy during testing.

-Using ideas like focus and de- focus, branch and bound will be useful during testing mission.

-Identifying best practices during relevant context will be very useful for finding risky bugs and finding bug patterns.

-Creating a good model with requirement document  will give value for the stakeholders(developers,users,product owner,tester etc....)

-Identifying the probable bugs that are normal for the specific app can be useful.

-Communication with all the members in project to bring good quality product is important and it can also be useful for fixing problems .

-Using questioning methods like who,how,what ,whom,with,where are very useful during testing mission.