软件测试技术:Part I The Big Picture_第1页
软件测试技术:Part I The Big Picture_第2页
软件测试技术:Part I The Big Picture_第3页
软件测试技术:Part I The Big Picture_第4页
软件测试技术:Part I The Big Picture_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SE-307 Software Testing 2先修课程 &后续课程先修课程离散数学和图论(Discrete mathematics and Graph Theory)高级程序设计语言 (Advanced Programming Language )软件工程导论(Introduction to Software Engineering)数据库系统(Database Systems)编译原理(Principles of Compiler Construction) 后续课程软件质量保证(Software Quality Assurance)软件过程改进(Software Process Imp

2、rovement) 3Textbook:R. Patton. Software Testing, 2nd Ed. Sams, 2005, ISBN 0-672-32798-8影印版:软件测试(第2版),经典原版书库,北京:机械工业出版社,2006,ISBN 7-111-17770-3References:P. Jorgensen. Software Testing: A Craftsmans Approach, 2nd Ed. CRC Press, 2002, ISBN 0-849-30809-7 A. Mathur. Foundations of Software Testing. Addi

3、son-Wesley Professional, 2008, ISBN 8-131-71660-0 4成绩计算综合成绩=平时考勤+大作业成绩+期末考试 20% 40% 40%教学网站/courses/sqa/用户名:sser,密码:ToBeNo.15ContentsPart I. The Big Picture (6 hours) Part II. Testing Fundamentals (24+3 hours) Part III. Applying Your Testing Skills (3 hours) Part IV. Supplementing Your Testing (3 ho

4、urs) Part V. Working with Test Documentation (3+3 hours) Part VI. The Future (2 hours)6ObjectivesUnderstand the basic concepts of software testing;Perform effective and efficient structural and functional testing of your software; Integrate and test the various units and components of your software

5、system; Select the appropriate tests to regression test your software after changes have been made;the software testing effort. Plan, track and control Part I: The Big PictureSoftware Testing 8ContentsDefinition of software testingSoftware Testing FrameworkSoftware Testing Background The Software De

6、velopment ProcessThe Realities of Software Testing The definition of software testing The use of manual or automatic means to run or determination of a systematic process. Its purpose is to test whether it needs to meet the requirements or expected results to identify the difference between the actu

7、al results. -IEEE1983910Software Testing Framework Basic test theory and technologyTest Standards and Criteria Test environment and toolsTest ManagementPart 1 Section 1 Software Testing Background12ContentsInfamous Software Error Case StudiesWhat Is a Bug?Why Do Bugs Occur?The Cost of BugsWhat Exact

8、ly Does a Software Tester Do?What Makes a Good Software Tester?13Infamous Software Error Case StudiesDisneys Lion King, 1994-1995 Intel Pentium Floating-Point Division Bug, 1994(4195835 / 3145727) * 3145727 4195835NASA Mars Polar Lander, 1999 Patriot Missile Defense System, 1991 The Y2K (Year 2000)

9、Bug, circa 1974 Dangerous Viewing Ahead, 2004 14What Is a Bug? Terms for Software Failures Defect(缺点), Fault(故障), Failure(失败), Variance(偏差), Incident(事件), Anomaly(异常),Problem(问题), Inconsistency(矛盾), Error(错误), Feature(特殊), Bug(缺陷),Its important as a software tester to understand the personality behi

10、nd the product development team youre working with. All software problems will be called bugs.15Software Bug : A Formal Definition A software bug occurs when one or more of the following five rules is true:The software doesnt do something that the product specification says it should do.The software

11、 does something that the product specification says it shouldnt do.The software does something that the product specification doesnt mention.The software doesnt do something that the product specification doesnt mention but should.The software is difficult to understand, hard to use, slow, or in the

12、 software testers eyes will be viewed by the end user as just plain not right.16Why Do Bugs Occur?The main cause can be traced to the specification. The next largest source of bugs is the design. Coding errors can be traced to the softwares complexity, poor documentation (especially in code thats be

13、ing updated or revised), schedule pressure, or just plain dumb mistakes. The other category is the catch-all for whats left. 17The Cost of Bugs The costs are logarithmic that is, they increase tenfold as time increases. A bug found and fixed during the early stages when the specification is being wr

14、itten might cost next to nothing, or $1 in our example. The same bug, if not found until the software is coded and tested, might cost $10 to $100. If a customer finds it, the cost could easily be thousands or even millions of dollars. 18What Exactly Does a Software Tester Do? The goal of a software

15、tester is to find bugs. The goal of a software tester is to find bugs and find them as early as possible. The goal of a software tester is to find bugs, find them as early as possible, and make sure they get fixed.Note:Its important to note that fixing a bug does not necessarily imply correcting the

16、 software. 19What Makes a Good Software Tester? Heres a list of traits that most software testers should have:They are explorers. They are troubleshooters. They are relentless. They are creative. They are perfectionists. They exercise good judgment. They are tactful and diplomatic. They are persuasi

17、ve. 20Summary Highlights of this chapter How software bugs impact our livesWhat bugs are and why they occurWho software testers are and what they doPart 1 Section 2 The Software Development Process 22ContentsProduct ComponentsSoftware Project StaffSoftware Development Lifecycle Models23Product Compo

18、nents What Effort Goes Into a Software Product?24Product ComponentsWhat Parts Make Up a Software Product?25Software Project Staff Project managers, program managers, or producers drive the project from beginning to end. Architects or system engineers are the technical experts on the product team. Pr

19、ogrammers, developers, or coders design and write software and fix the bugs that are found. Testers or QA (Quality Assurance) Staff are responsible for finding and reporting problems in the software product. 26Software Project StaffTechnical writers, user assistance, user education, manual writers,

20、or illustrators create the paper and online documentation that comes with a software product. Configuration management or builder handles the process of pulling together all the software written by the programmers and all the documentation created by the writers and putting it together into a single

21、 package. 27Software Development Lifecycle Models The process used to create a software product from its initial conception to its public release is known as the software development lifecycle model. There are four frequently used models, with most others just variations of these:Big-BangCode-and-Fi

22、xWaterfallSpiralRapid Application Development28Big-BangThe beauty of the big-bang method is that its simple. In most cases, there is little to no formal testing done under the big-bang model.Your job is really just to report what you find so the customers can be told about the problems. 29Code-and-F

23、ix Model Default model. As a tester on a code-and-fix project, you need to be aware that you, along with the programmers, will be in a constant state of cycling. You will most likely encounter the code-and-fix model during your work as a software tester. 30Waterfall Model From a testing perspective,

24、 advantage: They know exactly what theyre testing, and theres no question about whether something is a feature or a bug. a large disadvantage: Because testing occurs only at the end, a fundamental problem could creep in early on and not be detected until days before the scheduled product release. 31

25、Spiral Model If youre a tester, youll like this model. Youll get a chance to influence the product early by being involved in the preliminary design phases. 32Rapid Application DevelopmentRAD or V模型33改进的V模型编码系统功能设计系统/软件设计细节设计接受测试系统测试特征测试单元测试确认 需求客户、用户PM技术支持校验 设计设计分析校验测试34SummaryThe highlights of thi

26、s chapter What major components go into a software productWhat different people and skills contribute to a software productHow software progresses from an idea to a final productTheres no definitive approach. Work the best you can in the development model youre in, applying the testing skills you le

27、arn in the rest of this book to create the best software possible. farucalgary.caPart 1 Section 3 The Realities of Software Testing 36ContentsTesting AxiomsSoftware Testing Terms and Definitions37Testing Axioms Its Impossible to Test a Program CompletelyThe number of possible inputs is very large.Th

28、e number of possible outputs is very large.The number of paths through the software is very large.The software specification is subjective. You might say that a bug is in the eye of the beholder.Example: the Microsoft Windows Calculator. 381+1=1+99999999999999999999999999999999=you can move on to 2+

29、0=, 2+1=, 2+2=, and so on. Eventually youll get to99999999999999999999999999999999+99999999999999999999999999999999=Next you should try all the decimal values: 1.0+0.1, 1.0+0.2, and so on.The point of this example is to demonstrate that its impossible to completely test a program, even software as s

30、imple as a calculator. 39Testing Axioms (continued)Software Testing Is a Risk-Based Exercise You cant test everything, and if you dont, you will likely miss bugs. The product has to be released, so you will need to stop testing, but if you stop too soon, there will still be areas untested. What do y

31、ou do?One key concept that software testers need to learn is how to reduce the huge domain of possible tests into a manageable set, and how to make wise risk-based decisions on whats important to test and whats not.The goal is to hit that optimal amount of testing so that you dont test too much or t

32、oo little. 40Testing Axioms (continued)Testing Cant Show That Bugs Dont Exist Software testing works exactly as the exterminator does. It can show that bugs exist, but it cant show that bugs dont exist. You can perform your tests, find and report bugs, but at no point can you guarantee that there ar

33、e no longer any bugs to find. 41Testing Axioms (continued)The More Bugs You Find, the More Bugs There Are Programmers have bad days. Programmers often make the same mistake. Some bugs are really just the tip of the iceberg. 42Testing Axioms (continued)The Pesticide Paradox In 1990, Boris Beizer, in

34、his book Software Testing Techniques, Second Edition, coined the term pesticide paradox to describe the phenomenon that the more you test software, the more immune it becomes to your tests. To overcome the pesticide paradox, software testers must continually write new and different tests to exercise

35、 different parts of the program and find more bugs. 43Testing Axioms (continued)Not All the Bugs You Find Will Be FixedTheres not enough time. Its really not a bug. Its too risky to fix. Its just not worth it. 44Testing Axioms (continued)When a Bugs a Bug Is Difficult to Say If theres a problem in t

36、he software but no one ever discovers it not programmers, not testers, and not even a single customer is it a bug? Its not uncommon for two people to have completely different opinions on the quality of a software product. One may say that the program is incredibly buggy and the other may say that i

37、ts perfect. How can both be right? The answer is that one has used the product in a way that reveals lots of bugs. The other hasnt. 45Testing Axioms (continued)Product Specifications Are Never Final The software industry is moving so fast that last years cutting-edge products are obsolete this year.

38、 At the same time, software is getting larger and gaining more features and complexity, resulting in longer and longer development schedules. These two opposing forces result in conflict, and the result is a constantly changing product specification. As a software tester, you must assume that the sp

39、ec will change. 46Testing Axioms (continued)Software Testers Arent the Most Popular Members of a Project Team, Here are a couple of tips to keep the peace with your fellow teammates Find bugs early. Temper your enthusiasm. Dont just report bad news. 47Testing Axioms (continued)Software Testing Is a

40、Disciplined Technical Profession The software industry has progressed to the point where professional software testers are mandatory. Its now too costly to build bad software. Much more software is now developed with a disciplined approach that has software testers as core, vital members of their st

41、aff. 48Software Testing Terms and DefinitionsPrecision(精确)and Accuracy(准确)Whether the software you test needs to be precise or accurate depends much on what the product is and ultimately what the development team is aiming at (excuse the pun). 49Software Testing Terms and Definitions (continued)Verification(确认) and Validation(验证) Verification is the process confirming that something software meets its specification. Validation is the process confirming that it meets the users requirements. These may sound very similar, but an explanation of

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论