In IT project management, avoiding costly errors improves both profitability and customer trust. Software testing and business analysis professionals are needed by high-tech companies, software manufacturers and Web application developers to prevent failures and improve the flow of information. Aligning software testing with business analysis can make delivery of products and services even more effective.
With decision tables, state-based testing and use cases, software testing professionals can perform a full range of business logic testing of a system.
Decision tables are best used in transactional testing situations, where typical workflows are independent of each other. Inputs, preconditions and other factors are sufficient during a single transaction to determine the actions the system should take. Software testing with decision tables focuses on combinations of conditions that cause the wrong action to occur - or the correct action to not occur. Decision tables have proven easier to understand and review than code.
State-based testing is ideal when pervious events and conditions interact with current events and conditions. Specifically, it can be used when sequences of events occur and conditions apply to those events, plus the proper handling of an event or condition depends on events and conditions that have occurred in the past.
In use cases, preconditions and post conditions help to protect a workflow from the previous and next workflows. It is a way to ensure that typical and exceptional workflows and scenarios for a system have been tested from various users' and stakeholders' points of views. Users interact directly with a system, while stakeholders interact indirectly with a system.
Use cases assume that the typical workflows are independent of each other, and exceptions occur when a typical workflow cannot occur. In formal use cases, clearly-defined preconditions and post conditions guarantee certain things are true at the beginning and end of the workflow.
The concept of a use case can vary considerably, but essentially, there is a list of steps, often depicted in a flow chart, which describes the user's interaction with a system. The results obtained at the end of the sequence of steps should benefit someone, either the user or another stakeholder.
The steps should show a typical workflow, sometimes referred to as the primary scenario, the normal, basic or main course, the normal flow, or the "happy path." The steps should also show abnormal processing, also called exceptions, exceptional processing and alternative courses.
Software is error-ridden, in part because it is growing in complexity. Products are described in millions of lines of code - not thousands, as in previous decades. Software developers and software testing professionals spend much of their time identifying and correcting defects. At the heart of the matter is the difficult task of defining and measuring software quality.
Software errors are highly costly to businesses. A National Institute of Standards and Technology (NIST) study* found that each year, software errors cost the U.S. economy an estimated $59.5 billion. This figure could potentially be reduced by $22.2 billion with feasible improvements in the software testing arena. This impact on a business's bottom line means IT professionals specializing in software testing and quality assurance are especially in demand and can command high salaries.
Quality assurance (QA) and system test engineers write the test plans, test specifications and certifying requirements at the system level. They use their software testing skills to identify product weaknesses and improve processes, procedures and profitability.
Software testing/QA engineers develop automated testing methods to ensure software is designed to specifications. They may perform business analysis in developing custom tools to solve problems. A software testing/QA engineer typically strives to improve processes continuously to increase the efficiency of quality assurance and software development, contributing to a company's bottom line.
These IT professionals prevent business losses by writing and executing automated tests and performing analysis on code bugs. They ensure customer demands are met by helping software providers deliver properly-performing products.
Senior-level software testing professionals may help cutting-edge tech companies deliver the APIs consumers demand for use in mobile devices and websites. They supervise the design and delivery of test strategies, plans and automated test cases for retailers and other product and service firms. They work closely with upper management to ensure high-quality software is released.
High-level business analysis jobs often incorporate aspects of information technology and software testing. Advanced training and education, along with industry-respected credentials, can prepare you to compete for a challenging and lucrative business analysis and management career.
* The Economic Impacts of Inadequate Infrastructure for Software Testing. National Institute of Standards and Technology, May 2002.