Software testing FAQs for business people
What is software testing?
Software testing is the evaluation of a system or application by results. It takes place under controlled conditions which, ideally, simulate normal and high load operations. The purpose of software testing is to ensure that the system or application produces the results required by end users. The idea is to intentionally try to make things go wrong in order to determine if the system or application can produce the desired results under various circumstances. This is accomplished through a process of identifying and correcting errors in software before it is released.
Why is software testing important?
Our civilization increasingly relies on digital technology to perform numerous functions and many of these functions deal with life and death scenarios. Or, at the very least, can result in loss of money and/or reputation when they fail. Software testing exists to make certain that software is as error free as possible.
What is a software testing team?
Software testing involves a team consisting of developers, project managers and testers and may include other individuals such as usability specialists and end users. Who is on the team depends on the type of application or system under test.
What is involved in the testing of websites?
There are a number of elements included in the testing of websites. These include, but are not limited to, applications running within web pages, TCP/IP communications, how well the web site interacts with various browsers and different servers as well as usability standards and connection speeds. All websites must meet certain general agreed upon industry standards with regard to usability.
What is a test case?
A test case is a detailed set of actions designed to determine if a particular feature of an application or website is functioning correctly. Test cases are normally delineated early in the testing cycle and their purpose is to find possible areas of difficulty and to make certain that the design meets requirements. Test cases are normally a part of a testing plan.
What is a testing plan?
The testing plan is the documented details of the testing regime, including its focus and objectives. Such plans are often developed in collaboration with end users. Their main objective is to ensure that all elements from the system, such as database interface, function properly and deliver the correct results.
Is it possible to find every defect in a piece of software?
No. There are simply too many input and output combinations in any given system. Trying to test every possible combination will always cause costs to rise beyond acceptable limits as well as permanently delay release. The only way that all possible defects could be found would be if the software in question has only one input and one output, which are the same every time. Even then, it might not be possible to know what even the simplest software would do under every circumstance. However, it is possible to determine what testing is needed based upon a risk assessment of the application.
Why should I hire professional testers?
Testing can show the presence of defects and professional testers have the training and experience to know where to look. While undiscovered defects may still remain, the number of remaining defects will be far lower and remaining defects will be less likely.
When should testing start?
Testing should begin as early as possible. The closer to the start of the development lifecycle, the better. This helps make sure that design meets requirements. The earlier the start, the easier it is to begin the different elements of the testing cycle at the optimum times.
What does the software testing cycle entail?
The software testing lifecycle begins with an analysis of requirements. Requirements are defined as what the software is intended to do and what the system performance requirements are. Taken together, this is defined as functional testing (software performance) and non functional testing (security and system performance. Taken together, these two types of testing are defined as quality assurance. Requirements are gathered from the various stakeholders, codified and documented.
Once requirements are delineated, the next step is to determine what functional and nonfunctional tests must be performed in order to meet those requirements. This entails gathering details, establishing priorities and recording user requirements.
Test planning is then carried out in what is sometimes called the Test Strategy Phase. This includes documenting what types of tests will be required, what tools will be needed and what resources and training will be required.
Test cases and automation scripts are then developed and mapped to requirements through what is called a Requirement Traceability Matrix. This assures that no functions are missed and all are thoroughly tested.
The testing environment is then set up, including all hardware and software necessary to carry out the the required tests. Smoke tests are then performed on the build to make certain that the application is ready to move forward in testing. This is followed by carrying out all the various types of functional and nonfunctional testing as determined by the initial requirements.
Tests are then carried out per established plans and test cases. These tests are then documented as defects and failed cases appear. Defects and failed test cases are then mapped to the Requirement Traceability Matrix. Retesting occurs and fixes are tracked to closure.
As you can see, software testing is a professional operation that should not be done by amateurs. The quality of your testing results is determined by the skill and expertise of the testers involved. It can also be an expensive process. This is why Bugwolf puts so much emphasis on vetting testers and uses gamification to cut costs while still delivering the the high level of quality required.