2007-04-06 | Testing & The Role of a Test Designer / Tester 【转】
上一篇 / 下一篇 2007-04-27 22:35:02 / 个人分类:测试职业
Testing & The Role of a Test Designer / Tester
@k9MM:S)a/L#xH g{0By"D1b!r3t9um&P0原文地址:http://www.devbistro.com/articles/Testing/Role-of-Test-Designer-Tester51Testing软件测试网7VQ)_c@\f
51Testing软件测试网q0@7Y"mgOXhThe Role of the Test Designer / Tester is to design and document test cases, execute test cases, record test case results, document and track defects, and perform test coverage analysis. To fulfill this role the designer applies appropriate test analysis, test design, and coverage analysis methods as efficiently as possible while meeting the test organizations testing mandate. The objective is to obtain as much test coverage as possible with a minimum set of test cases.51Testing软件测试网k)@~xk/n
Responsibilities and Deliverables
51Testing软件测试网N+xR9B6Q5fVTest Case Design51Testing软件测试网7mke]B7`%~4IJ
A test case design is not the same thing as a test case . the design captures what the Test Designer / Tester is attempting to accomplish with one or more test cases. This can be as informal as a set of notes or a formal deliverable that describes the content of the test cases before the actual tests are implemented.51Testing软件测试网Y&~B\5Lp [!\
Test Cases
],yu"M
bX3s,U0A test case is a sequence of steps designed to test one or more aspect of the application. At a minimum, each test case step should include: a descrīption of the action, supporting data, and expected results. The test case deliverable can be captured using a "test case template" or by using one of the several commercial / freeware / shareware tools available.
Test Case Execution51Testing软件测试网:h$Ng5iPE+?"aI
Test case execution is the actual running or execution of a test case. This can be done manually or by automated scrīpts that perform the actions of the test case.51Testing软件测试网i2K8m K+r3N,K${
@sX%U|F^0Capturing Test Results51Testing软件测试网xK*D"jq`
Capturing test results is a simple itemization of the success or failure of any given step in a test case. Failure of a test case step does not necessarily mean that a defect has been found -- it simply means the application did not behave as expected within the context of the test case. There are several common reasons for a test case step to fail: invalid test design / expectations, invalid test data, or invalid application state. The tester should ensure that the failure was caused by the application not performing to specification and that can the failure can be replicated before raising a defect.
%[c(z,X0[Z0Document Defects
Qz2gk*e]l0The tester documents any defects found during the execution of the test case. The tester captures: tester name, defect name, defect descrīption, severity, impacted functional area, and any other information that would help in the remediation of the defect. A defect is the primary deliverable of any tester . it is what is used to communicate to the project team.
Test Coverage Analysis51Testing软件测试网*bXG\9I"Unl
The tester must determine if the testing mandate and defined testing scope have been satisfied -- then document the current state of the application. How coverage analysis is performed is dependent on the sources available to the tester. If the tester was able to map test cases to well formulated requirements then coverage analysis is a straightforward exercise. If this is not the case the tester must map test cases to functional areas of the application and determine if the coverage is "sufficient" -- this is obviously more of a "gut-check" than a true analysis.
Testing Mandate and Scope
51Testing软件测试网/D9u!@ pD,w\)adThe Test Designer / Tester must have a clear understanding of the Testing Mandate and Testing Scope before proceeding with their task - for more on Testing Mandates and Testing Scope see the associate article "Testing and The Role of a Test Lead / Test Manager". The temptation of any tester is to test "everything"; the problem is that this cannot be done with any application within a reasonable timeframe. The tester must ensure any test cases to be designed and executed fit into the scope of the current testing effort -- if not then either the scope needs to be redefined or the test cases need to be dropped.51Testing软件测试网mDJAv,o7x;k.~e
Test Phases and Test Case Design
0u;u+r"o I5~ni%E!X0The testing phase impacts the style, content, and purpose of any given test case. If the designer can think of the test phases in terms of "levels of abstraction" or "range of view" then the types of tests that need to be implemented for any given phase of testing become apparent.
OhB\8M m1H051Testing软件测试网!y(PGULe1GUnit Test
L[fv"\_ X0The test designer, in this case the developer, creates test cases that test at the level of a line of code.
Function Test51Testing软件测试网d h*F*Zd1b4op
The test designer creates test cases that test at the level of distinct business events or functional process.
System Test51Testing软件测试网^
X)T-Qs[0d
The test designer creates test cases that test at the level of the system (Stress, Performance, Security, Recovery, etc.) or complete end-to-end business threads.51Testing软件测试网s
erw ef
Acceptance Test51Testing软件测试网`8q_]c:~;mn
The test designers, in this case a system matter expert or end-user, creates test cases that test at the level of business procedures or operational processes.51Testing软件测试网E5f;`GYFN
_:a`/@{c6E-T5PC`0Any given test case should not replicate the testing accomplished in a previous phase of testing. One of the most common mistakes that testers and testing organizations make is to replicate the previous coverage accomplished in Function test when creating test cases for System test.
D Kz |xZ|7^{0Defect Content
51Testing软件测试网t-P3jn F(Uf IbA defect is the most important deliverable a test designer creates. The primary purpose of testing is to detect defects in the application before it is released into production; furthermore defects are arguably the only product the testing team produces that is seen by the project team. The tester must document defects in a manner that is useful in the defect remediation process . at a bare minimum each defect should contain: Author, Name, Descrīption, Severity, Impacted Area, and Status. For example, if a defect was discovered during functional testing of a typical Login screen then the information captured by the defect could look like this:51Testing软件测试网[m6MG1C4\s4R f4@
X}%G6T uw8G7c9R0Defect Name / Title
c#w;T"z'^5F0The name or title should contain the essence of the defect including the functional area and nature of the defect. All defects relating to the login screen would begin with "Login Screen" but the remainder of the name would depend on the defect.51Testing软件测试网of1@+q3pP
7k#f4g+n9HD ]0Example: "Login Screen -- User not locked out after three failed login attempts"51Testing软件测试网)_*?Eqe:Ch0[c
&x
Fcu%FbTo q/o1f0Defect Descrīption
6K{w@3N0The descrīption should clearly state what sequence of events leads to the defect and when possible a screen snapshot or printout of the error.
0d0w9u0g]e0Example: "Attempted to Login using the Login Screen using an invalid User Id. On the first two attempts the application presented the error message "Invalid User Id or Password -- Try Again" as expected. The third attempt resulted in the same error being displayed (ERROR). According to the requirements the User should have been presented with the message "Invalid User Id or Password -- Contact your Administrator" and been locked out of the system."
0E'AM-t!\ w3D%P0fy1Lc
\TzUi#[0How to replicate
y-r_w0a$`,@0The defect descrīption should provide sufficient detail for the triage team and the developer fixing the defect to duplicate the defect.
Defect severity51Testing软件测试网xJ
^l!?(s ~
The severity assigned to a defect is dependent on: phase of testing, impact of the defect on the testing effort, and the Risk the defect would present to the business if the defect was rolled-out into production. Using the "Login Screen" example if the current testing phase was Function Test the defect would be assigned a severity of "Medium" but if the defect was detected or still present during System Test then it would be assigned a severity of "High".