<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-2784597297156815998</id><updated>2009-10-14T06:14:25.389-07:00</updated><title type='text'>庖丁解牛之QA篇</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ds-qa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default'/><link rel='alternate' type='text/html' href='http://ds-qa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>DS</name><uri>http://www.blogger.com/profile/01072128537977699308</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2784597297156815998.post-2724059375163542866</id><published>2008-02-15T00:22:00.000-08:00</published><updated>2008-02-15T00:47:22.426-08:00</updated><title type='text'>一个简单的test case模版解析</title><content type='html'>&lt;pre&gt;|---------------------------------------------------------|&lt;br /&gt;|                  Test Case                              |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;| Test Case ID:                                           |&lt;br /&gt;|                                                         |&lt;br /&gt;| Test Description:                                       |&lt;br /&gt;|                                                         |&lt;br /&gt;| Revision History:                                       |&lt;br /&gt;|                                                         |&lt;br /&gt;| Date Created:                                           |&lt;br /&gt;|                                                         |&lt;br /&gt;| Function to be tested:                                  |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;| Environment:                                            |&lt;br /&gt;|                                                         |&lt;br /&gt;| Test Setup:                                             |&lt;br /&gt;|                                                         |&lt;br /&gt;| Test Execution:                                         |&lt;br /&gt;|                                                         |&lt;br /&gt;| 1.                                                      |&lt;br /&gt;|                                                         |&lt;br /&gt;| 2.                                                      |&lt;br /&gt;|                                                         |&lt;br /&gt;| 3.                                                      |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;|                                                         |&lt;br /&gt;| Expect Results:                                         |&lt;br /&gt;|                                                         |&lt;br /&gt;| Actual Results:                                         |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;| Completed:                                              |&lt;br /&gt;|                                                         |&lt;br /&gt;| Signed Out:                                             |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;&lt;br /&gt;test case id用来标示一个test case，就是case的名字，&lt;br /&gt;没有什么好说的&lt;br /&gt;&lt;br /&gt;test description是对case的一些详细说明，比如这是个&lt;br /&gt;invoice功能的边界测试，或者更加详细...&lt;br /&gt;&lt;br /&gt;revision history用来记录版本信息，一般说来&lt;br /&gt;test case没有必要保留所有版本，但是每次修改&lt;br /&gt;留下足印是一个好习惯&lt;br /&gt;&lt;br /&gt;date created显然就是用来记录创建日期和创建人的&lt;br /&gt;&lt;br /&gt;function to be tested这个应该填写function list&lt;br /&gt;之中的function id，是一个分类字段，可以很快的sort&lt;br /&gt;出来同一个function的所有test case&lt;br /&gt;&lt;br /&gt;environment环境指的是该case适应的测试环境，&lt;br /&gt;比如这个case只是适用于win2000，我们就填写&lt;br /&gt;win2000&lt;br /&gt;&lt;br /&gt;test setup是测试的准备条件，可以等同于&lt;br /&gt;pre-condition&lt;br /&gt;&lt;br /&gt;test execution这个是核心，具体的纪录要执&lt;br /&gt;行的每一步骤&lt;br /&gt;&lt;br /&gt;下面两个框框里的应该是纪录执行结果的&lt;br /&gt;expected results是预期&lt;br /&gt;actual results是具体执行结果&lt;br /&gt;completed是测试执行完成时间&lt;br /&gt;signed out用来记录执行者&lt;br /&gt;&lt;br /&gt;给一个sample&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;|   Test Case ID: 1001                                    |&lt;br /&gt;|   Test Description: Verify A function                   |&lt;br /&gt;|   Revision History: v1.0                                |&lt;br /&gt;|   Date Created: 2/15/08 1.0 - 屠夫                      |&lt;br /&gt;|   Function to be Tested: A                              |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;|   Environment: Windows 2000                             |&lt;br /&gt;|   Test Setup: N/A                                       |&lt;br /&gt;|   1. Open the program                                   |&lt;br /&gt;|   2. Run A                                              |&lt;br /&gt;|   3. ...                                                |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;|   Expected Result: something lar                        |&lt;br /&gt;|   Actual Results: Pass                                  |&lt;br /&gt;|                                                         |&lt;br /&gt;|   Completed: 2/15/08 1.0                                |&lt;br /&gt;|   Signed Out: 屠夫                                      |&lt;br /&gt;|---------------------------------------------------------|&lt;br /&gt;&lt;br /&gt;每次执行都可以打印或者在线填写一份，或者&lt;br /&gt;在添加一个测试的版本，然后可以不断的扩展下去&lt;br /&gt;撇出对test cases的管理来说，这个&lt;br /&gt;test case模版还是挺简单和也蛮好用的，&lt;br /&gt;如果要管理好test cases，那就要给每个case添加&lt;br /&gt;属性以满足自己的管理需要，比如加一个是否auto&lt;br /&gt;的属性，标示这个case将会有自动化脚本。&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2784597297156815998-2724059375163542866?l=ds-qa.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ds-qa.blogspot.com/feeds/2724059375163542866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2784597297156815998&amp;postID=2724059375163542866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/2724059375163542866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/2724059375163542866'/><link rel='alternate' type='text/html' href='http://ds-qa.blogspot.com/2008/02/test-case.html' title='一个简单的test case模版解析'/><author><name>DS</name><uri>http://www.blogger.com/profile/01072128537977699308</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08219208055096712089'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2784597297156815998.post-6369758097217210148</id><published>2008-02-12T22:49:00.000-08:00</published><updated>2008-02-12T22:59:06.709-08:00</updated><title type='text'>关于test strategy和test tactics</title><content type='html'>论坛上总是见到有人把unit testing, system testing等等当成是strategy，的确这些测试类型是测试策略的重要组成部分，但是却不能简单把这些当成是策略，策略是什么呢，我会说策略是你想达到目标的路线图，如果你想发布产品，你应该做这些这些，是些what，但是不是简单的what，是在特定context下的赋予目标和限制的what，好的策略是多个dimension的平衡，最常见的制约当属schedule和resource了，good enough多半时候是一个好的指导思想，软件可没有十全十美。&lt;br /&gt;当策略制定之后，test tactics也就是how的部分，一个题目有很多种解体方法，但是这只是局部问题了，所以在这里成为是战术性的，战略则具备全局观念。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2784597297156815998-6369758097217210148?l=ds-qa.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ds-qa.blogspot.com/feeds/6369758097217210148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2784597297156815998&amp;postID=6369758097217210148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/6369758097217210148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/6369758097217210148'/><link rel='alternate' type='text/html' href='http://ds-qa.blogspot.com/2008/02/test-strategytest-tactics.html' title='关于test strategy和test tactics'/><author><name>DS</name><uri>http://www.blogger.com/profile/01072128537977699308</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08219208055096712089'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2784597297156815998.post-8778647467579547030</id><published>2008-02-12T17:12:00.000-08:00</published><updated>2008-02-12T21:05:50.978-08:00</updated><title type='text'>V model还是W model</title><content type='html'>V model已经出现很长时间了，不同的软件开发阶段对应有各自的测试，分别是&lt;br /&gt;业务需求  对应  uat&lt;br /&gt;系统需求  对应  system testing&lt;br /&gt;概要设计  对应  integration testing&lt;br /&gt;详细设计  对应  unit testing&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6_1uWCvIW_0/R7J3_MLBh4I/AAAAAAAAAB0/Np8O3J7TYCw/s1600-h/v+model.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 316px; height: 205px;" src="http://2.bp.blogspot.com/_6_1uWCvIW_0/R7J3_MLBh4I/AAAAAAAAAB0/Np8O3J7TYCw/s320/v+model.PNG" alt="" id="BLOGGER_PHOTO_ID_5166323650030307202" border="0" /&gt;&lt;/a&gt;什么是w model呢？先看图&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_6_1uWCvIW_0/R7J5YcLBh5I/AAAAAAAAAB8/SsQxufHDP3I/s1600-h/w+model.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_6_1uWCvIW_0/R7J5YcLBh5I/AAAAAAAAAB8/SsQxufHDP3I/s320/w+model.PNG" alt="" id="BLOGGER_PHOTO_ID_5166325183333631890" border="0" /&gt;&lt;/a&gt;在原有基础之上增加了preparation和debug，更加完整的体现了整个开发过程，也为测试准备工作正名，将测试准备和测试执行正式分成两个独立的任务，更加科学。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2784597297156815998-8778647467579547030?l=ds-qa.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ds-qa.blogspot.com/feeds/8778647467579547030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2784597297156815998&amp;postID=8778647467579547030' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/8778647467579547030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/8778647467579547030'/><link rel='alternate' type='text/html' href='http://ds-qa.blogspot.com/2008/02/v-modelw-model.html' title='V model还是W model'/><author><name>DS</name><uri>http://www.blogger.com/profile/01072128537977699308</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08219208055096712089'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6_1uWCvIW_0/R7J3_MLBh4I/AAAAAAAAAB0/Np8O3J7TYCw/s72-c/v+model.PNG' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2784597297156815998.post-5367829254407301449</id><published>2008-02-11T19:42:00.000-08:00</published><updated>2008-02-11T22:09:54.129-08:00</updated><title type='text'>Test Model三要素</title><content type='html'>test org.要不断改进，必须要有一个相对稳定的test model，基于一个相对稳定的test model我们才可以对我们的现状作出可靠而相对稳定的评估，改进也能够step-by-step的不断前进，建立测试模型的三要素：&lt;br /&gt;1、测试环境test environment&lt;br /&gt;2、测试过程process to test a single software project&lt;br /&gt;3、测试能力tester competencies&lt;br /&gt;&lt;br /&gt;test environment测试环境包含有很多，比如culture, mission, goal, strategy, tool等等，&lt;br /&gt;process是日常测试的procedure和standard，&lt;br /&gt;tester competencies是完成任务所要具备的能力，&lt;br /&gt;&lt;br /&gt;如果我们测试的目标mission只是为了满足requirement doc.的需要，一切会相对简单，而要让stakeholder满意是困难而有挑战的工作，要让stakeholder满意，首先你要知道怎样才能让stakeholder满意，只有这样你才能&lt;br /&gt;让stakeholder满意的管理，推荐使用ITIL，建立相关的SLA，首先要学会把无形的东西量化，也只有量化之后才能够去评测，这有点像学生的考试制度了，残酷异常，话说回来，process可以量化，人却是万万不可量化的东西，一旦人也需要量化的时候，整个process出产的东西已经毫无创新可言了，取而代之的是现代化的流水线作业，是资本家需要的是用模具生产出来的大量的工业产品，不是人的创造了。在没有现代生产线的那些小软件公司也自然成为民间手工艺人，偶尔才会有些火花蹦出来......&lt;br /&gt;&lt;br /&gt;所有种种环节构成了具体测试的上下文，知己知彼，才能百战百胜，了解自己身处的position是很重要的。画鱼骨头找出对自己所属环境重要的dimension，为这些战略性的指数建立相应的dashboard，作为测试管理人员应该时刻关注这个dashboard，而为了达到这些战略性的指标，我们需要做的具体的更加细分的指标，也就可以相应叫做的战术指数了，同样为这些指数建立相应的dashboard，这是日常工作的monitoring了。应该确保在确定条件下，即某些战术性指标达到时，战略指标也即达到。否则要尽快做出调整。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2784597297156815998-5367829254407301449?l=ds-qa.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ds-qa.blogspot.com/feeds/5367829254407301449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2784597297156815998&amp;postID=5367829254407301449' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/5367829254407301449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/5367829254407301449'/><link rel='alternate' type='text/html' href='http://ds-qa.blogspot.com/2008/02/test-model.html' title='Test Model三要素'/><author><name>DS</name><uri>http://www.blogger.com/profile/01072128537977699308</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08219208055096712089'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2784597297156815998.post-1676288421252920678</id><published>2008-02-10T22:47:00.000-08:00</published><updated>2008-02-10T22:57:00.597-08:00</updated><title type='text'>小试牛刀</title><content type='html'>做了多年的开发工作，测试对于屠夫来说也算是副业了，却很不幸的成为了现在的主业，挂个名而已，三年的qa生活也没有写过几个test case。不过总算对测试也算是有些认识，在这里也可以小试牛刀一下。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2784597297156815998-1676288421252920678?l=ds-qa.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ds-qa.blogspot.com/feeds/1676288421252920678/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=2784597297156815998&amp;postID=1676288421252920678' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/1676288421252920678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2784597297156815998/posts/default/1676288421252920678'/><link rel='alternate' type='text/html' href='http://ds-qa.blogspot.com/2008/02/blog-post.html' title='小试牛刀'/><author><name>DS</name><uri>http://www.blogger.com/profile/01072128537977699308</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08219208055096712089'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>