统计信息
- 访问量: 4050
- 日志数: 39
- 图片数: 6
- 文件数: 3
- 建立时间: 2007-12-25
- 更新时间: 2008-11-19
我的联系方式
QQ:41222006MSN:Miracle_WIng@hotmail.com
QQ软件测试群:11274045
MSN软件测试群:Group251422@msnzone.cn
我的最新日志
-
INTJ
2008-11-19
INTJ型的人是完美主义者。他们强烈地要求个人自由和能力,同时在他们独创的思想中,不可动摇的信仰促使他们达到目标。
INTJ型的人思维严谨、有逻辑性、足智多谋,他们能够看到新计划实行后的结果和生活中转变为真实物质的理论体系。他们对自己和别人都很苛求,往往几乎同样强硬地逼迫别人和自己。他们并不十分受冷漠与批评的干扰,作为所有性格类型中最独立的,INTJ型的人更喜欢以自己的方式行事。面对相反意见,他们通常持怀疑态度,十分坚定和坚决。权威本身不能强制他们,只有他们认为这些规则对自己的更重要的目标有用时,才会去遵守。
INTJ型的人是天生的谋略家,具有独特的思想、伟大的远见和梦想。他们天生精于理论,对于复杂而综合的概念运转灵活。他们是优秀的战略思想家,通常能清楚地看到任何局势的利处和缺陷。对于感兴趣的问题,他们是很好的、具有远见和见解的组织者。如果足他们自己形成的看法和计划,他们会投入不可思议的专心、注意力和能量、积极性。依靠到达或超过自己的高标准的决心和坚韧不拔,他们获得许多成就。
由于有时对一些不切实际的高标准充满幻想,INTJ型的人对自己和他人的期望过多。事实上,他们往往不在意自己如何符合别人的标准,重要的是自己。他们对于自己的行为如何影响他人缺乏理解,往往在提供改进意见时挑剔而直率。他们经常不鼓励他人提出自己的观点或表达个人感情。因为INTJ型的人相当冷淡,所以他们错误地推论别人也希望受到同样方式的对待。他们需要学习理解别人貌似“非理性”的感情,认可它们是合理可取的。这有助于防止他们疏远和激怒周围的人。
因为INTJ型人过多地重视他们对未来的见解和想法,所以很容易忽略现在的重要事情和现实。他们也无法认识到自己思想中事实上的缺点,这会使他们的想法实施更加困难。收集所有相关的和真实的材料有助于确信他们的想法的可操作性。lNTJ型的人需要减化自己理论性的、复杂的思想,这样才能把自己的想法传达给别人。
因为INTJ型的人在工作中常常选择孤独,一心一意地努力,所以他们忽视了在活动中邀请别人参加或协助。征求别人的信息和建议会帮助他们在进程中早些认识到不切实际的想法,或者帮助他们在投人大量时间之前,做出一些改动和提高。
对于INTJ型的人来说,增加影响在于对次要的观点做出让步以赢得更重要的东西。这也会减少INTJ型的人变得太固执的可能性。当他们努力采用一种更易被接受的方式生活和与人相处时,INTJ型的人会得到更多的平衡、自信,成功地使白己更多的创新被社会接受。
-
Presentation
2008-11-19
根据PRD,测试组要开始写presentation,主要包括:1. Background
2. Goal
3. New Feature Instruction
4. Data Flow(if allowed)
5. Test strategy
6. Dependence and Risk
7. Estimation
Before CC:
PRD/SPEC Review, TA scrīpt MD, Case Design, Feature Verification
After CC:
New Task regression MD
8. Resource
9. Advantage
10. Contacts
附上公司内部的一些presentation经验
1. 时间一定要控制好,每个TO candidate必须在规定时间内讲完。
2. TO candidate要明确你presentation的目的是要说服别人将这个task放心的交给你测试,而不是让你介绍你之前是怎么测和碰到了什么问题。
3. 所有的PRD/UIM issue和自己不清楚了解不多的都不要讲,这个都在“PM/EM/DEV讨论沟通中”,扬长弊短。不要在presentation的时候“我不知道”,“我不太清楚”
4. 在presentation中需要让评委们知道你测这个task的优势在哪里。(可以列出advantage或在讲述中渗透)
5. presentation需要正对 new feature及对之前release feature的impact,但不是讲old feature
6. Security/TA需要考虑以及如何测试Security/TA,但自己都不清楚需要哪些Security/TA考虑的就不要写了。
7. Presentation的时候需要注意讲解侧重点,不需要详细的介绍new feature,避免本末倒置。
8. 不需要列出详细的test case数,CC后的man day评估不需要考虑。
9. Man day考虑要大致准确,并且说明你的man day是怎么评估出来的。(如果man day评估比别的TO candidate多很多的话,那就是劣势。)
10. 须要明确这个task的重点以及风险在哪里。
-
SQL 触发器
2008-11-18
SQL触发器有3种: insert触发器.update触发器.delete触发器insert触发器:用insert语句向表中插入数据时都会执行的触发器.当触发insert触发器时,新的数据行就会被插入到触发器表和inserted表中。inserted表是一个逻辑表,它包含了已经插入的数据行的一个副本。例:create trigger tri_insert
on student
for insert
as
declare @student_id char(10)
select @student_id=s.student_id from
student s inner join inserted i
on s.student_id=i.student_id
if @student_id='000000001'
begin
raiserror('can't insert number 1',16,8)
rollback tran
end
godelete触发器:当触发delete触发器后,从受影响的表中删除的行将被放置到一个特殊的deleted表中。deleted表是一个逻辑表,它保留已被删除数据行的一个副本。- 当某行被添加到deleted表中时,它就不再存在于数据库表中;因此,deleted表和数据库表没有相同的行。
- 创建deleted表时,空间是从内存中分配的。deleted表总是被存储在高速缓存中。
- 为DELETE动作定义的触发器并不执行TRUNCATE TABLE语句,原因在于日志不记录TRUNCATE TABLE语句。
create trigger tri_delete
on student
for delete
as
declare @student_id varchar(10)
select @student_id=student_id from deleted
if @student_id='admin'
begin
raiserror('错误',16,8)
rollback tran
endupdate触发器:可将update语句看成两步操作:即捕获数据前像(before image)的delete语句,和捕获数据后像(after image)的insert语句。当在定义有触发器的表上执行update语句时,原始行(前像)被移入到deleted表,更新行(后像)被移入到inserted表。例:create trigger tri_update
on student
for update
as
if update(student_id)
begin
raiserror('学号不能修改!',16,8)
rollback tran
endgo - 当某行被添加到deleted表中时,它就不再存在于数据库表中;因此,deleted表和数据库表没有相同的行。
-
SQL Server索引简单总结
2008-11-10
SQL Server中索引属于SQL Server对象的一种,其最主要的目的是加快查询速度。原本需要100秒的查询在加了索引后可能会降低到10秒以下。索引分为2类,一类是聚集索引(clustered index),另一类是非聚集索引(nonclustered index),其中加了聚集索引的表是只指按照一定顺序排列的表,而这个顺序就是一个聚集索引,当为一个table的一个column加上聚集索引后,就相当与为这个table做一个排序,而排序的规则就是按照这个column。而非聚集索引则相当与在聚集索引中加了一道,如果为一个table的多个column加了非聚集索引后,就相当与为这个table做了多个排序方式,如果要找到某个值,就要先找到一个排序方式,然后再来找到需要的内容。为一个表建立一个主键后,聚集索引会自动加到这个主键上,而通常这个并不是最好的方式,正确的方式是加到一些经常被用来查询的字段。通常只要加了索引后,查询速度都能得到显著的提高,而且聚集索引在数据量小的情况下也远比非聚集索引要快的多,一个好的方式是在每段查询语句后面加上一个函数:declare @d datetimeset @d=getdate()select [语句执行的毫秒数]=datadiff(ms,@d,getdate());建立/删除聚集及非聚集索引的SQL语句:- DROP INDEX mytable.mycolumn_index
- CREATE INDEX mycolumn_index ON mytable (myclumn)
- CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH ALLOW_DUP_ROW
- CREATE INDEX name_index ON username(firstname,lastname)
还有一个复合的聚集索引,就是将多个字段连在一个组合成一个非聚集索引,作为主索引的复合聚集索引同样会对速度带来提升。索引有助于提高检索性能,但过多或不当的索引也会导致系统低效。因为用户在表中每加进一个索引,数据库就要做更多的工作。过多的索引甚至会导致索引碎片。 - DROP INDEX mytable.mycolumn_index
-
SQL常用的Function
2008-11-09
SQL Server中的Aggregate函数
- AVG(column) 返回某列的平均值。
- Count(column) 返回某列的行数。
- Count(distinct column) 返回相异结果的数目。
- First(column)返回在指定结果中的第一个值。
- Last(column)返回在指定结果中的最后一个值。
- MAX(column)返回某列的最高值。
- MIN(column)返回某列的最低值。
- SUM(column)返回某列的总和,也就是全部加起来。
SQL Server中的Scalar函数- UCASE(column)将某个域转换为大写。
- LCASE(column)将某个域转换为小写。
- MID(column,start[,end])从某个文本域提取字符。
- LEN(column)返回某个文本域的长度。
- LEFT(column,number_of_char)返回某个被请求的文本域的左侧部分。
- RIGHT(column,number_of_char)返回某个被请求的文本域的右侧部分。
- ROUND(column,decimals)对某个数值域进行指定小数位数的四舍五入。
- NOW()返回的系统日期。
- FORMAT(column,format)改变某个域的显示方式。
- AVG(column) 返回某列的平均值。
-
SQL Select语句的执行顺序
2008-11-09
1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。简单的Select结构Select SUM(*),distinct columnFrom Table a inner join Table bwhere conditions and|or|between conditions in (select...)group by <column>having count(colume) conditionorder by column ASC|DESC要把我们语言思维种的语义变成SQL种的语句要注意几点:1、首先看最后我们需要的是什么东西,也就是把select后面的字段搞清楚。2、然后看要把这些字段搞清楚需要那些表来支持、是否需要要将多个表join起来,注意inner join形成的是一个X*X的字段。3、比较难的地方在where后的conditions中,首先要看where语句中conditions是否只用and或or就能表达出来,如果不能的话那就用in 然后再在后面加一个select,相当与从一个新表中找到结果。4、group by可以理解成将column distinct起来,在distinct的过程中可以用having 语句来从distinct中选择需要被显示出来的项目。 -
公司产品开发流程(一)
2008-10-14
1. PM会联合DEV,QA,UI,Security,TS,Sales Team对MRD,PRD,UI做一个review. QA在这个过程中需要制定一个测试计划的大纲,并需要和DEV Team合作,理解DEV Team将如何开发产品,并提供相关feature的可测性.DEV在这个过程中需要深入理解以上文档,尤其是PRD和UI,并开始制作ES.
2. Service Deliver Manager会制作并和DEV,QA,PM,Security一起review SDRD, QA在这个过程中需要理解此文档,知道如何去建立测试环境以及如何验证这次需求.DEV 在这个过程中需要知道如何在设计和执行中满足这些需求.
3. EM会和Architect,DEV,QA,Security一起开始Architecture Design review, 侧重于各个feature的结构特征,包括可行性,安全性,可测性,界面与其他系统/组件,可扩展性,兼容性,高性能,大容量,可扩展性,遵守公司的标准,技术风险等.
4. EM会开始ES draft review, ES draft review 重点在每一个feature的设计和高级的构架,ES draft将会包括UI是如何的,提供什么样类型的数据,以及数据库设计,以及API的使用,等等.同时ES draft必须包括安全方面的考量,以及可能对系统造成的风险以及相对应的措施.QA需要在这个过程中深入了解ES,要关注设计的可测性,给出建议,并需要根据这份文档开始测试计划和测试用例的设计.DEV需要制作ES draft, 文档的细节应该能够让developer能够马上开始coding并能让QA能理解执行的细节.
MRD:Market Requirement Document. PRD:Product Requirement Document. SDRD:Service Delivery Requirements Document. ES:Engineering Spec. UI:User Interface.
-
等价类划分法的个人经验
2008-10-07
等价类划分法:是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
划分出的等价类中按以下三个原则设计测试用例:
①为每一个等价类规定一个唯一的编号.
②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.
③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.
一般来说,等价类划分法对我们功能测试是最有帮助,同时也是最实用的测试方法,结合边界类测试法就可以设计很多好的case,我的经验是在设计case的时候,针对某一个feature功能是否正常,可以尝试先开启与这个feature相关的feature,因为它们可能统一调用了某一个模块,或者相关数据在传送时会一起被传出去,而这些都有可能引起bug,开启后,可以设置相关feature的边界值,尝试一些边界边缘的值,等设置好后再来跑feature的case,在这种环境相对来说不单纯的环境下来跑case,发现的bug可能并不只是单个feature的问题,而且出现了问题后,再确认bug的过程中,把环境细化,让bug凸现出来.所以说我们在考虑设计case的时候,可以多考虑用等价类划分法和边界值分析法来确认多个precondition以及多个step来设计成功的case和失败的case,而这对找bug是很有帮助的.
一句话: 测试是为了失败而测.
-
L10n与L18n
2008-9-29
L18n即internationalization,软件国际化,一个过程,通过修改代码来实现代码的文化独立性,即代码不依赖与任何特定文化的信息。
L10n即Localization,软件本地化,一个过程,为每一种支持的饿人类语言来定制软件。
L18n是一个代码修改的过程,目的是实现代码完全独立与任何特定的文化信息。这类信息保存在外部文件中,在程序运行的时候被装入。这样就不光要把所有与特定文化有关的字符串都抽取出来放在外部的文件中,还要把图标,图片从程序中抽取出来,以文本的形式表示。L18n支持的语言有很多,公司里目前支持的语言有:中文、德文、意大利文、日文、繁体中文、西班牙文、葡萄牙文、韩文、瑞典文、英文。
L10n是针对某一本地特性,如语言、文化、习俗和特殊的市场需求制造或改造产品的过程。用户在使用得当地本地化的产品时,可以使用其自己的语言和文化习惯与产品互动。这个概念也表示所有用户可见的信息和所有用户文本(包括印刷版和电子版)都使用用户的语言和文化习惯。本地化设置需要具备三个条件:语言代码(Language Code)、国家代码(Country Code)和编码(Encoding)。本地名字可以用下面这些部分来构造:
LanguageCode_CountryCode.Encoding
在做L的测试的时候,会有L18n或L10n的bug要报,根据他们的区别,可以大概对不同现象L的bug做一个大概的分类:
L18n:字符没有翻译、功能上有缺陷...
L10n:字符没有显示完全、字符翻译的不准确...
-
很好的学习网站
2008-9-11






