Our testers can determine which combination of testing methods best suits your application to assure a quality product.


Testing Methods


CDM Testing Services offers a variety of software testing methods. Whether the application requires one testing technique or several, we can generate a comprehensive test plan to meet the needs of our customers.


If our customer's testing requirements don't match our current capabilities, we will strive to learn new testing techniques to satisfy those requirements. We enjoy expanding our ever-growing testing capabilities to fulfill the needs of our customers.


To test applications we use a variety of leading industry testing tools, such as VMWare and Rational Robot, along with our custom tools, such as TeTra, which keeps track of features testing and test cases. Our current testing methods and tools include:


  • Black Box Testing

    Ensures an application works in accordance with system requirements and meets user expectations. To do this the tester must view the system as a black box and know nothing about the specific lines of code or algorithms.


  • Compatibility Testing

    Ensures an application’s compatibility with target operating systems and hardware platforms (computer environments). We use VMWare to test applications within different operating systems in a virtualized environment. VMWare allows us to simultaneously run software in multiple operating systems on the same physical computer. This accelerates the testing process and reduces the additional costs associated with having to test applications on different software and hardware platforms.


  • Configuration Testing

    Ensures configuration requirements function across different variations of hardware and software. This form of testing is important for web-based systems because they can have dramatic changes in function with only minor changes in the code. Configuration testing can pinpoint where alterations in the software have changed the performance of an application. VMWare is just one of the tools used to test these different configurations.


  • Conformance Testing

    Verifies that the implementation conforms to industry standards. This typically involves testing an application’s behavior to ensure it provides the portability, interoperability, and/or compatibility specified by an industry standard for software applications. The standards may come from industry leaders and organizations such as the Institute of Electrical and Electronics Engineers (IEEE) or the National Institute of Standards and Technology (NIST).


  • Functional Testing

    Evaluates a product’s compliance with its design and functional specifications. Includes feature-by-feature testing, cross feature task-based testing, boundary and error checking, ad-hoc and exploratory testing, and wide area network emulation.

    As more applications adhere to a Service-Oriented Architecture (SOA) and run over a wide area network such as the Internet, wide area network emulation becomes an integral part of our testing. A wide area network emulator must test a distributed application in a realistic environment including low bandwidth across error prone networks. This realistic environment uncovers critical functional errors, such as data loss and corruption.


  • Manage and Track Features Testing

    To keep track of features testing, CDM developed and uses an internal software program called TeTra. TeTra, an abbreviation of Testing Tracker, allows us to monitor the testing progress and keep detailed notes about tested and untested features.


  • Installation Testing

    Confirms an application retains data and functionality through normal and abnormal events during the installation process. Events could include shortage of disk space, unexpected loss of communication, or power outages.


  • Integration Testing

    Verifies that the interaction of two or more components satisfies the functional requirements for an application. We design test cases to examine all possible interactions between individual components.


  • Interface Testing

    Evaluates whether data correctly transfers between system components. Software bugs found during this testing usually come from interface failures or data inconsistencies resulting in data loss or corruption.


  • Performance Testing

    Provides an understanding of application scalability and allows for performance benchmarking. One form of performance testing is load testing, which measures the performance of an application under normal operating conditions. We identify bottlenecks under these conditions by monitoring a database, application server, and various other components. Rational Robot is used for automated performance testing of thick client applications. For thin client applications, we use a wide area network emulator to determine whether performance is acceptable within a given operating environment.


  • Regression Testing

    Ensures that enhancements, bug fixes, or any other changes made to an application, have not broken existing functionality. While progressing through the development cycle, new code or bug fixes may create new problems in an application. Regression testing, performed throughout a development cycle, detects these new bugs as soon as possible so they can be fixed. To save time and money, our test team can automate most regression testing by using Rational Robot in combination with TeTra.


  • Stress Testing

    Evaluates a system at or beyond the limits of its specified requirements. This may include increasing the number of users, volume of data, or data processing speed. Knowing where a system will fail allows developers to design safety measures into the software, thereby creating a more reliable application.


  • Usability Testing

    Ensures an application satisfies its intended user base. Usability testing evaluates the ease of learning and using a system in its intended working environment. When performed throughout a development cycle, usability testing assures the creation of a more intuitive application. This in turn provides the additional benefit of an application that is easier to learn and support once released.


Contact us for more information about our testing methods.