Ivesia Solutions
Where brilliance meets technology

Posts Tagged ‘Software Testing’

Software Quality – A trade-off between time, budget and quality

Software is pretty complex and there is very limited understanding of its principles.  Most defects in software are design errors, not production defects. Complications also arise from the dynamic nature of software programs. Often, testing has to be restarted after the preliminary defect is fixed and the associated costs can be prohibitively expensive.

Despite the challenges, testing is an integral part of ensuring a quality software development cycle.

Ensuring software quality is not about finding bugs and defects. These complications are directly related to the code that is written. Quality means complying with the business outcomes expected of the software. Factors that need to be assessed are:

  • Functionality – correctness, reliability, usability and integrity
  • Engineering – efficiency, testability and documentation
  • Adaptability – flexibility, reusability and maintainability

Test Automation – Some Practical Tips

Test automation is not about removing testers but to make use of their time better. It is impossible to automate testing completely, and it has to be a mix of automation and manual testing.  If you have decided to automate testing, below are some practical tips  for implementing any test automation initiative:

1. Focus on the methodology and not the tool

A clearly defined automation methodology that covers how the automation process will be conducted can eliminate most of the frustrations associated with automation by providing stakeholders with an upfront understanding. This would provide a fair idea on what is needed to automate tests, which includes tool selection as well as the rest of the automation process.

2. Choose tools that are scalable to meet future needs

How to Test on Tight Testing Schedule

Although proper testing requires substantial amount of time and effort in planning and execution, there are situations when time is limited and full-fledged testing runs against the time limitation. How can testers handle such situations?

When facing a limited time frame available for testing, we need to effectively use the available time and resources. Starting the testing of the project with an assumption that “We can’t test everything, no matter what” will really help in prioritizing tasks. Do a risk analysis to identify functionalities with the highest risks and functionalities that will be used by the maximum number of users. Do an analysis about what to test first and in which sequence.

Also, preparing a checklist that focuses on major key areas covered during testing will help testers, by ensuring that they are not missed out in the tight scheduled testing. The checklist should cover

Pair Testing – Have You Tried It

Pair Testing is one of the interesting testing methodologies where a pair – developer and Tester, or 2 testers, or sometimes tester and business user will test the application. This kind of testing approach is followed in situations when the requirement and specification is not very clear or the team is new and need to learn the application in a short spam

Pair Testing gains the advantage of analysing the root cause of major bugs easily and since the tester is aware of bug root cause, he/she may start with exact test scenarios to capture bugs and can easily test the initial bug fixing status with the developer. The tester can learn more about the software application by exploring with the developer.

The following would be the gaining points when Pair Testing is followed

Non-Functional Testing Too is important in QA Process

Majority of the testers will focus more on testing the product against client requirements – which we mention as Functional Testing and pay less attention to non-functional testing. Non-functional requirements often play a significant role in differentiating between a product that is well received by customers vs one that may not do well in the market place. Some of the key non-functional requirements include Usability, Performance, Security, and Interoperability & Compatibility. To be more precise, Functional requirements define what a system will do while Non-functional requirements describe how the system will do it. Non-functional requirements characterize the behavior that is required in functional requirements

There are some situations which really makes the QA users and project managers to think about importance of non-functional testing for their products. A few of them would be

Removing software defects and errors – we’re closer to the Holy Grail!

Defect free or bug free software is in the wish list of many software vendors for ages and it hasn’t materialized and people are still looking for the Holy Grail. No piece of software can be bug free, however we can ensure that it works well in a controlled environment.

Defects are introduced in the software at all phases starting from requirements to analysis to design to development to verification to implementation to maintenance. In addition, 50% of the bugs are introduced when programmers try to fix a known bug. Essentially, any activity that is performed by a programmer or a member of the project team has potential for introducing a bug, which will in turn result in a defect and not allow the software from serving its intended purpose.

How to Overcome the Challenges of a Testing Organization – Part II

I have earlier written in Part I about the challenges of a testing organization. We also touched upon shortly about the solution, which is a Testing Centre of Excellence (TCoE). In this post, let us see in detail what exactly a Testing Centre of Excellence is.

In a traditional model of testing, members of separate project teams do the verification and validation in the software development lifecycle. These teams need to be trained for each project and is not an efficient process. Additionally, they cannot ensure consistent quality across a business unit as they are focused on specific projects that have varying levels of budget allocation.

TCoE

Assume that there are 6 projects that are carried out in a business unit; each project will have phases like requirements, design, development, testing, deployment and support. In a TCoE, testing as a function is kept as a shared service across all the 6 projects that provide unbiased verification and validation.

How to overcome the challenges of a Testing Organization? – Part I

I am planning to cover this topic in two parts:

Part I will deal with the challenges of a testing organization and the solution for the challenges.
Part II will specifically talk about the solution in detail and how to implement the solution.

The challenges of the testing organization can be categorized as follows:

Business Analyst Challenges

  • Product does not meet user requirements. Business requirements are not properly transformed into functionality
  • Time spent to support different teams for requirements clarifications is too high

Management Challenges

  • Customer is facing lots of issues after ‘Go Live’
  • Cost and effort spent are increasing exponentially
  • Availability of software, to market on time are always a question mark

Development Challenges

  • Requirements keep on changing and we don’t get clarification on time

Bootstrapping a software product development effort

Software companies need to take concepts to products quickly so that they can reach the market faster. However, in this process, sometimes they end up building a monster application, which upon maturity, companies have to spend tons of time and money in scaling.

Let me explain this in detail. In your development efforts, doing it right the first time is always costly and time consuming. A workaround will take less time and will probably save a whole load of money from the budget. The general attitude is that we will fix it as we go along when we have the resources. As the time moves on, the workaround never gets done, more and more of the code starts to depend on the workaround. Not only that, users also depend on the workaround. The amount of fixing that needs to be done now begins to multiply and your core product starts losing its significance. Foresight here really pays in the long-term and makes life easier in the future.