Agile Testing StrategiesSQAForums:敏捷測試策略sqaforums_第1頁
Agile Testing StrategiesSQAForums:敏捷測試策略sqaforums_第2頁
Agile Testing StrategiesSQAForums:敏捷測試策略sqaforums_第3頁
Agile Testing StrategiesSQAForums:敏捷測試策略sqaforums_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、agile testing strategiesscott ambleras scott shows here, the quality of your system is only as good as the quality of your testing efforts.scott is a ddj senior contributing editor and author of numerous it books. he can be contacted at scottambler.html. 1 philosophical groundworkover the past few m

2、onths, ive had more and more people ask me about how we go about testing on agile projects. agile developers are definitely test infected, and this month, i explore several strategies for testing on agile software development projects. a word of warning: although we clearly dont follow our fathers s

3、erial testing methodology of yesteryear, i suspect that we can still learn a few tricks from dear old dad.lets start by setting the philosophical groundwork: first, you want to test as early as you possibly can because the potential impact of a defect rises exponentially over time (this isnt always

4、true, but its something to be concerned about). in fact, many agile developers prefer a test-first approach. second, you want to test as often as possible, and more importantly, as effectively as possible, to increase the chance that youll find defects. although this increases your costs in the shor

5、t term, studies have shown that greater investment in testing reduces the total cost of ownership of a system due to improved quality. third, you want to do just enough testing for your situation: commercial banking software requires a greater investment in testing than membership administration sof

6、tware for your local girl scouts group. fourth, pair testing, just like pair programming and modeling with others, is an exceptionally good idea. my general philosophy is that software development is a lot like swimmingits very dangerous to do it alone.2. testing throughout the lifecyclefigure 1 pre

7、sents a high-level view of the agile lifecycle for the purpose of testing (see initiating an agile project at for details). agile projects go through an often short initiation phase (iteration 0) where we set the foundation for the project; a construction phase where we develop the system in an evol

8、utionary (iterative and incremental) manner; an end game phase where we transition our system into production; and a production phase where we operate the system and support users. dont fear the serial boogeyman: the initiation phase is not a requirements phase, nor is the end game a testing phase.

9、click image to view at full sizefigure 1: test activities during the agile lifecycle. testing activities vary throughout the lifecycle. during iteration 0, you perform initial setup tasks. this includes identifying the people who will be on the external investigative testing team, identifying and po

10、tentially installing your testing tools, and starting to schedule scarce resources such as a usability-testing lab if required. if your project has a deadline, you likely want to identify the date into which your project must enter the end game. the good news is that youll discover that increased te

11、sting during construction iterations enables you to do less testing during the end game.a significant amount of testing occurs during construction iterationsremember, agilists test often, test early, and usually test first. this is confirmatory testing against the stakeholders current intent and is

12、typically milestone-based at the unit level. this is a great start, but its not the entire testing picture (which is why we also need investigative testing that is risk-based at more of an integration level). regardless of the style, your true goal should be to test, not to plan to test, and certain

13、ly not to write comprehensive documentation about how you intend to hopefully test at some point. agilists still do planning, and we still write documentation, but our focus is on high-value activities such as actual testing.during the end game, you may be required to perform final testing efforts f

14、or the release, including full system and acceptance testing. this is true if you are legislated to do so (common in life-critical situations such as medical software development) or if your organization has defined service-level agreements with customers who require it. luckily, if youve tested eff

15、ectively during the construction iterations, your final testing efforts will prove to be straightforward and quick. if youre counting on doing any form of serious testing during the end game, then youre likely in trouble because your team wont have sufficient time to act on any defects that you do f

16、ind.3. testing during a construction iterationthe majority of testing occurs during construction iterations on agile projects. your testing effort, just like your system, evolves throughout construction. figure 2 depicts two construction iterations, indicating that there is confirmatory testing perf

17、ormed by the team, and in parallel, investigative testing efforts ideally performed by a independent test team (ive adopted the terms confirmatory and investigative testing from michael bolton, a thought leader within the testing community). although it isnt always possible to have an independent te

18、st team, particularly for small projects, it is highly desirable. confirmatory testing focuses on verifying that the system fulfills the intent of the stakeholders as described to the team to date, whereas investigative testing strives to discover problems that the development team didnt consider. f

19、igure 2: incremental testing throughout the agile development lifecycle. there are two aspects to confirmatory testing: agile acceptance testing and developer testing, both of which are automated to enable continuous regression testing throughout the lifecycle. confirmatory testing is the agile equi

20、valent of testing to the specification, and in fact, we consider acceptance tests to be the primary part of the requirements specification and our developer tests to be the primary part of the design specification. both of these concepts are applications of the agile practice of single sourcing info

21、rmation whenever possible.agile acceptance testing is a mix of traditional functional testing and traditional acceptance testing because the development team and their stakeholders are doing it collaboratively. developer testing is a mix of traditional unit testing and traditional class/component/se

22、rvice integration testing. developer testing strives to verify both the application code and the database schema (for more information, see my article ensuring database quality; your goal is to look for coding errors, perform at least coverage if not full path testing, and to ensure that the system

23、meets the current intent of its stakeholders. developer testing is often done in a test-first manner, where a single test is written and then sufficient production code is written to fulfill that test (see /essays/ tdd.html for details). interestingly, this test-first approach is co

24、nsidered a detailed design activity first and a testing activity second. automation is an important aspect of construction testing due to the increased need for regression testing on evolutionary projects. the fitnesse testing framework (), arguably a requirements documentation tool,

25、 is often used to automate agile acceptance tests. it is also possible to generate acceptance test cases from use cases and scenario definitions or from process diagrams such as uml activity diagrams or flow charts, and tools are beginning to emerge to do exactly this. the xunit frameworkjunit (www.

26、) for java and vbunit () for visual basicis used to automate developer tests. commercial testing tools such as hp mercurys testdirector ( or ibm rationals testmanager ( products/testmanager) are also good options to consider, as they often prove more sophisticated than their o

27、pen source alternatives. static code analysis tools, such as findbugs (), are often included in automated testing runs to help identify potential quality problems in the source code.4. investigative testingas i was writing this column, i was lucky enough to attend a presentation given by dr. cem kan

28、er to the toronto association of systems and software quality (tassq). kaner, coauthor of lessons learned in software testing (wiley, 2001), described his thoughts and experiences in software testing, and as a result, helped me to conceptualize some of my own ideas. in particular, i had been struggl

29、ing to properly describe the activities of investigative testing efforts during construction iterations, and kaners presentation helped to coalesce my experiences.a separate test team? preposterous you say! actually, there is significant value to be gained by submitting your system to an independent

30、 test team at intervals throughout the lifecycle so that they can verify the quality of your work. agile teams produce working software at the end of each construction iteration; therefore, you have something new to test at that point. a common practice is to provide a new version of the system at l

31、east once a week, regardless of your iteration length, a particularly good strategy the closer you get to the end game. the investigative test teams goal should be to ask, what could go wrong, and to explore potential scenarios that neither the development team nor business stakeholders may have con

32、sidered. theyre attempting to address the question, is this system any good? and not, does this system fulfill the written specification? the confirmatory testing efforts verify whether the system fulfills the intent, so simply repeating that work isnt going to add much value. kaner promotes the ide

33、a that good testers look for defects that programmers missed, exploring the unique blind spots of the individual developers. investigative testers describe potential problems in the form of defect storiesthe agile equivalent of a defect report. a defect story is treated as a form of requirementit is

34、 estimated and prioritized and put on your requirements stack. the need to fix a defect is a type of requirement, so it makes perfect sense to address it just like any other requirement. as you would expect, during the end game, the only requirement type that youre working on is defect stories.your

35、investigative testing will address common issues such as load/stress testing, integration testing, and security testing. scenario testing, against both the system itself and the supporting documentation, is also common. you may also do some form of usability testingthe user interface is the system t

36、o most end users; therefore, usability is critical to success. the ui includes both the screens that people interact with and the documentation that they read, implying that you need to test both. good investigative testing efforts reveal any problems that developers missed long before they become t

37、oo expensive to address. it also provides feedback to management that the team is successfully delivering high-quality working software on a regular basis. kaner pointed out that theres no one right way to go about investigative testing, nor is there one correct list of techniques to employ. your ef

38、forts must reflect the goals of the project team that youre supporting. for example, is the goal to determine whether the system is ready to be shipped? is it to ensure that the system interoperates with other existing systems? is it to help the developers to identify problems in their own testing e

39、fforts by pointing out the causes of defects that they missed? is it to minimize the chance of a lawsuit against your organization or its managers? the context in which you are testing will determine what and how you testnot only will the context be different for each project; the context also changes over the life of the project. the type of confirmatory testing performed by agile teams is only one part of the testing pictureit is the agile equivalent of traditional smoke testing. this is a great start, and h

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論