Learn How AI is Transforming Software Testing

AI in software testingThere is no doubt that AI is Transforming Software Testing.   Over the years you can see how software testing has transformed from manual testing into automated testing.   It now has reached another milestone and is further transforming with the advent of AI.  There are many tools today which have started incorporating AI in order to provide a high level of quality.   As a software quality engineer, it is important to understand those changes and be able to evolve with the technology.   If you haven’t done that yet, don’t worry since the technology is currently in a fairly infant state.

Here are several ways that AI is Transforming Software Testing

  • AI will transform manual testing.   Manual testing is very time consuming and expensive.   AI will enable the creation of manual tests and be able to accelerate the testing timeline by running those scripts automatically.
  • AI will enable testing teams to cover more scenarios and cases.   This will identify more defects due to the increased amount of coverage across the application.
  • AI will eliminate the need for assumptions.   Software testers make a lot of assumptions when they are building and executing test cases.
  • AI will help in using predictive analytics to predict customer needs.   By identifying those needs this will result in a much better customer experience and customer satisfaction will greatly increase.
  • AI enables visual validation.   This validation will identify more defects that traditional software testing methods.
  • AI will help find software bugs much faster and find more of them.
  • There are several tools that incorporate AI/Machine Learning to speed up the development and maintenance of automated tests.   One of those companies is Testim.   Maintaining automated test cases can be very expensive and time consuming.   Reducing the amount of maintenance will allow test automation engineers to focus on new automated tests and that will add a higher degree of quality to your applications.
  • There are some AI tools that will complement existing tools that are on the market today.  One of those tools is Test.ai.  Test.ai leverages a simple Cucumber like syntax, so it greatly simplifies the development of automated scripts.
  • Some tools do all the testing for you.  I know that is hard to believe and I admit I am also a bit skeptical.  ReTest helps to eliminate the need to be able to have programming skills.   It leverages AI to fully test applications.

AI will create opportunities for software testers to move into new roles.   Some of those roles will include:

AI QA Strategy:   This role will use the knowledge gained within AI to understand how this technology can be applied to software testing.

AI Test Engineer:   This role will combine software testing expertise along with experience in AI to develop and execute testing activities.

AI Test Data Engineer:   this role will combine software testing expertise along with AI in order to understand data and leverage predictive analytics to verify information.

I strongly believe that software testing will continue to be a prominent role within IT organizations.   I do believe it will evolve and continue to evolve.  This will require additional training on technologies such as AI in order to keep up with technical evolution.  AI is a brand new technology, so it will require time and resources will need to be trained on how to use the technology effectively.

 

Creating Predictive Analytics for Quality Engineering

predictive analytics Creating Predictive Analytics for Quality Engineering

If you are in the IT profession, you know that metrics are extremely important in helping to make decisions.   This is also especially true for Quality Engineering teams.   10-15 years ago, testing was primarily conducted by software quality analysts and test cases were executed manually.   Most software testing teams were small, and they would run a limited number of test cases to ensure things worked.   Using this approach, it was relatively easy to know if there software was ready for production, and that QA manager could pull the team into a room and determine if the software was ready to be deployed.   Those times have drastically changed.

Here are a few reasons why software testing has evolved:

There is a need based upon this evolution to have software testing metrics in order to make better decisions.   This data needs to be consistently captured and analyzed.   It is important to create predictive analytics so that you will be able to determine the current state of the quality engineering effort and accurately predict what would happen in production.

Quality is required. 

Speed is required. 

Resources and time is limited. 

Decisions must be made. 

Software must be deployed to production.   

In order for these things to happen data analytics must be performed.  A base set of data is needed.  Some of those data elements include:

Sprint Velocity

Planned/Executed test cases

Manual vs Automated tests

Defects

Root Cause Analysis

Defect Leakage

Once this data has been identified, it needs to be captured and segregated.  When that information is gathered, you will be able to start and see trends.  If you are testing a certain application, you will be able to predict how long it will take to perform testing, how many defects you plan to identify, and most likely how many defects will make it do production.  Predictive analytics will evolve over a period of years.  Many companies have started using AI/Machine Learning in helping perform this analysis.

This is also a continuous process.  It is something that is not done once and completed.  Additional metrics and more information will be needed.  Those metrics will have to be captured and predictive analytics models will need to be created or modified.

Digital transformation requires that quality engineering teams transform how testing is planned, executed, and measured.   The key to digital transformation is a focus on the customer.   This requires that the quality engineering teams truly understand the business, and more importantly can accurately predict customer behavior.   Issues such as usability, compatibility, performance, and security are extremely crucial.  Provided these issues are tested, and the results are acceptable, this will create a really positive customer experience.  For example, if a mobile application is slow, the customer is not going to have patience and will quit using it.

Predictive analytics can be used for defects.  Here is some helpful information that will improve quality:

  • Type of defect
  • What phase was the defect identified
  • What is the root cause of the issue
  • What changes need to be made so that defect will not make it into production
  • Is the defect reproducible?

Once this is understood, changes can be made to prevent similar issues from occurring.  Using these predictive analytics, overall quality will greatly improve and speed to market will accelerate.  It is important to have the right amount of data so that predictive decisions can be made.

 

 

Educating CIO’s on Software Quality is Critical

software testingThe world of software quality has changed tremendously over the last 5 years.  There are many reasons why this has happened, and it is critical that education serve as the primary strategy to influence change in an organization.   Here are a few critical areas where the CIO can gain a better understanding of some of the challenges that impact software quality.

 

Requirements

Primarily due to Agile, the robust requirements that used to be a cornerstone of the waterfall methology have been thrown in the trash.  While there are some organizations that continue to document and provide best practices gathering requirements, most organizations feel this is outdated and no longer necessary.   The lack of proper documentation and requirements have a direct correlation on software quality.   Here are some specific reasons

  • Without proper documentation a developer will code software based upon their understanding.  This often will result in buggy code and requires rework after production, which will be very expensive to fix.
  • Without proper documentation a tester will write test cases based upon their understanding.   This often will result in test cases that have to be written again and will result in the tester missing defects that will go into production.
  • Without proper documentation, the test automation engineer, will build automation test cases which will have to be changed once the manual test case changes, and will miss defects that go into production.
  • Without proper documentation, the production support developer will fix problems in production and will break other production code, because they didn’t get an accurate picture from the developer that originally built the code.

These are a few examples, but you should start understanding why requirements are critical.

Agile

Agile has changed the approach on how software is delivered into production.  It has some tremendous benefits, and done properly, it can greatly increase productivity within an organization.  It is quick, lean, and provides fantastic feedback from the business.  CIO’s love it because it provides rapid return on investment.

There are some challenges from a software quality perspective that need to be incorporated and education needs to happen across all levels of an organization.   Unless you are deeply entrenched on an agile team, you will probably make a ton of assumptions that are incorrect.   Within an agile team, everyone has a responsibility for software quality.   Here are some areas that will have a direct impact on software quality:

  • Agile Stories must be well written.  It is not enough to throw out tasks without enough detail.
  • Agile Planning is critical.   There is some real misunderstanding about agile as it relates to planning.  The more planning and organizing that can be done, the better the team will respond and be able to pack more work within a given sprint.
  • Documentation is needed.  This is another area which is often misunderstood.  Providing documentation allows the team to understand details and more effectively code and test the desired solution.
  • Developers must still test.   This is important.   Just because the agile team has a tester, doesn’t mean that a developer doesn’t have to test.
  • All testing can be automated.   Well, perhaps it could.  But it might not make sense, especially if the code isn’t stable and will need to change over sprints.  ROI, is still important within agile, so just because you can automate a test, doesn’t mean that you should.  This is the most misunderstood item that CIO’s need software quality education.

Defects

CIO’s often ask why there are so many defects found in production.  Well, that is a fairly complicated question.  In order to answer that, a full analysis will need to be done on the defects to gain a better understanding.  Many years ago, when I began a new job, the same question was asked.   In order to come up with the correct answer, the CIO brought in an outside company to perform a software testing assessment.   While I was fairly new, it wasn’t uncommon for this to occur.  In fact, I welcomed the opportunity, because I already had a hypothesis as to why this was happening.  Typically this is primarily due to little or very poor requirements.  The company came in and did the assessment and found that there were 38% of defects that were making it into production.  That is a really high percentage, most companies will average around 5%.  Over a period of time, we started to tackle the problem, and after 1 year of work, we were able to reduce the production defect leakage to 5%.  This was a tremendous accomplishment and required a team effort from project managers,business analysts, developers, and testers to make this happen.

Software Quality Metrics

CIO’s are very metrics driven.  They use data everyday to make better decisions.  While there is usually some form of metrics around software quality, it usually does not make it into the CIO’s hand for one reason or another.  I believe software quality metrics will tell a story, and provide great insight to those that are willing to look and interpret the data.  Several years ago, my team and I started to perform analysis on what data was important and which metrics would help us make decisions.  Once we agreed on what those metrics would be, we started to gather that information release over release.  We started to see trends that would help us test more thoroughly those areas which where problematic.  That resulted in bringing production defects down.  We also, built a web based dashboard, that would allow the CIO and anyone else in the company to see how testing was progressing.  Using this dashboard, we could determine if we were going to meet our testing timelines, and see what outstanding defects were holding up production deployments.  This was a true game changer for the organization.

Educating CIO’s on sofware quality will take time.  CIO’s want to have high quality software, they often don’t understand how to get there.  They don’t want their business partners to suffer through using software that doesn’t work properly.  It is important as a quality champion, you spend time with your CIO and provide software quality education, so that you can avoid having significant issues in production.  Software quality can be done effectively and efficiently within an organization.

 

5 Step Install Robot Framework Ride using PIP

software testingIf you would like to learn how to 5 step install robot framework ride using PIP I can provide a simple process and get it installed quickly.  You have probably already installed Python, and most people use pip to make it super easy.  I have outlined the 5 steps below to install robot framework ride using pip.

 

RIDE is a lightweight and intuitive editor for Robot Framework test data.  If you would like to learn more information about the RIDE framework click here.

5 Step Install Robot Framework Ride using PIP

Step 1: Find Install location

Go to the location where you have installed Python.

Step 2: Copy the path of the folder location.

Step 3: Type cmd to open the command line

Step 4: Type cd and paste the path of the directory.

Step 5: Type pip install robotframework -ride and press Enter

5 Step Install Robot Framework Ride using PIP

That is it.  The 5 Step Install Robot Framework Ride using PIP.

 

5 Step Install PYWIN32 using PIP

software testingIf you would like to learn how to install pywin32 using pip I can provide a simple 5 step process and get it installed quickly.  You have probably already installed Python, and most people use pip to make it super easy.  I have outlined the 5 steps below to install pywin32 using pip.

 

If you have not configured Selenium with Eclipse click here.

Python extensions for Microsoft Windows Provides access to much of the Win32 API, the ability to create and use COM objects, and the Pythonwin environment.  If you want to learn more about the benefits of pywin32 click here.

5 Step Install PYWIN32 using PIP

Step 1: Find Install location

Go to the location where you have installed Python.

Step 2: Copy the path of the folder location.

Step 3: Type cmd to open the command line

Step 4: Type cd and paste the path of the directory.

Step 5: Type pip install -U pywin32 and press Enter

5 step install pywin32 using pip

 

That is it.  The 5 Step Install PYWIN32 using PIP has been installed successfully using PIP.

 

Install wxPython GUI Toolkit for Using PIP

If you are starting to learn how to use wxPython GUI Toolkit for Python so that you can get a jump start on developing test scripts using Python with Selenium.  You have probably already installed Python, and most people use pip to make it super easy.  I have outlined the steps below that are needed to get it up and running.

 

If you have not configured Selenium with Eclipse click here.

If you want to learn more about the benefits of the wxPython click here.

Install wxPython GUI Toolkit for Python

Step 1: Find Install location

Go to the location where you have installed Python.

Step 2: Copy the path of the folder location.

Step 3: Type cmd to open the command line

Step 4: Type cd and paste the path of the directory.

 

Step 5: Type pip install -U wxPython and press Enter

Install wxPython GUI Toolkit for Python

 

That is it.  The wxPython GUI Toolkit for Python has been installed successfully using pip.

If you would like to learn more about Selenium click here.