The Heuristic Test Strategy Model is a set of patterns for designing and choosing tests to perform. The
immediate purpose of this model is to remind testers of what to think about during that process. I encourage
testers to customize it to fit their own organizations and contexts.
启发式测试策略模型是用于设计和选择要执行的测试的一组模式。**这该模型的直接目的是提醒测试人员在此过程中要考虑的问题。**我鼓励测试人员可以对其进行自定义,以适合自己的组织和环境。
Creating and executing tests is the heart of the test project. However, there are many factors in the project environment
that are critical to your decision about what specific tests to create. In each category, below, consider how that element
may help or hinder your test design process. Try to exploit every resource.
创建和执行测试是测试项目的核心。但是,项目环境中有很多因素这对于您决定要创建哪些特定测试至关重要。在下面的每个类别中,请考虑该元素如何可能会帮助或阻碍您的测试设计过程。尝试利用每种资源。
Mission. Your purpose on this project, as understood by you and your customers.
Information. Information about the product or project that is needed for testing.
Developer Relations. How you get along with the programmers.
Test Team. Anyone who will perform or support testing.
Equipment & Tools. Hardware, software, or documents required to administer testing.
Schedule. The sequence, duration, and synchronization of project events
Test Items. The product to be tested.
Deliverables. The observable products of the test project.
Ultimately a product is an experience or solution provided to a customer. Products have many dimensions. Each category,
listed below, represents an important and unique element to be considered in the test strategy.
Structure. Everything that comprises the physical product.
• Code: the code structures that comprise the product, from executables to individual routines.
• Hardware: any hardware component that is integral to the product.
• Non-executable files: any files other than multimedia or programs, like text files, sample data, or help files.
• Collateral: anything beyond software and hardware that is also part of the product, such as paper documents, web links and content,
packaging, license agreements, etc.
Function. Everything that the product does.
• Application: any function that defines or distinguishes the product or fulfills core requirements.
• Calculation: any arithmetic function or arithmetic operations embedded in other functions.
• Time-related: time-out settings; periodic events; time zones; business holidays; terms and warranty periods; chronograph functions.
• Security-related: rights of each class of user; protection of data; encryption; front end vs. back end protections; vulnerabilities in sub-systems. • Transformations: functions that modify or transform something (e.g. setting fonts, inserting clip art, withdrawing money from account).
• Startup/Shutdown: each method and interface for invocation and initialization as well as exiting the product.
• Multimedia: sounds, bitmaps, videos, or any graphical display embedded in the product.
• Error Handling: any functions that detect and recover from errors, including all error messages.
• Interactions: any interactions between functions within the product.
• Testability: any functions provided to help test the product, such as diagnostics, log files, asserts, test menus, etc.
Data. Everything that the product processes.
• Input/Output: any data that is processed by the product, and any data that results from that processing.
• Preset: any data that is supplied as part of the product, or otherwise built into it, such as prefabricated databases, default values, etc.
• Persistent: any data that is expected to persist over multiple operations. This includes modes or states of the product, such as options settings,
view modes, contents of documents, etc.
• Interdependent/Interacting: any data that influences or is influenced by the state of other data; or jointly influences an output.
• Sequences/Combinations: any ordering or permutation of data, e.g. word order, sorted vs. unsorted data, order of tests.
• Cardinality: Numbers of objects or fields may vary (e.g. zero, one, many, max, open limit). Some may have to be unique (e.g. database keys).
• Big/Little: variations in the size and aggregation of data.
• Invalid/Noise: any data or state that is invalid, corrupted, or produced in an uncontrolled or incorrect fashion.
• Lifecycle: transformations over the lifetime of a data entity as it is created, accessed, modified, and deleted.
Interfaces. Every conduit by which the product is accessed or expressed.
• User Interfaces: any element that mediates the exchange of data with the user (e.g. displays, buttons, fields, whether physical or virtual).
• System Interfaces: any interface with something other than a user, such as other programs, hard disk, network, etc.
• API/SDK: Any programmatic interfaces or tools intended to allow the development of new applications using this product.
• Import/export: any functions that package data for use by a different product, or interpret data from a different product.
Platform. Everything on which the product depends (and that is outside your project).
• External Hardware: hardware components and configurations that are not part of the shipping product, but are required (or optional) for the
product to work: systems, servers, memory, keyboards, the Cloud.
• External Software: software components and configurations that are not a part of the shipping product, but are required (or optional) for the
product to work: operating systems, concurrently executing applications, drivers, fonts, etc.
• Embedded Components: libraries and other components that are embedded in your product but are produced outside your project.
• Product Footprint: The resources in the environment that are used, reserved, or consumed by the product (memory, filehandles, etc.)
Operations. How the product will be used.
• Users: the attributes of the various kinds of users.
• Environment: the physical environment in which the product operates, including such elements as noise, light, and distractions.
• Common Use: patterns and sequences of input that the product will typically encounter. This varies by user.
• Disfavored Use: patterns of input produced by ignorant, mistaken, careless or malicious use.
• Extreme Use: challenging patterns and sequences of input that are consistent with the intended use of the product.
Time. Any relationship between the product and time.
• Input/Output: when input is provided, when output created, and any timing relationships (delays, intervals, etc.) among them.
• Fast/Slow: testing with “fast” or “slow” input; fastest and slowest; combinations of fast and slow.
• Changing Rates: speeding up and slowing down (spikes, bursts, hangs, bottlenecks, interruptions).
• Concurrency: more than one thing happening at once (multi-user, time-sharing, threa