软件测试,测试工具,软件测试培训,性能测试,测试管理,测试工程师,测试用例,自动测试

TestAge 软件测试论坛's Archiver

Zee 发表于 2008-6-18 14:55

What is performance testing?

[font=宋体][size=12pt]Whatis performance testing? That seems like a silly question, doesn't it? I mean,we've all seen definitions for performance testing. We've conducted performancetests -- or been on projects where performance testing is conducted. But whatis it [i]really[/i]? And why is it that even when there seems to be obviousconfusion about what performance testing is and is not, people seem hesitant tostep back and ask "What do [i]you[/i] mean when you refer to performancetesting?"[/size][/font]
[font=宋体][size=12pt]WhileI was working on some new training material the other day, I typed exactly thisquestion on the top of the first content slide for what is to become a coursefor the University of California Extension, Santa Cruz. I figured this was anice easy place to start, to ensure the class started out with a common foundation.After about half an hour of typing and deleting information on that slide, itdawned on me that this really isn't such an easy place to start after all. [/size][/font]
[font=宋体][size=12pt]Ilooked back through my previous training material, articles, notes fromworkshops, and books and articles by my biggest influencers, and I didn't finda single description that I really liked. I quickly jotted down a dozen bulletpoints on the slide that roughly equated to my evolving answers to the question"What is performance testing?" A DOZEN! And I've only been aperformance tester for seven years! If you were to ask an accountant "Whatis accounting?" every six months during his or her first seven years inthe field, I'd wager that you'd be worried if you got a dozen differentanswers. So what makes this question so much harder for this field than itseems like it ought to be? [/size][/font]
[font=宋体][size=12pt]Theoldest description among my resources is "Performance testing is testingrelated to speed, scalability and stability." I like that answer becauseit's easy for me to remember, and it's easy to teach in a class where I havesupporting materials for "speed," "scalability" and"stability." But as a one-sentence answer with no additional context,it can mean just about anything. [/size][/font]
[font=宋体][size=12pt]Blendingthis with Cem Kaner's definition of [url=http://www.kaner.com/pdfs/ETatQAI.pdf][color=windowtext]software testing[/color][/url] yieldsthis definition: [/size][/font]
[font=宋体][size=12pt]"Performance testingis an empirical, technical investigation conducted to provide stakeholders withinformation about the quality of the product or service under test with regardto speed, scalability and/or stability characteristics." [/size][/font]
[font=宋体][size=12pt]While,to date, this remains my preferred definition, it's only marginally more usefulthan answering the question "What is green?" by saying that green is"a color with many different shades, all within a wavelength of roughly520–570 NM." [/size][/font]
[font=宋体][size=12pt]Inseveral conference talks, I've stated that "performance testing is asuperset of load, stress and endurance testing." I find this descriptionto be useful because load and stress testing are so commonly misused assynonyms for performance testing. Outside of making that point, however, thatsentence is nothing more than most of a [url=http://whatis.techtarget.com/definition/0,,sid9_gci1151315,00.html][color=windowtext]BuzzwordBingo[/color][/url] card. [/size][/font]
[font=宋体][size=12pt]Atother times I've contrasted performance testing to functional testing bystating that: [/size][/font]
[font=宋体][size=12pt]"Functional testing is(most frequently) conducted to determine whether or not an application [i]can[/i]do what it is intended to do without (too many) errors. Performance testing is(most frequently) conducted to determine whether or not an application [i]will[/i]do what it is intended to do acceptably in reality." [/size][/font]
[font=宋体][size=12pt]Onceagain, that is an answer that is useful in some situations, but not all.Besides, it's still not particularly descriptive, and it requires that a personhave an understanding of functional testing to even be useful. [/size][/font]
[font=宋体][size=12pt]Decidingto take a different approach, I started thinking about the value stakeholdershope to achieve via performance testing: [/size][/font]
[list][*][font=宋体][size=12pt]Predictions or estimates     of various performance characteristics that end users are likely to     encounter when using the application. [/size][/font][*][font=宋体][size=12pt]Information about     how various performance characteristics of the application in production     will relate to real or perceived performance requirements and/or     competitive applications. [/size][/font][*][font=宋体][size=12pt]Identification of     existing or potential bottlenecks and performance defects that are likely     to detract from user satisfaction if not resolved prior to releasing the     application to production. [/size][/font][*][font=宋体][size=12pt]Assessments of the     accuracy of scalability and/or capacity planning models based on actual     production usage. [/size][/font][*][font=宋体][size=12pt]Identification of     existing or potential functional errors that aren't detectable with     single-user scenarios but can or will manifest under multi-user scenarios.[/size][/font][/list][font=宋体][size=12pt]Lookingat that list, I noticed some commonalities that are (at least relatively)unique to performance testing: [/size][/font]
[list][*][font=宋体][size=12pt]Realistic     multi-user simulations. [/size][/font][*][font=宋体][size=12pt]User satisfaction. [/size][/font][*][font=宋体][size=12pt]Identification of     defects, or potential defects, that are unlikely to be detected via other     categories of testing. [/size][/font][*][font=宋体][size=12pt]Subjectivity in     determining the "goodness" of test results.[/size][/font][/list][font=宋体][size=12pt]Puttingall of that together, it seems to me that a reasonable answer to the question"What is performance testing?" may be the following: [/size][/font]
[font=宋体][size=12pt]"Performance testingis a method of investigating quality-related characteristics of an applicationthat may impact actual users by subjecting it to reality-basedsimulations." [/size][/font]
[font=宋体][size=12pt]Thechallenge of defining and describing what we do isn't limited to performancetesting, but it is a common challenge with young and evolving fields. For thatreason, it will probably be a very long time before we, as an industry,converge on definitions and descriptions we like. This is a reality that weshould accept as advantageous rather than being frustrated by. I look at itthis way: I'd rather work with a gradually evolving set of definitions anddescriptions than end up having to face the challenges the astronomicalcommunity is currently dealing with as a result of a late-game realization thatthe long-standing definition of "planet" had ceased making senseafter generations of universal acceptance. [/size][/font]
[font=宋体][size=12pt]So,after all of that, I'm still not sure what goes on that slide to kick off thetraining class. For that matter, I'm thinking I might want to spend the entire firsthour of class on "What is performance testing?" -- not just the firstslide. [/size][/font]

阳光 发表于 2008-6-19 16:06

版主最好给翻译一下

这么往上贴英文的东西,看不太懂

Zee 发表于 2008-6-19 23:23

翻译还不如我看了,写感悟呢。

阳光 发表于 2008-6-23 10:30

写感悟也可以,反正这样的英文效果不好

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.