QA Articles

This page contains a collection of articles written by employees and contributors.

Which Software Testing Company?


Software Testing Services

A key area to focus on when considering a software testing company is its software testers. Today there exists two popular certifications, ISEB and ISTQB. Try and ensure that the software testers at least hold these certifications at foundation level. Another factor with regards to software testers is the amount of experience they have. Many software testing companies state that there testers have five years I.T. experience. But reading between the lines, this simply means that they have five years experience anywhere in the field of Information Technology. You should really ask the software testing company, how many years professional software testing experience they actually have.

Many software testing companies offer a wide range of software testing services. Caution should be used though, as many of these companies will advertise these services but may not necessarily have the expertise to perform them. The types of software testing services that any professional company should offer is:

Test Case Creation

This very popular service typically involves creating detailed test cases that not only can be used on the project under test, but also due to their high quality can be re-used on future projects and form a high quality test documentation asset. Good testers will accumulate all required information necessary to produce the test cases, typically from design documentation, requirements and developer interview. Once the information has been analyzed a software tester will create a sophisticated excel spreadsheet which includes test cases, results sheets, environment setup and version details etc. Clients are involved in every stage of test case development in the form of a test case review process.

Functional Testing

Typical software products today include large amounts of critical functionality and complex features, added to this significant time pressures to get the product released make functional testing one of the most important stage of any software development. A software tester's manual functional testing techniques have been proven to be highly effective at essentially determining whether or not the functionality actually works, or not. Versatile software testers can work from their own created test cases or use any pre-existing test cases you may already have. Good software testers readily use ad-hoc techniques when executing any tests to expand the test coverage. The aim during functional testing is to highlight any issues as early as possible so the developers can resolve it. This can obviously effectively reduce the development costs to your company.

Usability Testing

In order to ensure your software meets the needs of the end user; Usability Testing can be used. Not only will usability testing detect errors, but it will also detect navigational issues, language issues, workflow experience etc. Good software testers put themselves into the mindset of the end user and will report on the 'look & feel' of the software under test. Good software testers often build a set of test cases based upon real end user scenarios or business cases to ensure the software is tested in a similar way to how the real end users will actually use the software. This type of software testing has been proven to increase the ROI of software developments by enhancing the end user experience and therefore potentially increasing product sales. As usability testing is trying to ensure that the end user experience is appreciated, we perform this type of testing manually.

Regression Testing

Regression testing is surprisingly often overlooked area of software testing. This is often due to the assumption that when new functionality is working correctly then the software is ready for release. However, more often than not, additional issues have been introduced that affect existing functionality. Software testers have the knowledge and experience to identify existing test cases that are suitable for regression. Regression test cases are commonly functional test cases that are reused at regular intervals throughout the software development to ensure that the expected results remain consistent, thus providing confidence that nothing has been adversely affected by change.

Acceptance Testing

Acceptance testing is typically driven by the end user or customer. Acceptance test cases are normally executed by the customer prior to accepting the product. But commonly, these test cases are also given to the software developers to ensure their product meets the level of acceptance before the end of development. Software testers can perform execution of these test cases to highlight any issues to the development team as early as possible. Software testers can also derive expected acceptance test cases from customer requirements for you. On a smaller scale our software testers can also derive smoke tests to act as a form of acceptance tests during stages of the software development life cycle.

System Testing

System testing of software is testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. Good software testers treat System testing as an investigatory testing phase, where the focus is to have almost a destructive attitude and will aim to test not only the design, but also the behavior and even the believed expectations of the customer. Software testers will It is also test up to and beyond the bounds defined in the software requirements specification. This is test that if a failure occurs, that it is handled correctly by the software with as little impact on the customer as possible.

Exploratory Testing

Commonly, while the software is being tested, a good software tester learns things that together with experience and creativity generates new good test cases to run. Good software testers consider exploratory testing to be an approach that can be applied to any test technique, at any stage in the development process. Software testers adopt the exploratory approach during all stages of testing. However, many software test teams use the exploratory testing approach during the final stages of a development just to allow a software testers to roam freely throughout the software focusing on areas of functionality that the software tester has a 'gut feel' where there may be issues. This approach can often detect defects that have previously not been considered in other 'more formal' areas of software testing.

Installation Testing

Installation testing is a type of software testing that focuses on what customers will need to do to install and set up the new software successfully. The testing process may involve full, partial or upgrades install/uninstall processes. Good software testers will typically perform installation testing when a compiled version of code has reached the final stages of testing or pre-production environment, from which it may or may not progress into final production. By the use of virtual machines, software testers can replicate many different operating systems and environments to fully test installation of software.


Which iPhone App Testing Company?

 

With the fasted growing form of software development in recent history, iPhone App developers need to ensure their App outshines their competitors and is of the highest quality. Therefore, high quality App Testing is of the utmost importance. This article highlights the key areas of what to look for in an iPhone App Testing company.

Real iPhone or iPhone Simulator?

It is critical that your App is tested on a real iPhone. There are many companies out there that offer App Testing, but if you take a closer look you will find out that they are using a simulator. Don't be fooled by any suggested benefits of an iPhone simulator, as they are merely small 'Safari' browser windows dressed up to look like an iPhone. A real iphone uses an 'ARM' type processor and an iPhone simulator runs on a Windows/Mac platform which will be using an 'Intel' type processor. Add to this memory, operating system and other hardware interactions you cannot realistically test your App unless it is on a real iPhone. Check first with the Testing company that they will use a real iPhone in their testing.

Functional Testing

Typical iPhone Apps today include functionality ranging from the simple to the highly complex, which makes functional testing one of the most important stage of any App development. A professional software tester should be able to use functional testing techniques to determine whether or not the features within the App functions correctly. The aim of the functional testing should be to highlight any issues and and feed them back to the developer, so they can resolve it ASAP. An iPhone App Testing company should be able to use ad-hoc functional testing techniques if there is no design documents provided with the App. Always aim to provide a description at minimum of the intended functionality of the App to give the testers something to test against, and check that the testers have the skills to functionally test without documentation.

A professional iPhone App Testing company should incorporate techniques such as Boundary Value Analysis and Equivalence Partitioning when testing an App. These techniques are typically used to test functions of the App where the user is required to input something. Again, always check first with any testing company to ask which techniques they will use to test your App.

Stability Testing

One the most common problems with any App is memory related issues. When encountered, this typically results in a crash, which is extremely undesirable from an end users perspective. If a crash does occur during testing, make sure the testing company provides you with any associated crash logs, as this will help you identify where the problem is located.

A professional iPhone App Tester should be able to thoroughly test the App while monitoring memory usage. This is essentially known as 'Stability Testing' and is key to the success of any App. Testing in this area should also involve manipulating the amount of available memory for the App under test to monitor its behavior when available memory is low. Also, the amount of memory consumed by the App should be reported back to the developer.

Usability Testing

Your software must meet the needs and expectations of the customer. By performing Usability Testing; issues relating to navigation, text, workflow and general user experience should be detected. A professional software tester should be able to put themselves into the mindset of the end user/customer. Also check with the testing company that they will report on the 'look & feel' of the software under test too, as this is valuable information to give back to the developer. Good software testers will often build a set of test cases based upon typical user scenarios to ensure the software is tested in a similar way to how the real end users will actually use the software.

Exploratory Testing

Often people term 'Exploratory Testing' as just playing with the App. However, a professional App tester considers exploratory testing to be an effective form of testing that utilizes experience and intuition to locate App issues. This free-play testing approach allows the tester to roam through the App applying random tests and seeking out possible loopholes and stressing the App to find any defects. This highly effective approach is traditionally performed after the Functional testing.

Closing thoughts

Any reputable iPhone App Testing Company will employ professional software testers that come from a wide ranging background. However, many Testing companies claim to employ professional software testers, when in fact they are cheaply hired students or who have no real professional testing experience at all. You should be able to ask the Testing company about the experience levels of the App Testers and ideally seek to use professionals with a minimum of at least six years professional software testing experience. If you're not convinced always ask to see the proposed tester's resume/CV.

A quick turnaround can be important. You don't want to have to wait weeks for the green light to release your App. So ask up front to check how long the total testing time will be and how quickly any issues found will be fed back to you.

Lastly, price is often a deciding factor on how much testing an App will be given. Some companies offer multiple programs, some of which can be found under a hundred dollars and contain a 'light' form of testing which can serve as a good sanity check before an Apps release. Other testing programs are more expensive and offer a 'deeper' more thorough test and suit more complicated or high profile Apps. Talk with the iPhone Testing company about your App, a professional iPhone Testing company should be able to provide you with the information you need to get your App tested and released on time, and with complete confidence.

 

Reviews - Best Practices in Software Development

 

Reviews are an effective way of testing an item related to a software product during development. A review can be performed very early on in the development life-cycle, even before any code has been written. This effectively allows a form of testing to be performed, which will in turn highlight any issue that can be rectified early, which is typically much more cheaper to rectify than later on in the development life-cycle. Reviews are often performed manually, but there is no hard and fast rule, as there are tools available to assist with reviews.

The aim of any review is to provide comments or feedback based on the item being looked at. Reviews will often have an objective, for example, there maybe an objective for people to gain understanding of the item being looked at, or the objective may be to simply find defects. There are several different types of review which range from 'very informal' to 'very formal'. The more formal it is, generally the more structured and documented it is. Often, multiple reviews may be required to be performed on a single item. This will often be the case, when an item is reviewed which results in the need for the item to be updated based on the comments received during the review. A subsequent additional review may be called to go through the updates to ensure they were fully understood and implemented correctly.

Any item can be reviewed. The item to be reviewed could be a document, a requirement, a piece of code, a test case or a web page etc...basically anything. A review can detect various things, for example; during a requirement review, omissions are often found. These types of omissions would rarely get detected by other means such as dynamic testing. Reviews have the advantage of being able to detect other issues such as deviations from standards, design related defects and requirement defects.

One of the main objectives that reviews have is that of finding defects. But, its not just reviews that have this objective. Static-Analysis and Dynamic Testing also share the same objective. Each of these tasks each have their own merits and are all effective at finding specific types of defects. In fact, they do actually compliment each other and be used side-by-side in most software development life-cycles. Static techniques are said to typically find the 'cause' of a failure of defect, rather than the failures themselves.

The benefits of reviews is quite obvious to anyone who has actually participated in one, especially the formal types of reviews. But, in summary, reviews allow the early defect detection and correction of defects, improvements to development productive, potential reduction in development time-scales, cost and time reduction, improved communication, potentially fewer defects.

Always ensure a review has a clear objective, even for the most informal review. This way each attendee knows the reason why they taking part in the review and will allow them to prepare in advance. Invite only the right people needed to fulfill the review objective. There is nothing worse than a review meeting being effectively 'taking-over' the review and taking the review away from its intended objective. For example, for a test case review, you would expect to see software testers on the list of review attendees. Comments and defects should be welcomed, and the ability for everyone in the review to be able to express their opinions freely is very important to get the most out of any review. For the person whose item is being reviewed, they should be criticized for their work but be made to feel 'positive' about there work and feel open to accept changes where needed. The designated chair of the review, should make sure that the physiological aspects of 'people-issues' don't adversely affect the review. Various roles exist for reviews, and should be freely used and assigned to the right people to ensure an effective and efficient review is achieved. Some people may not be familiar with the process of a review, and so its important to ensure everyone is brought up to the same level so each review participant knows exactly what to expect to get the best possible result from a review. Reviews promote a learning philosophy and process improvement opportunity in any department where they are used, it is therefore much more effective if a review process is supported by Managers.

 

Best iPhone Apps - From an App Tester's Perspective

 

This year has seen a steady incline in iPhone Apps being developed. Anyone who owns an iPhone is spoilt for choice when it comes to choosing an App to download, no matter which category. With the steady stream of new Apps being released, it is difficult for any of us to keep up with what's new and also what is in fact actually worth downloading. I hope to assist in this area with what I think are the best Apps of 2010. Being an iPhone App tester I am in position not to just judge an App on its uniqueness, value for money etc. but also its actual 'quality'. Many of us actually judge an App by its quality, often without realizing it. Just look at some App reviews and see the users comments.

The following list represents what I have found to be of outstanding quality, and many other factors including value for money, uniqueness, usability and usefulness during my iPhone App testing sessions during 2010. Each of these Apps have been downloaded and tested by myself and my test team and have all passed rigorous iPhone App tests.

1.Skyfire web browser
One of the most annoying times being an iPhone owner is when browsing to a website only to find that the website has flash content. As we know, the iPhone doesn't like any kind of flash content, and so this App was greeted with excitement and also trepidation, as we had to ask the question; could it really play flash videos? Well, the answer is undoubtedly a big yes. This for me gets the 1st place rating for 2010, as it not only is unique and very well designed, but has actually improved the iPhone itself. The App works by converting Flash content into a format that the iPhone can understand with very good results. We tested this with a vast array of different files and content formats, and for the most part the results were outstanding, just a few minor issues but nothing to really complain about.

2. Alarm Clock
This is one of those 'must-have' type Apps that every self respecting iPhone owner should have. It rates very highly in usability and has a surprising amount of features for something marketed as a clock. For example, it has multiple themes and colors to suit everyone's taste, also displays local weather information, a music player and also a flashlight would you believe. Our test team rated this one highly for its ease of use and above all its usefulness, probably the perfect App for anyone away from home.

3. Ask.com
Most of us use search engines and many of us have downloaded search engine Apps for our iPhones. But, when we tested this one, we found just how good a simple App can be if its designed correctly. This one rated highly for its usability, and is pretty much perfect from a functional aspect. It has a nice bonus of having a speech recognition feature built-in, so you don't even have to waste time entering information.

4. Angry Birds
Not being a fan of simplistic games on my iPhone, I was blown away by this App. It is fun to play, and incredibly addictive. Its no wonder this App has been one of the top selling Apps of all time. It includes many lengthy levels and is outstanding value for just 99c. This App scored very highly in our Usability and Functional tests. Transitions between screens was simple and effective, and there were no issues relating to stability seen during our long-term system testing.

5. Battery Doctor Pro
There has been much talk about smart-phones and their inability to hold a charge for any considerable length of time. This handy utility really made a difference to the battery life of the iPhone, and stood head and shoulders above the competition. We found on our functional testing this App was solidly built and was simple to use. It provided very useful information back to the user including how many minutes were remaining etc.

As iPhone App Testers, we are looking forward to testing some great iPhone Apps during 2011. If the quality of the App's tested are anything like 2010, then as Testers and iPhone owners, 2011 is going to be a good year!

 

Cost Effective Way To Test Your Software

 

Outsourced software testing, is a common form of QA activity being carried out in the western hemisphere. Software concerns in that region often try out this 'outsourced' form of software testing to reduce their costs. The idea is that if a software tester asks for $60 to the hour for testing projects, the outsourced work should probably cost a lot less than that. So that would be more feasible in terms of overall costs incurred for the particular project.

Outsourced software testing does have many advantages and several drawbacks as well. The biggest advantage, apart from reducing cost is that you get a second opinion about your software project from a neutral party. Person who is most probably living in a totally different environment can give you an insight into your system from a QA point of view and that can, in fact help you in improving your system. There could be many different ideas to the system that you will get reports on, following an initial test cycle, as the software testing not only means testing the project but also make any suggestions/improvements in the system and that is very important. A vital part of any software test activity, in fact. So now you not only get your software project tested, you also get suggestions to further improve the project and that helps manifold to the overall business. You can improve your revenue and also your client base should theoretically increase as a result of the improvements. So you get the work done at a low cost and with prospectively great advantage!

There are, however some downsides to outsourced software testing as well. Often the communication becomes an issue between the concerned parties. Also the time difference creates scheduling issues. In order to cover for that the parties have to agree on a time frame in which they can hold their meetings. Mostly it is the case of being up and working on an awkward time! Also, if the other party attempts to 'cheat' on the client you have to cover for that. There is something called NDA (non-disclosure agreement) which is a legal contract between the concerned firms/companies. They keep the business information protected this way.

Also another issue with using an outsourced software testing company is that you need to understand the other country's culture as well. Especially if it is a long-term big budget project, where the parent firm will most probably need to visit the hired company's offices periodically (could be once every 6 months or once in the year, depending on the companies' mutual agreement). Another possibility is that the parent firm appoints a manager or a representative who goes to the other country where the hired company is located, and he stays there for the duration of the project so as to make sure the proper work is being done. That way there is less stress on the overseas company to keep the work in check.

To conclude, using an outsourced software testing company has many advantages but also some disadvantages. It all depends on the category of project and the resources of the company when it comes to deciding if outsourcing is worth the effort or not. It does have the potential to bring great improvements, and can also end up being very costly in terms of time and money spent!

 

Free Mobile Apps - Considering The Risks

 

What is ignorance? Wiki says - Ignorance is a state of being uninformed (lack of knowledge). Now I will not buy that definition necessarily for my context, but that is not the subject of this post though. Because sometimes we know the risk associated with something but we still go ahead!

We are too closely related with our laptops, mobile handsets and other accessories that helps us in getting connecting with all these. As we move onto a world where we would like to do things on the go and for that matter we have started using our mobile handsets for everything we do.

We would like be in touch with friends, surf on the go, check out important widget that helps you arranging the things properly on your device, and we are always in the search of FREE applications for that matter. If you are one of those who is having a mobile handset with active internet connection then I am sure you must be browsing the appropriate folder on your device for any FREE application available for you or not. Sounds good!

Even I can not resist myself from checking out stuff that helps me using the FREE applications that does not me anything but works for me. How do you really trust whether an application you are downloading will not harm your mobile handset? Do you like to try out these application to see whether they fit your requirements or not? Or even do you just try them to see if they works as expected? Many questions and I am sure there will be many answers too.

We fail to realize the risk associated with these FREE applications or for that matter even PAID ones. Does that mean we should really stop the usage of these applications? Ah! Not so. If that is the case then we might end up loosing out quite good applications in the Mob World. But you have to be a bit cautious!

Whenever you feel that the application you just checked worth downloading then make sure that you check the reviews, if possible use Google or any information available for the application or not.


Company Projects

Testing for Charity
Our new educational scheme designed to allow testers of all abilities to voluntarily work on various charities' applications and websites to gain testing experience.

Read More
Software Testing Training
We will be releasing a range of software testing training products throughout 2011. The training will be aimed at ISEB and ISTQB software testing certifications.

Read More
Education in Africa
We proudly donate a percentage of our monthly company profits to a range of educational charity projects in Africa.
See how you can help too.

Read More