测试概念

来源:互联网 发布:c语言double范围 编辑:程序博客网 时间:2024/04/30 06:03

Some Testing Glossary

[From http://digitalelectronics.blogspot.com/2007/10/some-testing-glossary.html ]

Black box testing

not based on any knowledge ofinternal design or code. Tests are based on requirements and functionality.

White box testing

based on knowledge of theinternal logic of an application's code. Tests are based on coverage of codestatements, branches, paths, conditions.

Unit testing

the most 'micro' scale oftesting; to test particular functions or code modules. Typically done by theprogrammer and not by testers, as it requires detailed knowledge of theinternal program design and code. Not always easily done unless the applicationhas a well-designed architecture with tight code; may require developing testdriver modules or test harnesses.

Incremental integration testing

continuous testing of anapplication as new functionality is added; requires that various aspects of anapplication's functionality be independent enough to work separately before allparts of the program are completed, or that test drivers be developed asneeded; done by programmers or by testers.

Integration testing

testing of combined parts of anapplication to determine if they function together correctly. The 'parts' canbe code modules, individual applications, client and server applications on anetwork, etc. This type of testing is especially relevant to client/server anddistributed systems.

Functional testing

black-box type testing geared tofunctional requirements of an application; this type of testing should be doneby testers. This doesn't mean that the programmers shouldn't check that theircode works before releasing it (which of course applies to any stage oftesting.)

System testing

black box type testing that isbased on overall requirement specifications; covers all combined parts of asystem.

End-to-end testing

similar to system testing; the'macro' end of the test scale; involves testing of a complete applicationenvironment in a situation that mimics real-world use, such as interacting witha database, using network communications, or interacting with other hardware,applications, or systems if appropriate.

Sanity testing

typically an initial testingeffort to determine if a new software version is performing well enough toaccept it for a major testing effort. For example, if the new software iscrashing systems every 5 minutes, bogging down systems to a crawl, ordestroying databases, the software may not be in a 'sane' enough condition towarrant further testing in its current state.

Regression testing

re-testing after fixes ormodifications of the software or its environment. It can be difficult todetermine how much re-testing is needed, especially near the end of thedevelopment cycle. Automated testing tools can be especially useful for thistype of testing.

Acceptance testing

final testing based onspecifications of the end-user or customer, or based on use byend-users/customers over some limited period of time.

Load testing

testing an application underheavy loads, such as testing of a web site under a range of loads to determineat what point the systems response time degrades or fails.

Stress testing

term often used interchangeably with'load' and 'performance' testing. Also used to describe such tests as systemfunctional testing while under unusually heavy loads, heavy repetition ofcertain actions or inputs, input of large numerical values, large complexqueries to a database system, etc.

Performance testing

term often used interchangeablywith 'stress' and 'load' testing. Ideally 'performance' testing (and any other'type' of testing) is defined in requirements documentation or QA or TestPlans.

Usability testing

testing for 'user-friendliness'.Clearly this is subjective, and will depend on the targeted end-user orcustomer. User interviews, surveys, video recording of user sessions, and othertechniques can be used. Programmers and testers are usually not appropriate asusability testers.

Install/uninstall testing

testing of full, partial, orupgrade install/uninstall processes.

Recovery testing

testing how well a systemrecovers from crashes, hardware failures, or other catastrophic problems.

Security testing

testing how well the systemprotects against unauthorized internal or external access, willful damage, etc;may require sophisticated testing techniques.

Compatibility testing

testing how well softwareperforms in a particular hardware/software/operating system/network/etc.environment.

Exploratory testing

often taken to mean a creative,informal software test that is not based on formal test plans or test cases;testers may be learning the software as they test it.

Ad-hoc testing

similar to exploratory testing,but often taken to mean that the testers have significant understanding of thesoftware before testing it.

User acceptance testing

determining if software issatisfactory to an end-user or customer.

Comparison testing

comparing software weaknesses andstrengths to competing products.

Alpha testing

testing of an application whendevelopment is nearing completion; minor design changes may still be made as aresult of such testing. Typically done by end-users or others, not byprogrammers or testers.

Beta testing

testing when development andtesting are essentially completed and final bugs and problems need to be foundbefore final release. Typically done by end-users or others, not by programmersor testers.

Mutation testing

a method for determining if a setof test data or test cases is useful, by deliberately introducing various codechanges ('bugs') and retesting with the original test data/cases to determineif the 'bugs' are detected. Proper implementation requires large computationalresources.

 

 
原创粉丝点击