Tag: software testing

  • Communication in Testing and QA

    Communication in Testing and QA may seem pointless in today’s over-communicated world. We can use so many methods of communication that the point may seem more like how to stop sending or receiving so much information rather than the reverse. That is missing the point of this particular topic. Communication is listed as the number one skill required in testers and only yesterday employers were lamenting an inability to find personnel with the following three characteristics:

    1. Experience
    2. Soft Skills (including communication)
    3. Technical skills

    We cannot necessarily do much directly about items 1 and 3 above but we can certainly look at the second one in a general context.

    Obviously we are trying to convey information and that information is intended to allow people to make decisions as a result of that information. In the case of testers:

    1. It may be a Go/No Go decision on whether to promote a release to production
    2. It may be a priority decision on fixing a defect
    3. It may be a decision on continuing testing a particular release or set of code
    4. It may be a decision on whether to include or exclude a certain feature
    • We need to communicate.
    • We need to make sure the message reaches the right person or people.
    • We need to make sure the message is provided in the correct format.
    • We need to make sure that the message leads to the correct decision.

    Of those four points, the last one is the most important.

    Regardless of decision being made as a result of the information, there are several important questions that are even more critical in today’s over-communicated world and these will be the discussions for the next few weeks.

    Next Week: Communication in Testing – What
    Following Week: Communication in Testing – How
    Final Blog of the Series: Communication in Testing – Message; Audience; and Transmission Method

    Next Blog Series: Testing Centre of Excellence

  • Malthus on Testing – A New Paradigm

    Last week we completed our discussion of how the proposed solutions to the Malthusian Catastrophe are only postponing the inevitable. Unlike development which can always go forward and create new code, testing always has a regression component for any code that integrates with existing applications. This adds  to the testing effort but doesn’t necessarily add value.

    The proposal we outline here is not entirely new although we are carrying it to another level. Portions of this are being done and have been done for years. However, we are suggesting a more intense and more rigorous application.

    Today, we find many people integrating applications to build something. They can borrow code or entire applications and make something new from it. The statement “there is an app for that” has never been more mainstream. However, everything that is borrowed or utilized may (not always) need to be tested to some level so we can trust that it does what it says it does and operates the way we need it to in our new configuration. Add to that Security concerns dealing with applications that are not under our control and may not have been built to the same level as we need and the chance of our new application failing increases substantially.

    We are recommending that a library of code pieces are created that have the following characteristics:

    1. They carry out a known function under known conditions.
    2. They have been tested thoroughly by an independent entity to prove number 1.
    3. They are secure from being compromised.

    Number 2 above may have levels of testing just like there are levels of code today depending on the risk of the application for which they are being used but the same process applies.

    People developing applications would be able to use this library secure in the knowledge that the three points above are guaranteed.

    Next series: Communication in Testing,

  • Malthus on Testing – Rapid Testing

    Malthus on testing is not something that you hear often. Thomas Malthus was an English cleric and scholar, who said “The power of population is indefinitely greater than the power in the earth to produce subsistence for man”.

    Last week we discussed how Automated Testing has met or is going to meet its Malthusian Catastrophe fairly soon. While there is no doubt that automation has added greatly to the volume of testing that can be completed, it can be argued that the exponential increases in functionality that are easily programmed but not see easily (fully) tested will eventually overwhelm the scripts.

    Some people will advocate other methods of testing under one heading or another without explicitly mentioning the fact that everything is Risk Based. If the time or resources or both are limited, then people will use their knowledge to get as much done as possible within the available time and with the available resources. They will assess the risk and make an informed decision about what can be completed in the available time. They will assess the context in which they are working and determine what needs to be done. They will use their knowledge and experience to determine what to do. We have done this for years and there is nothing new about it. There are various techniques that can be followed to make sure that risk is reasonable. There are work processes and methodologies that will help.

    We can apply the above techniques to both are manual and automated testing and buy ourselves some more time. However, it is only a step along the way; not a solution

    Final Series Week: Malthus on Testing – New Paradigm. We will propose a new method or paradigm for testing that will address some of the problems.

    Next series: Communication in Testing,

  • Malthus on Testing – Automated

    Malthus on testing is not something that you hear often. Thomas Malthus was an English cleric and scholar, who said “The power of population is indefinitely greater than the power in the earth to produce subsistence for man”.

    Last week we discussed how Manual Testing met its Malthusian Catastrophe a long time ago. One of the proposed solutions to this issue was to Automate the testing using a variety of tools and processes. Certainly that allowed multitasking on the part of the tester. Automated tests could run on one machine ‘unattended’ while the tester concentrated on items that either could or should not be automated and new functionality that it was too early to automate. Coverage was maintained and sometimes increased.

    However, unless a large effort was made to maintain the automated tests, keep them current with the changing code and conditions, and add new scripts as new functionality was added to the system the coverage either was reduced in real terms or at least relative to complete functionality of the system. There are some organizations that actually claim to have all the automation they need to properly test yet have no idea of what is in the automated suite or what it covers. There are even those for whom the possession of the automated base, whether used or not is sufficient.

    We improved over manual testing. We did not solve the problem.

    It is quite safe to say that Automated Testing met its Malthusian Catastrophe a while ago. Unless a very large effort is made (usually beyond the efforts of most organizations), Automated Testing is not going to cover sufficient of the code either.

    Following week: Malthus on Testing – Rapid Testing
    Final Series Week: Malthus on Testing – New Paradigm. We will propose a new method or paradigm for testing that will address some of the problems.

  • Malthus on Testing – Manual

    Malthus on testing is not something that you hear often. Thomas Malthus was an English cleric and scholar, who said “The power of population is indefinitely greater than the power in the earth to produce subsistence for man”.

    How does this relate to software testing and in particular, for this week, manual testing? Well if we paraphrase the Mathus’ statement a little bit we could say that the ability of people to add applications is far greater than the ability of people to keep up via testing. Add to that the necessity for regression testing of the existing applications and then the interconnections with other applications that is occurring at large speed and one can see that the possibility of the application functionality and complexity far outstripping the ability of manual testers to keep up.

    A lot of people recognized this very early and proposed a variety of solutions to the problem. We will discuss those in the coming weeks with particular emphasis on Automation and Rapid Testing. Others have recognized the impossibility of keeping up and have resorted to Risk Based Testing. With very few exceptions, all testing these days is Risk Based. We accept the fact that we cannot anticipate completing everything and as a result we make a risk judgement on what is most critical to be completed. The Risk Assessment is based on a lot of assumptions and some of the assumptions are not validated thoroughly.

    It is quite safe to say that Manual Testing met its Malthusian Catastrophe a long time ago. We no longer anticipate covering even a majority of the code.

    Next week: Malthus on Testing – Automated
    Following week: Malthus on Testing – Rapid Testing
    Final Series Week: Malthus on Testing – New Paradigm. We will propose a new method or paradigm for testing that will address some of the problems.

  • Quality Assurance for Startups – Part 4

    The last three posts have concentrated on Quality Assurance for Startups. Next week we will move into Starting Quality Assurance (for an already existing organization). However, we will finish off this week with some small examples of Quality Assurance Processes that a Startup can adopt for little or no cost.

    The first and easiest one is a Incident Tracking Process; definitions, and standards. You can easily  download a free Incident Tracker online or simply use an Excel Spreadsheet. The part that tends to get ignored is the process and standards. Generating a incident tracking flow chart can be done on paper and takes little time to create and post. Standards for the Priority and Severity for incidents can be downloaded from the Internet or generated. The resistance is usually because it is viewed as unnecessary at this stage. However, if it is created and posted at this stage, it becomes part of the culture.

    The second one is the code control and promotion process. Similar to the above, it is generally not viewed as worthwhile at the Startup stage since everyone knows where the code is and how it is to be treated. It is also likely that not all steps or stages are needed at this time. However, another flow chart showing the steps and the expectations at this stage can save a lot of concerns later. The diagram will need to be augmented as the company grows and becomes more complex but the initial diagram is quick to create and solves a lot of problems.

    The third one is testing processes. Again, it may look like too much effort for too little return at this stage but the creation of a testing process, standards, and definitions can be very effective in ensuring that everyone is working in the same way and can avoid a lot of repetition and redundancy.

    None of the above are intended to take more than a few minutes to create and set up. The payback is quite high and long term benefits are huge.

  • Quality Assurance for Startups

    Quality Assurance for Startups sounds like a bit of an oxymoron. Startup companies and leaders have enough on their mind without adding that ‘horribly slow and stodgy Quality Assurance Process’ to the mix.

    This concept is wrong for a number of reasons:

    1. Quality Assurance is never about being slow or bringing the process to a halt. It’s all about speeding up delivery of whatever you are supplying.
    2. Set up good processes at the start of your business and make improvements that have the biggest return, before bad or wasteful habits become entrenched.
    3. A startup needs to provide a product or service that ‘delights the final customer’. A product or service that falls short in some makes for a short-lived company.

    What does a startup need from Quality Assurance? Just enough to make the final deliverable delight the customer!

    So what should you have?:

    1. Processes that ensure feedback from the customers is received.
    2. Sufficient information about the way the deliverable was constructed so that feedback can be actioned.
    3. Assurance that the changes made will not impact existing functionality adversely.
    4. Consideration of how to implement future growth opportunities.

    Of the above list, the last two are the more important.

    We generally would consider the third point to be a form of regression testing and the earlier that is planned and implemented, the cheaper it is. However, it is often left (as we can personally testify) to a later release and the startup spends thousands of hours and a lot of funding retroactively forcing in regression testing. Minimal consideration of the possibility of needing this will SAVE A LOT later on.

    The fourth point above is slightly more difficult to apply since it requires some anticipation of future needs based on limited information. We will leave that one for next week.

  • Quality Assurance – Implementing Right the First Time

    The last three NVP Blogs have discussed Doing it Right the First Time. The last one addresses the issue of Implementing Right the First Time. This is the part that usually trips up most people. They know they want to implement this in their organization. They know how or they can refer to explanations that will suggest how. The problem comes when we try to actually implement the process.

    As is usual with almost any new initiative, we want to follow three precepts:

    1. Start small.
    2. Pick off the easy items first.
    3. Publish the successes.

    Taking these in order:

    Start small
    Start with something over which we have full control or a limited number of stakeholders. Do not start with a mission critical project with numerous stakeholders; that will not work.

    Pick off the easy items first
    A quick analysis will reveal some small and easy to fix items that can be corrected. Sometimes it can be as small as adding a field to a defect report that avoids an extra step further down in the process or removing a step like having Quality Control test a defect as it arrives from the customer before passing it to development and then testing it on the way back out. The second example might have had use at one point but no longer makes sense. A third and frequently easy place to look for improvements is in items that have been made redundant by technology changes. These can include printing items that are now easily stored online or even still testing installation disks for a hosted system.

    Publish the successes
    Even though this is third, it requires some upfront thought. We need to know the current situation and statistics before we can determine whether improvement has occurred. So even though this is the ‘last’ step it must be considered early.

    Rule 3: Take a step back; look objectively at your process; pick off a few items that can be improved; check the current situation; make the change and measure again.

    This is the first step to implementing Right the First Time or Quality Improvement in your organization. Next week; an anonymous example of How Not to be Right the First Time.