Search This Blog

Thursday, August 16, 2018

Block Chain - Secured and Connected

A Block Chain Network
BlockChain has been a buzz in recent times, a lot is happening around this technology on the internet which was originally been invented for Bitcoin transactions. The blockchain is the Brain Child of Satoshi Nakamoto in 2008. Since its invention, it has evolved itself and Various Industries like the Financial and Automotive industries are using it because of its highly secure structure. 

It was actually invented to serve as the public transaction ledger of the cryptocurrency Bitcoin and to solve the double-spending problem without the need for a trusted authority or central server.

What is a BlockChain?
What is a Block Chain

 An Ever-Evolving List of records called Blocks which are linked using cryptography. The data held within a blockchain is decentralized, which means a copy of the existing blockchain is on every machine in the network. You Can Add a new Block and cannot be deleted and in case of update of the application, you need to sync in order to have the common history.

How Block Chain Works ?

How Block Chain Works 
Each Block Contains a Cryptographic Hash of the previous track, timestamp, and a transaction. So Every Addition that is made in a Blockchain can be seen across the network and the transaction is cryptographically linked to the previous transaction thereby ensuring safe and secure transaction.  It is a network of Nodes ( A Node is a computer connected to the blockchain using a client that performs the act of validation and transporting the data) and every node is an administrator which joins itself voluntarily ( thus making it decentralized across the system) making the whole second level of the powerful and secured network. The Transactions between two parties is done in an open and verified manner and its basic structure and way its designed makes blockchain unique and very much secured.

How to Test them?
How to Test them?

So in technologies like these how are we going to test them? How are we going to ensure that the BlockChain application is good to go? Though we say that its a secured platform how are we going to ensure that it is what it is? 

In Application like these various testing that can be carried out is the 

  • Unit Testing,
  • Functional Testing,
  • Integration Testing,
  • Database Testing.

Though it looks like I have mentioned almost all types of testing. I have only mentioned those types of testing which blockchain is designed for and way it is used for.

Unit Testing done by the developers tests the lowest and highest level of programmes to ensure that they are working in as per the functionality.

Whereas the Functional Testing done by the Testers ensures that the application as a whole is working as per the functionality.

Meanwhile, Integration Testing ensures that the various Systems across when integrated into one system/application is working properly with a correct pass of data and information as per the requirement.

Database Testing is done to ensure that it is able to index its data properly and Data Querying in blockchain is slow and we need to be very patient to ensure that the block confirms your transactions.

Testing Tools for a BlockChain

There are Tools available for Testing a BlockChain Application to ensure that application is efficient & secured. 
  • Ethereum ( The best-known blockchain (other than Bitcoin)
  • Ethereum Tester
  • Truffle
  • Ganache (formally Testrpc)
  • Populus (For testers who prefer Python)
  • Manticore
  • Hyperledger Composer
  • Exonum Testkit
  • Embark Framework
  • Corda Testing Tools

With Big Data, Artificial Intelligence, Machine learning etc., the Industry is always evolving and the current focus is on the Data and how are we going manipulate them to its best use and its security is a major concern and with BlockChain is definitely the future as many more financial transactions are happening across the internet and using a smartphone. The blockchain is the way to move forward for a Safe & Secured manner. 

Friday, May 25, 2018

Intelligently Testing

Recently I happen to see a video clip of young Technocrat by name Tanmay Bakshi. It was a nice interview where this little wizard spoke a lot about AI and how important it’s going to be in the future days to come by. This made me thought to look more into how Artificial Intelligence is going to help Software Testing or how are we going to test AI. Am not going justify both the questions rather I will be discussing it and leave it to viewers to decide.

 This is a big topic to understand. Let me put it to you all in simple language... Here we go...

Need and Demand Intelligent Systems

The Need and Demand for Intelligent Systems are becoming more essential these days and people want more easy and better easy way of using their devices to make their living more peaceful and easy. Thus the need for evolution of Intelligent Systems came into existence and thus the need for Artificial Intelligence...

 What is Artificial Intelligence? 

Technopedia.com defines it as "Artificial intelligence (AI) is an area of computer science that emphasizes the creation of intelligent machines that work and react like humans. Some of the activities computers with artificial intelligence are designed for include:
·                     Speech recognition
·                     Learning
·                     Planning
·                     Problem solving

So we can say that AI is an intellectual Process of Creating or Developing programs or machines which can perform the human activities like reasoning, speech recognition etc., 

How AI is going to help Software Testing?

Most Software Testers believe or having thoughts that these Smart Machines or Tools is taking over their jobs and but it’s not actually true. These Tools simple help us in improving our productivity in a qualitative manner and also they assist you in lessening your daily day to day work. Software Testers Still has a lot of jobs in there in end right from preparation of execution of these tools, execution of the tool, reviewing reports and providing the correct solutions to the approach to the team.

AI is going to be next big thing in the field of Software Testing and it is going to really change the way we approach an Application or Software. All these years we have been doing one activity of the Software Testing repeatedly and that is Test Execution. We write Test Cases we execute them, A New patch or a fix to our existing Program we execute them and its all Test Execution all the time, Now you can write an algorithm that can operate like a user actually accessing the automation and figuring out with Steps to access within an application you should exercise.

With AI coming into 
Software Testing the approach of Delivery is going to be like we analyze and execute the application and do the process of continuous learning of the application and its business and keep the development team informed about issues that may occur in the future and ensure that we fix these before that incident occurs that saving the time and cost thereby improving the quality of the delivery and making business work as usual. 

Using AI you can Perform Tests based on Business Rules. These Business Rules will have all the Constraints of real-time business making the approach testing more real and more authentic which will result in better and effective outcome. Business rules are intended to assert business structure or control or influence the behavior of the business. 

 AI in Software Testing has a Preventive approach and not a reactive approach, which will pave way for Proactive and Intelligent Testing. 

To Conclude on this very interesting Topic we can say that AI is the future in the field of Technology and it has already taking over our daily walks of life and in this field of Software Testing AI's contribution is going change the way we deliver. The approach of testing is going to more accurate and more on real business needs.

Sunday, May 13, 2018

Let's Practice Process

 #Process what is it about? Can we say that Process is an orderly way of working or rather a discipline of action in a corrective way. Process should start right from us our mindset should be ready for a change. The Collins Dictionary Defines Process as " A process is a series of actions which are carried out in order to achieve a particular result." 

#Process brings in perfection which will enable any business of any discipline to work with a series of action to achieve the desired goal. In Software Engineering its combination of activities to achieve the common goal of delivering software products.In Software Testing it is not just a single activity but series of activity combined right from Planning for Testing to Design to Execution of Testing to Reports of Test Closure. 

Testing has always insisted of working along with the process. The Process for these can be termed as agile or any other name and the focus is only on Validation of Software wherein it verify that the Technical Requirement and Business Requirement is met, so the name of approaching the process can be anything.

Process - Think Plan Act
The Importance of the Process is that it is through this we would be able to evaluate the customer satisfaction and reliability and process paves way for this. Process are important as they describe why it is to be done and how it is to be done then it focuses on doing things in a better way and the result or can we say the outcomes determine how successfully we have implemented them. So for a successful quality Delivery of a Software, the process plays a very pivotal role. 

The Process that we implement or follow should be such that it is easy,efficient and more importantly repeatable.It should be inline of what business we are doing and more focus should be on customer satisfaction and finally the action of process should ensure that there is growth in business.

Even small changes in approach bring big difference in our business,changes are inevitable and how quick we are ready to accept it we will be able to do better. A step-by-step way of doing things with properly well-written procedures and policy documents and tools supporting it is what makes every process and rather a business guide towards its goal.

Now lets get into action mode and that mode is called Implementation. Yes its here that from papers of policies and procedures will come alive into action which will enable the business to achieve its strategic goals and objectives. Implementation is all important of phase where slowly from the planning phase we should start the execution of the plan until it is ready to go live. For the implementation of a process we initially should take up small pilot programs and start executing the defined process within the company where in we should run the system as trial for a finite period of time, this method of trial runs acts as a key component to any implementation process.

 We should also form a group of people within the company to try the new system because they these people are the real users and it be easy for us to understand how effective our process is and also these people would be most keen on picking out snag and the shortcomings of the system to further help the #implementation process.

 On Completion of trial runs we should focus on educating the users about the new system and how to use it before the system eventually is ready to go live. At the end of the implementation when the system is about to go live, companies typically review the entire process and verify that all tasks have been completed.Once all tasks are verified we should be good to go in proceeding with the new defined process.

 An Effective Process is always important as it acts as Collaborative mechanism which helps every company to do its routine jobs efficiently and where every individual is responsible for each step performed towards achieving company goals...

Monday, November 6, 2017

Hunger for Perfection

Hunger for Perfection
Word Perfection means "the action or process of improving something until it is faultless".It means to say that an act or rather an action performed by an individual or a group of individuals involved in something and doing that repeatedly in the right manner will achieve what is being referred as faultless. But are we able to achieve this act yes we can any act done with dedication and focus can achieve this. 

Perfection ensures that the anything that act or to be performed is being done in that right manner with proper rules and regulations. Perfection ensures and delivers Quality and Standard improvement. When we will look at the Business Prospective it gives you happy consumers which will ensure loyal consumers who buy only because they are assured that the standard and quality of the product they buy is their perfect choice.

Continuous Improvement 
To attain Perfection we need to take care of so many aspects of business and foresee things before they come and address those issues so that your business and your relationship with your consumers is complete and flawless. For that matter its not only for this relationship of business it is for every individuals we are connected to. If we take care and address issues, respond and foresee things am sure not only in business but in every relationship we will be very successful.

So what it takes to be a Perfectionist, you are either scolded or hated as you expect everything to be in order with proper rules and regulations adhered to the act that we associate with.I personally experienced this as i try follow the rules and regulations and the result being bullied and pushed and laughed but that didn't stop me from shying away from my duties and responsibilities. 

Even in our daily walks of life in the road out there when we travel how many of us as actually followed the Traffic Rules. Few Traffic Policeman standing and whistling will not make it proper it is us within us to do it. Pledging ourselves that i will drive safely and properly i will follow the traffic rules will make things Perfect. That is  what will make our lives a place to live.

Perfectionist as described in Wikipedia is that " Perfectionism, in psychology, is a personality trait characterized by a person's striving for flawlessness and setting high performance standards, accompanied by critical self-evaluations and concerns regarding others' evaluations". 

So Flawlessness is what we all are striving towards. Are we convinced to accept anything in life other the best in terms of clothes,what we drive ,how we live , how we travel etc., So for us it is very important that we get the best of everything. So Aren't we all Perfectionist then. 

Yardstick of Quality
Steve Jobs was a Great Entrepreneur his attitude towards perfection is mind blowing and the products he invented are so as well. Today Apple stands as the worlds best company in terms of Technology  and devices they make. How did he do it? He focused on what is to delivered he saw himself as a customer and his act of perfection is what made him do this. Whatever he learnt in life either it is learning the calligraphy or design of first iPod (the initial design of iPod was rejected by Steve Jobs as it was found to be too bulky). His vision and commitment to perfection is what has made Apple stands completely innovative and different from the rest of the companies in the World.

But is Perfection good yes of course it is good and we discussed on this above as well but can we find the same in individuals . Yes, I personally feel that the day you follow the act of perfection you attain divinity. But in practical life not all five fingers are the same and so is human beings as well. Not all people are perfect and not at all minds of the people are perfect . The Act of Forgive and Forget is important for us to maintain any relationship and as they" To Error is Human , To Forgive is Divinity"

So to Conclude i would say we should not look for Perfection alone we should strive for Continuous Improvement in everything we do and individually we need perform be a better person than what we were yesterday. And we focus and follow this am sure in any business or anything you perform Success will always be with you.

Wednesday, October 25, 2017

Artificially Testing

My 50th Blog

Hello Readers very happy to share with you that i have completed my first milestone of writing 50 articles in my area of interest.On this special occasion today i have written on a very interesting topic of Artificial Intelligence with Software Testing. Read On... 

It has been a very big learning curve for me. Thanks to all who have been part of this journey learning and unlearning and this journey of knowing and sharing will go on... thanks to all. 

Monday, October 23, 2017

Software is Insanely Smoking

 Smoke vs Sanity

Smoke Testing 
Smoke Testing is the initial of testing which is basically done to ensure that all the basic functions of an application is working fine. Smoke Testing is also called as a Build Verification Testing shortly called as BVT. A Set of Test focusing on the Core Functionalities of the application is run along with its test cases is executed on every new build to verify that  the build is good enough to proceed in testing .This type of testing is very essential to perform in the early stages of Testing as it identifies the bugs or issues that are inside the code. The results of this testing is used to decide if a build is stable enough to proceed with further testing and thus reduces the time and cost of Testing. 

Sanity Testing is usually an unplanned activity done with a unscripted approach when we do not have much time to test. This type of testing is done to ensure that the basic menus,commands,functions etc are working well after a small change in the code. It helps to identify the dependent missing functionalities. It is narrow way of testing where it focus on one or few functionality to test to ensure that the application or a software is working fine.

Difference between Smoke and Sanity 

Difference Between Smoke and Sanity 
Smoke Testing is a methodical way of execution of testing where we have a set of test cases written for it and executed whereas Sanity is a unscripted rather non documented approach of testing where we execute the act of testing without any test cases to execute.

Smoke Testing is done in the initial stage of testing when the build is deployed in the Test Environment to ensure that Build given for testing is working fine to proceed further on testing while Sanity Testing is done in the later stage of testing .

Smoke Testing is performed on end to end testing to ensure that stability of the application where as Sanity Testing is performed for a particular part of the system or component of the application to ensure that the fix or code change is not affecting the behavior of the system.

To Conclude on the above topic i would say in the Industry both these words are often confusing use them wisely according to your needs.

Lets Explore One More Time


Regression Testing a testing which has lot of significance in ensuring that the application is working well even after a code change or enhancements. Generally this type of testing plays its role after the functional testing is done. Its more likely done when after a patch for a code is fixed. Regression Testing is done to ensure the application as whole is working fine.

Regression Testing 
Regression is an act or an instance of going back to an earlier and lower level especially of intelligence or behavior the regression to really childish behavior that boys often undergo when put in large groups.

So here in Software Testing, Regression Testing is a Verification Process where we go back to the Software Application that has been changed by the act of a patch or fix due to its already existing program which put together should make the application work properly as it was functioning before.

Guru99.com defines Regression Testing as 

"Regression Testing is defined as a type of software testing to confirm that a recent program or code change has not adversely affected existing features."

ISQTB Defines as :

When any modification or changes are done to the application or even when any small change is done to the code then it can bring unexpected issues. Along with the new changes it becomes very important to test whether the existing functionality is intact or not. This can be achieved by doing the regression testing.

Difference between Regression and Re-Testing 

There is a difference between Re-Testing and Regression Testing. Though both has a common approach verifying the application after a fix in a code is done.
REG vs ReT

While Re-Testing tests the functionality to ensure that the code is fixed and no bug is comes back. If the Code works well then it is closed else if the defect raises its opened again. Here we focus more on the Failed Test Cases. 

But in Regression testing, verifying your software application when the code is changed and ensuring that the this code is not affecting the application as whole . Here we focus more on the application as a whole whether the new code is not affecting the other areas of the software.

Regression Testing is useful when
Regression Testing Useful Areas
  • Code is modified due to change in requirement
  • Any New Feature is added to the Application
  • Any Performance issue and there is a fix for it 
  • Resolving Bugs and Defects Raised to ensure a quality software  delivery.

Regression Testing is a very effective strategy which actually helps big organisation save lot on time and money. As bug fixes cost a lot and an effective Regression will help companies in reducing this cost and produce a quality product.