70-565 - Test types

Filed under: , by:

One of the topics on the 70-565 exam is "Stabilizing and Testing an Application" and about 17% of questions on the exam cover that topic. I don't know how many questions are there on the exam but if it is 50, then testing, code review and resolving a bug should appear on about 9 questions. When reading the exam skill measured tab on the Microsoft web site, one can notice that it mentions only performance, functional and integration testing. It doesn't even mention unit testing. And there's a few other test types that I think every enterprise application developer should be familiar with and as always they might appear in some questions on the exam.

  • ACCEPTANCE TESTING - testing to verify a product meets customer specified requirements. A customer usually does this type of testing on a product that is developed externally
  • BIG BANG INTEGRATION TESTING - In big bang Integration testing, individual modules of the programs are not integrated until every thing is ready. This approach is seen mostly in inexperienced programmers who rely on 'Run it and see' approach. In this approach, the program is integrated without any formal integration testing, and then run to ensures that all the components are working properly.
  • BLACK BOX TESTING - testing without knowledge of the internal workings of the item being tested. Tests are usually functional
  • BOTTOM-UP TESING - In bottom up integration testing, module at the lowest level are developed first and other modules which go towards the 'main' program are integrated and tested one at a time. Bottom up integration also uses test drivers to drive and pass appropriate data to the lower level modules. As and when code for other module gets ready, these drivers are replaced with the actual module. In this approach, lower level modules are tested extensively thus make sure that highest used module is tested properly.
  • COMPATIBILITY TESTING - testing to ensure compatibility of an application or Web site with different browsers, OSs, and hardware platforms. Compatibility testing can be performed manually or can be driven by an automated functional or regression test suite
  • CONFORMANCE TESTING - testing to verify implementation conformance to industry standards
  • FUNCTIONAL TESTING – testing to validate an application or Web site conforms to its specifications and correctly performs all its required functions. This entails a series of tests which perform a feature by feature validation of behavior, using a wide range of normal and erroneous input data. This can involve testing of the product's user interface, APIs, database management, security, installation, networking, etc. Funcitonal testing can be performed on an automated or manual basis using black box or white box methodologies
  • INTEGRATION TESTING - testing in which modules are combined and tested as a group. Modules are typically code modules, individual applications, client and server applications on a network, etc. Integration testing follows unit testing and precedes system testing
  • LOAD TESTING - load testing is a generic term covering Performance Testing and Stress Testing
  • PERFORMANCE TESTING - performance testing can be applied to understand your application or WWW site's scalability, or to benchmark the performance in an environment of third party products such as servers and middleware for potential purchase. This sort of testing is particularly useful to identify performance bottlenecks in high use applications. Performance testing generally involves an automated test suite as this allows easy simulation of a variety of normal, peak, and exceptional load conditions
  • REGRESSION TESTING -Similar in scope to a functional test, a regression test allows a consistent, repeatable validation of each new release of a product or Web site. Such testing ensures reported product defects have been corrected for each new release and that no new quality problems were introduced in the maintenance process. Though regression testing can be performed manually an automated test suite is often used to reduce the time and resources needed to perform the required testing
  • SMOKE TESTING - a quick-and-dirty test that the major functions of a piece of software work without bothering with finer details. Originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch on fire
  • STRESS TESTING - testing conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how. A graceful degradation under load leading to non-catastrophic failure is the desired result. Often Stress Testing is performed using the same process as Performance Testing but employing a very high level of simulated load
  • SYSTEM TESTING - testing conducted on a complete, integrated system to evaluate the system's compliance with its specified requirements. System testing falls within the scope of black box testing, and as such, should require no knowledge of the inner design of the code or logic
  • TOP DOWN INTEGRATION TESTING - is an incremental integration testing technique which begins by testing the top level module and and progressively adds in lower level module one by one. Lower level modules are normally simulated by stubs which mimic functionality of lower level modules. As you add lower level code, you will replace stubs with the actual components. Top Down integration can be performed and tested in breadth first or depth firs manner.
  • UNIT TESTING - functional and reliability testing in a development environment. The primary goal of unit testing is to take the smallest piece of testable software in the application, isolate it from the remainder of the code, and determine whether it behaves exactly as you expect. Each unit is tested separately before integrating them into modules to test the interfaces between modules. Unit testing has proven its value in that a large percentage of defects are identified during its use.
  • WEB TESTING - A Web test, also called a declarative Web test, consists of a series of HTTP requests. Web tests work at the protocol layer by issuing HTTP requests. Web tests are used to test the functionality of Web applications and to test Web applications under load. Web tests, although useful by themselves, are also used in load tests, which allow for aggregating several Web tests to simulate a real user load on your Web site
  • WHITE BOX TESTING - testingbased on an analysis of internal workings and structure of a piece of software. Also known as Structural Testing and Glass Box Testing

1 comments:

On April 28, 2010 at 3:38 AM , Software Load Testing said...

Hi, This article is really nice and include almost each and every type of testing. Thanks for sharing this article.