日历

« 2008-09-07  
 123456
78910111213
14151617181920
21222324252627
282930    

最新来客

我的好友

统计信息

  • 访问量: 2060
  • 日志数: 73
  • 建立时间: 2007-06-16
  • 更新时间: 2008-07-28

RSS订阅

我的最新日志

  • 软件测试---职业规划

    2008-7-24

    每个工作三五年的人多少都会遇到瓶颈,要么是技术,要么是管理。没有一条路是可以既定的,都是摸索着前进,网上有专家的介绍,也有前辈们的总结。

    软件测试这样一个新兴行业,在以前是算在软件开发一类的,现在大多公司都会独立出测试部门了,也就有了专职软件测试人员。职业规划一个很重要的点还要看社会环境,在中国大陆做软件开发的都是被认为吃青春饭,很多企业的职位也或多或少都如此设定,大多技术牛人最后都走向项目管理,虽然也许他不喜欢也不擅长,但为了未来为了薪水待遇很多时侯是必然之路。

    [软件测试质量保证]书上看来,也算世界通用的:

    1~2年,测试技能:熟悉整个测试过程及产品业务领域,学习和掌握自动化测试工具,学习测试自动化编程技术;开发和执行测试脚本,承担系统测试实施任务;掌握编程语言、操作系统、网络与数据库方面的技能。

    3~4年,测试过程:深入了解测试过程,掌握测试过程设计及改进,参与软件工作产品的同行评审;进一步了解产品业务领域,改进测试自动化编程技术;能指导初级测试工程师;加强编程语言、操作系统、网络与数据库方面的技能。

    4~5年,测试组织工作:管理1~3名测试工程师,担任任务估算、管理及进度控制;进一步培养在软件项目管理及支持工具方面的技能。

    5~6年,技术管理:管理4~8名测试工程师,提高任务估算、管理及进度控制能力,完成测试规划并制定测试计划;研究测试的技术手段,保持使用项目管理及支持工具的技能;用大量时间为其他测试工程师提供技术及过程方面的指导;开始与客户打交道并做演示推介。

    6~12年,测试管理:管理8名以上测试工程师,负责一个或多个项目的测试工作;与客户打交道并做演示推介;保持使用项目管理及支持工具的技能。

    //这个不适应于国内,也许适合老美他们。不过我们可以从中了解软件测试人员需要具备哪些能力。国内最重要的是第一步你入了哪一行业,业务是什么?软件测试也如此,web测试?手机测试?手工还是自动?…

    废话一堆之后来摸索软件测试,主要还是寻找自己的未来道路,但要记住的是好职业不是规划出来的,顾问们都是参谋者,总结者也仅是经验,自己的人生规划是自己的选择和实践的过程,需要适时代、市场变化而变化的。可以分步做

    Step1:分析自己的优劣势,包括自己的专业技能以及语言能力,业务能力,管理能力

    Step2:发掘自己的兴趣,喜欢和人打交道还是喜欢和机器打交道,这只是个偏向问题,人的沟通表达能力是最起码的

    Step3:分析市场需求,看看市场上需要什么样的人才以及未来需要什么人才

    Step4:结合自己的优劣势给自己定位,设定目标,大公司还是小公司,国企还是外企....

    Step5:为自己的目标努力,记住最重要是坚持!

  • 与开发人员沟通的五要与四不要

    2008-7-09

    在我的测试经历中,也接触过相当多的开发工程师,这里我把和开发人员交流的经验归结为“五要四不要”:
    1、要耐心和细心
    细心是测试工程师的一个基本素质,测试工程师是对质量负责的人,涉及到质量问题,就不能含糊,因此一定要细心,细心对待每一个可能的BUG、细心对待每一段被你检查的代码,细心对待每一个你撰写的BUG报告,细心对待你发出的每一封邮件。细心是一种态度,你的态度迟早会感染和你合作的开发人员,而这往往是合作愉快的基础。
    至于说到耐心,在我的工作经历中,不厌其烦地向开发人员解释一个BUG,让他认识到BUG的重要性是经常的事情,其实想想也很正常,对任何人来说,被人指出自己的缺点和不足都不是让人舒服的事情,因此,一点不耐烦的情绪就可能引起对方很大的反感,给自己的工作带来不必要的麻烦。
    2、要懂得尊重对方
    开发是一件需要全面和综合考虑的工作,开发工作中,由于各种原因导致程序中出现问题是很正常的现象,作为测试工程师,发现了这些问题并不值得你夸耀,也不能说明你比开发工程师聪明。一个好的测试工程师一定是懂得尊重开发工程师的人,尊重对方的技术水平,尊重对方的代码。我接触过的开发人员都是挺和善的,一般来说,对他们最大的尊重就是承认他的专业水平,承认他的代码。对他们来说,代码就像是自己的孩子一样:)因此,记得在合适的时候表达你对他的尊重,赞扬一下他代码的精妙之处。
    3、要能设身处地为对方着想
    开发工程师一般都处在较大的工作压力下,他的上司直接考核他们的指标很大程度上是已完成的代码,所以在工作任务紧张的时候,对于测试工程师报上来的BUG会拖延解决甚至是推脱,给测试工程师的感觉就是很不合作。那么在这个时候,就需要设身处地的为对方着想了,每个人都会为自己的工作在内心排定优先级,如果他认为解决你发现的BUG不是重要的事情,那么最大的可能就是你并没有向他解释清楚这个BUG的严重程度。
    发现BUG是我们的责任,敦促BUG得到解决是我们更重要的责任,因此,我们可以心平气和地和开发人员坐下来讨论一下BUG的严重程度,和他一起排定BUG的优先级别并确定解决的时间。
    4、要有原则
    不要忘记,测试工程师需要对产品的质量负责,在这一点上一定要有原则。测试工程师可以和开发工程师建立良好的个人关系,但在具体的事情上,一定要按照公司的相关流程来处理。当然,在坚持原则的同时,可以采用一些委婉的表达方式,可以在允许的情况下尽量体谅开发工程师,但请记住,一个有原则的测试工程师才能真正帮助开发工程师,才能赢得开发工程师的尊重。
    5、要主动承担
    如果开发工程师要求你承担部分不属于你的责任,比如,定位你发现的BUG到代码一级,或者是帮助他编写部分文档和代码(不要不相信,真的有这样的事情),那么你会怎么做呢?在我的测试经历中,这些事情都遇到过,我的原则是在可能的情况下尽量多承担。其实都是工作上的事情,有能力的话,多做一点也无妨。当然,肯定有人不同意我的意见,在这里我也不想争辩,个人意见而已,仅供参考:)
    在我的测试经历中,我会根据自己的进度和时间安排尽可能地提供更多的关于BUG的参考意见,甚至是定位到代码一级,这种方式不是正规的方式,但对于提高自己被信任的程度是非常有益的。但在主动承担时,一定要明确是在自己确有余力的情况下才能去承担,否则,婉拒是最好的对策。
    【四不要】
    1、不要嘲笑
    不要嘲笑你所发现的BUG,即使是非常愚蠢的错误也绝对不要嘲笑,说不定那个错误是因为开发工程师联系加班24小时犯下的,对别人的工作始终应该尊重。如果你觉得有必要提醒他不再犯一些经常犯的错误,可以采用这样的方式:编写一份测试过程中发现的开发人员常犯错误的文档(记住,千万不要写上谁犯了这些错误),用轻松的口气调侃一下,发送给开发人员。这种方法我采用过,开发人员都能很快接受。
    2、不要在背后评论开发工程师
    永远不要在背后评论开发工程师的技术能力,这个绝对是非常忌讳的事情,一时的口舌之快或许会使你永远不再能同他良好地合作,要知道,开发工程师最在意地就是别人对他的技术能力的评价。其实这个不仅仅是作为测试工程师的准则,也应该是做人的准则。
    3、不要动辄用上层来压制对方
    在出现和对方的意见分歧的时候,应该采用什么方式说服对方呢?直接向上层求助当然是一个办法,但这种办法带来的负面左右也是很明显的,首先是作为上层的处理结果可能不一定符合你的愿望(在很多公司,开发工程师的地位高于测试工程师的地位,这种地位的不平等导致上层在处理分歧时会有一定的偏向性);其次是动辄拿出上层来压制对方只能给他人留下无用的印象。所以在出现分歧时,尽量尝试通过沟通解决吧,实在不行,再动用最后的手段。
    4、和开发人员的沟通不要只有BUG
    除了在BUG记录单上,在其他的地方也让和你合作的开发工程师接触到你吧:),午餐或是集体活动的时候多和对方聊聊天,一方面可以增进彼此的感情,混个脸熟,打交道的时候也方便;另一方面,从他那里了解业务的知识和他负责模块的方方面面,对自己也是提升。我个人就很喜欢和开发工程师沟通,开发工程师其实一般都是比较健谈的,尤其是对自己程序的精妙之处,多了解一些,多接触一些,对自己总是有益的。

    写了这么多,其实关键的就是两点:多从别人的角度去想想,所谓“换位思考”,多尊重对方就一定能得到对方的尊重与配合;其次是加强和开发工程师的沟通,让他清楚地认识到你的工作对他的价值,你发现的每一个BUG的重要性。
    我一直认为,一个好的测试工程师一定是在公司里被所有人尊重的快乐分子,而不应该是一个“铁面判官”:)当然,作为我个人来说,绝对不敢说自己做的已经很好了,不过,我经常都记得提醒自己:尊重对方。
  • 招聘经理眼中的好简历

    2008-7-09

    动词列表是简历编写指南里保留的项目,调查还发现:简历里尽可能的堆满动词、形容词和副词的求职成功率更高。

      几乎所有的人事经理都喜欢选择有效的字句,而不是花样繁多的词藻的简历。


    人事经理心里的单子


      简历中的几个字也会惹恼人事经理,而拒绝继续读简历。有相当多的人事经理以及招聘人员都承认,他们心里有一个单子,上面列着让他们厌恶的字句。

      尽管他们都说自己不太可能因为这些字句而完全拒绝应聘人员,但是他们相信,利用这些字句来吹嘘的简历给人留下印象还不如没有这些字句的。我在本期专栏里总结了一些例子。

      例如,有一个IT公司的人事经理曾经说过,她从来都不喜欢在简历上看到协助(Assist或者Assisted)这样的字眼。“我想知道的是应聘人员(具体)做了什么,而不是他们如何帮助做了什么。如果他们对某项任务足够熟悉,而且想放到简历里,他们就应该使用比‘协助’更好的字,”她解释说。

      一篇关于就业的评论建议将任何“协助”这样的表述改为十分具体的内容,说明应聘者在“协助”的时候做了什么。例如,如果你帮助市场部主任研究哪些个人数字助理(PDA)能够满足部门的需要,那么你就可以在简历中这么写:“为市场部研究PDA。”这样修改之后就说明了具体的内容。

      出于和“协助”相同的理由,人事经理不会喜欢“试验(experimental)”这个字。没有人想听你尝试做过什么——只想听你完成了什么。你不应该写“试用了新的局域网(LAN)管理软件”,而应该说“评估了LAN管理软件。”

      大多数人事经理不喜欢听到任何描述某人怎么好地完成了某项任务的字眼。他们说自己希望了解这个人相关的技能,而且希望自己才是这个人工作效果的评判者。因此,像巧妙地(Skillfully)、有效地(Effectively)、仔细地(Carefully)、迅速地(Quickly)、专业的(Expert)、高明的(Mastered),以及类似的字都会弄巧成拙。

      在上面所提到的所有字中间,任何由技能(Skill)衍生出来的词——尤其是巧妙地(Skillfully)——只会引起更多的嘲笑而不是(会心的)的大笑。雇主和招聘人员更希望在应聘者简历里看到的是谦虚而不是吹嘘。

      “如果你对它并不很在行,那么你为什么要把它放进简历里呢?”一位招聘人员如是说。


    最佳的技能放在最前面的简历是好简历


      明确地表示出在某些方面比别人更好,而且正在使用前面提到过的字眼来说明自己的最佳技能,会引得人事经理更多的注目。只把能够用来相当好地完成任务的技能,以及适合于职位要求的技能列出来。

      一旦你删掉了所有自我评价的字眼,就要重新浏览一遍简历,去掉令人乏味的商业用语,例如:尖端的(cutting-edge)、联络人(liaison)、协调(coordinate)、推动(facilitate)、被证明了的能力(proven ability)、配合(synergy)和改造(transformed)等等。

      人们看到和听到这些字眼太多了,以至于他们再次听到的时候没有一点兴趣。人事经理们说这些字只会占地方,而不会传达有用信息。而且,要知道的是:大多数技术单位的人事经理都会意识到,好的经理人都是注重细节的,所以你可以放心地从你的简历里删掉这些令人乏味的字。


    灵光一现的简历


      简历里加入更多激情,并且尽可能地具体说明你当前和过去的职责——尤其在这些职责是你现在想要申请的职位内容里一部分的时候。没有什么比看到“负责(responsible for)”这个字之后接有一堆寻常的管理任务更扫兴了。

      你是个经理,所以你当然会负责什么东西。准确地告诉人事经理自己的职责是什么,并列出一些来,以帮助他们了解你的工作内容。诸如“管理着X个员工”、“监督Y的资产投资预算”,或者“为Z个雇员建议培训计划”等都是有效的方式,它们能够简明扼要地说明你做的以及取得的成果。尽你所能的具体和详细,但是要记住,你不能够泄漏你当前雇主的机密信息。

      简历应该总是在说明事实,但是它也是一个市场推销的工具,你正在用它将你最珍贵的产品推向市场——求职者自己。
  • 关于主从表的value的添加

    2008-7-09

    一直对主从表添加值都比较困惑,比较困难的E-R图也看的头疼,最近别的项目让我帮满写一些SQL的语句,才有所了解

    1.要添加从表的数据,从不的外键又是主表的主键.那么要加从表的数据必须先添加主表的数据

    2.在select的关于条件的where语句的限制,字段与一个集合数据是不可以相等的,一下语句是不对的:左边是一个字段,右边是多个数据的集合值,不可以用等号

    select *
    from SLATrigger
    where SLAID=(select SLAID
    from SLAMaster
    where companyid=(select
     Companyid
    from
     CasesList
    where caseid=(SELECT CaseId FROM CaseExtension WHERE IntendingAcceptDate < getdate()
    and ActualAcceptDate = '9999-12-31 23:59:59')
    )
    )

     

  • varchar(n)与nvarchar(n)的区别

    2008-7-09

    varchar(n)
    长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。

    nvarchar(n)
    包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍

    nvarchar   和   varchar   的区别是存储方式不同  
      varchar是按字节存储的.而带"n"的nvarchar是按字符存储的  
      比如说   varchar(40),能存储40个字节长度的字符,存储中文字符的时候,因为中文字符1个字符就等于2个字节.所以varchar(40)只能存储20个中文字符.  
      nvarchar(40),就可以存储40个中文字符,也就是说可以存储80个字节长度的字符.nvarchar要相对于存储的字符类型.比如有些字符是占3个字节的.  
      同样的,char和nchar也一样道理

    NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。

          所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar。

     

  • 国外优秀测试站点(转)

    2008-7-09

    国外优秀测试站点(转)


    63个国外优秀测试站点链接

    http://bdonline.sqe.com/ 一个关于网站测试方面的网页,对这方面感兴趣的人可以参考
    http://citeseer.nj.nec.com/ 一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站
    http://groups.yahoo.com/group/LoadRunner 性能测试工具LoadRunner的一个论坛
    http://groups.yahoo.com/grorp/testing-paperannou-nce/messages 提供网站上当前发布的软件测试资料列表
    http://satc.gsfc.nasa.gov/homepage.html 软件保证中心是美国国家航天局(NASA)投资设立的一个软件可靠性和安全性研究中心,研究包括了度量、工具、风险等各个方面
    http://seg.iit.nrc.ca/English/index.html 加拿大的一个研究软件工程质量方面的组织,可以提供研究论文的下载
    http://sepo.nosc.mil 内容来自美国SAN DIEGO的软件工程机构(Sofrware Engineering Process Office)主页,包括软件工程知识方面的资料
    http://www.asq.org/ 是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的
    http://www.automated-testing.com/ 一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载
    http://www.benchmarkresources.com/ 提供有关标杆方面的资料,也有一些其它软件测试方面的资料
    http://www.betasoft.com/ 包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料
    http://www.brunel.ac.uk/~csstmmh2/vast/home.html VASTT研究组织,主要从事通过切片技术、测试技术和转换技术来验证和分析系统,对这方面技术感兴趣的人是可以在这里参考一些研究的项目及相关的一些主题信息
    http://www.cc.gatech.edu/aristotle/ Aristole研究组织,研究软件系统分析、测试和维护等方面的技术,在测试方面的研究包括了回归测试、测试套最小化、面向对象软件测试等内容,该网站有丰富的论文资源可供下载
    http://www.computer.org/ IEEE是世界上最悠久,也是在最大的计算机社会团体,它的电子图书馆拥有众多计算机方面的论文资料,是研究计算机方面的一个重要资源参考来源
    http://www.cs.colostate.edu/testing/ 可靠性研究网站,有一些可靠性方面的论文资料
    http://www.cs.york.ac.uk/testsig/ 约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等
    http://www.csr.ncl.ac.uk/index.html 学校里面的一个软件可靠性研究中心,提供有关软件可靠性研究方面的一些信息和资料,对这方面感兴趣的人可以参考
    http://www.dcs.shef.ac.uk/research/groups/vt/ 学校里的一个验证和测试研究机构,有一些相关项目和论文可供参考
    http://www.esi.es/en/main/ ESI(欧洲软件组织),提供包括CMM评估方面的各种服务
    http://www.europeindia.org/cd02/index.htm 一个可靠性研究网站,有可靠性方面的一些资料提供参考
    http://www.fortest.org.uk/ 一个测试研究网站,研究包括了静态测试技术(如模型检查、理论证明)和动态测试(如测试自动化、特定缺陷的检查、测试有效性分析等)
    http://www.grove.co.uk/ 一个有关软件测试和咨询机构的网站,有一些测试方面的课程和资料供下载
    http://www.hq.nasa.gov/office/codeq/relpract/prcls-23.htm NASA可靠性设计实践资料
    http://www.io.com/~wazmo/ Bret Pettichord的主页,他的一个热点测试页面连接非常有价值,从中可以获得相当大的测试资料,很有价值
    http://www.iso.ch/iso/en/ISOOnline.frontpage 国际标准化组织,提供包括ISO标准系统方面的各类参考资料
    http://www.isse.gmu.edu/faculty/ofut/classes/ 821-ootest/papers.html 提供面向对象和基于构架的测试方面著作下载,对这方面感兴趣的读者可以参考该网站,肯定有价值
    http://www.ivv.nasa.gov/ NASA设立的独立验证和确认机构,该机构提出了软件开发的全面验证和确认,在此可以获得这方面的研究资料
    http://www.kaner.com/ 著名的测试专家Cem Kanner的主页,里面有许多关于测试的专题文章,相信对大家都有用。Cem Kanner关于测试的最著名的书要算Testing Software,这本书已成为一个测试人员的标准参考书
    http://www.library.cmu.edu/Re-search/Engineer- ingAndSciences/CS+ECE/index.html 卡耐基梅陇大学网上图书馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可获取的资料来源之一
    http://www.loadtester.com/ 一个性能测试方面的网站,提供有关性能测试、性能监控等方面的资源,包括论文、论坛以及一些相关链接
    http://www.mareinig.ch/mt/index.html 关于软件工程和应用开发领域的各种免费的实践知识、时事信息和资料文件下载,包括了测试方面的内容
    http://www.mtsu.ceu/-storm/ 软件测试在线资源,包括提供目前有哪些人在研究测试,测试工具列表连接,测试会议,测试新闻和讨论,软件测试文学(包括各种测试杂志,测试报告),各种测试研究组织等内容
    http://www.psqtcomference.com/ 实用软件质量技术和实用软件测试技术国际学术会议宣传网站,每年都会举行两次
    http://www.qacity.com/front.htm 测试工程师资源网站,包含各种测试技术及相关资料下载
    http://www.qaforums.com/ 关于软件质量保证方面的一个论坛,需要注册
    http://www.qaiusa.com/ QAI是一个提供质量保证方面咨询的国际著名机构,提供各种质量和测试方面证书认证
    http://www.qualitytree.com/ 一个测试咨询提供商,有一些测试可供下载,有几篇关于缺陷管理方面的文章值得参考
    http://www.rational.com/ IBM Rational的官方网站,可以在这里寻找测试方面的工具信息。IBM Rational提供测试方面一系列的工具,比较全面
    http://rexblackconsulting.com/Pages/publicat-ions.htm
    Rex Black的个人主页,有一些测试和测试管理方面的资料可供下载
    http://www.riceconsulting.com/ 一个测试咨询提供商,有一些测试资料可供下载,但不多
    http://www.satisfice.com/ 包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值得参考
    http://www.satisfice.com/seminars.shtml 一个黑盒软件测试方面的研讨会,主要由测试专家Cem Kanar和James Bach组织,有一些值得下载的资料
    http://www.sdmagazine.com/ 软件开发杂志,经常会有一些关于测试方面好的论文资料,同时还包括了项目和过程改进方面的课题,并且定期会有一些关于质量和测试方面的问题讨论
    http://www.sei.cmu.edu/ 著名的软件工程组织,承担美国国防部众多软件工程研究项目,在这里你可以获俄各类关于工程质量和测试方面的资料。该网站提供强有力的搜索功能,可以快速检索到你想要的论文资料,并且可以免费下载
    http://www.soft.com/Institute/HotList/ 提供了网上软件质量热点连接,包括:专业团体组织连接、教育机构连接、商业咨询公司连接、质量相关技术会议连接、各类测试技术专题连接等
    http://www.soft.com/News/QTN-Online/ 质量技术时事,提供有关测试质量方面的一些时事介绍信息,对于关心测试和质量发展的人士来说是很有价值的
    http://www.softwaredioxide.com/ 包括软件工程(CMM,CMMI,项目管理)软件测试等方面的资源
    http://www.softwareqatest.com/ 软件质量/测试资源中心。该中心提供了常见的有关测试方面的FAQ资料,各质量/测试网站介绍,各质量/测试工具介绍,各质量/策划书籍介绍以及与测试相关的工作网站介绍
    http://www.softwaretestinginstitute.com 一个软件测试机构,提供软件质量/测试方面的调查分析,测试计划模板,测试WWW的技术,如何获得测试证书的指导,测试方面书籍介绍,并且提供了一个测试论坛
    http://www.sqatester.com/index.htm 一个包含各种测试和质量保证方面的技术网站,提供咨询和培训服务,并有一些测试人员社团组织,特色内容是缺陷处理方面的技术
    http://www.sqe.com/ 一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测试学术会议,并提供一些相关信息资料和课程服务
    http://www.stickyminds.com/ 提供关于软件测试和质量保证方面的当前发展信息资料,论文等资源
    http://www.stqemagazine.com/ 软件策划和质量工程杂志,经常有一些好的论文供下载,不过数量较少,更多地需要通过订购获得,内容还是很有价值的
    http://www.tantara.ab.ca/ 软件质量方面的一个咨询网站,有过程改进方面的一些资料提供
    http://www.tcse.org/ IEEE的一个软件工程技术委员会,提供技术论文下载,并有一个功能强大的分类下载搜索功能,可以搜索到测试类型、测试管理、 测试分析等各方面资料
    http://www.testing.com/ 测试技术专家Brain Marick的主页,包含了Marick 研究的一些资料和论文,该网页提供了测试模式方面的资料,值得研究。总之,如果对测试实践感兴趣,该网站一定不能错过
    http://www.testingcenter.com/ 有一些测试方面的课程体系,有一些价值
    http://www.testingconferences.com/asiastar/home 著名的AsiaStar测试国际学术会议官方网站,感兴趣的人一定不能错过
    http://www.testingstuff.com/ Kerry Zallar的个人主页,提供一些有关培训、工具、会议、论文方面的参考信息
    http://www-sqi.cit.gu.edu.au/ 软件质量机构,有一些技术资料可以供下载
  • CTTS工作总结

    2008-6-11

    上周一加班到晚上快12点了,版本依然没有发出去,还是等到周二了才发的,上周五加班到凌晨2点,一个星期连着两天加那么晚的班,人好累好累,PM急着交版本,当时我也没有那么多的时间把测试走的非常仔细,后来课想而知,客户给我们的反馈是多么的不好,尤其是对QA的质问,提出的六个问题,只有一到两个是测试的问题,一个问题是需求不明确导致的,这个项目开始到结束就没有一个很规范的需求文档,后来的需求也是PM与客户口头交流,测试总结整理的,也许都没有经过可是的确认,另外三个问题是不存在的问题,是经过测试好了的

    只是觉得太不应该了,加班加那么晚,真的是吃亏不讨好,不过就当作是一个经验,第一我们的需求必须是明确的,是有email 文档可以追踪的,而不是口头交流的文档,更不可能是测试来整理需求,就算是也必须是客户得到确认后的,第二发版本的时候一定要交Release Note,把测试中发现的问题说清楚,第三女孩子一定要少加班,最多到1030就走,加班太多太晚容易变老的,以后就算加班我也只是最晚到10:30就走,在也不加那么晚了,老板不会心疼你,也不会给你加工资,在晚发出去的版本问题会更多,疲劳战的效果总不那么理想的,身体是自己的,要好好爱护自己的身体。

  • 字符串+聚合函数 (SQL)

    2008-5-12

    今天在做报表的时候遇到了要返回单个值的聚合函数,需要写一个相关子查询,相关子查询只能返回单个值,sql无法来实现,所以要写一个函数,然后调用此函数就可以了

    存在一个表  
    表名:t_example
    字段:meetingid,           joiner
    类型:varchar(10),         varchar(10)
    数据:1000                         李梅
                1000                         王俊
                1000                         张风
                1001                         哗啦啦
                1001                         王俊
    想要的输出结果是:
                1000                         李梅王俊张风
                1001                         哗啦啦王俊
    这样子最好了:
                1000                         李梅,王俊,张风
                1001                         哗啦啦,王俊

    应该怎么做呢??

    create   table   t(meetingid   int,joiner   varchar(100))


    insert   into   T   select   1000, "李梅 "
    insert   into   T   select   1000, "王俊 "
    insert   into   T   select   1000, "张风 "
    insert   into   T   select   1001, "哗啦啦 "
    insert   into   T   select   1001, "王俊 "

    select   *   from   T

    go
    --写一个聚合函数
    create   function   dbo.fn_Merge(@id   int)
    returns   varchar(8000)
    as
    begin
          declare   @r   varchar(8000)
          set   @r= " "
          select   @r=@r+ "; "+joiner   from   T   where   meetingid=@id
          return   stuff(@r,1,1, " ") /*或者 set   @str=right(@str,len(@str)-1) return   @str */
    end
    go

    --   调用函数
    select   meetingid,   dbo.fn_Merge(meetingid)   as   joiner   from   T   group   by   meetingid

    注意有个stuff函数,这里可以替换成right函数

    SQL常用字符串函数
    摘自:http://www.87717.com
    一、字符转换函数
    1、ASCII()
    返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。
    2、CHAR()
    将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。
    3、LOWER()和UPPER()
    LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。
    4、STR()
    把数值型数据转换为字符型数据。
    STR (<float_expression>[,length[, <decimal>]])
    length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。
    当length 或者decimal 为负值时,返回NULL;
    当length 小于小数点左边(包括符号位)的位数时,返回length 个*;
    先服从length ,再取decimal ;
    当返回的字符串位数小于length ,左边补足空格。
    二、去空格函数
    1、LTRIM() 把字符串头部的空格去掉。
    2、RTRIM() 把字符串尾部的空格去掉。
    三、取子串函数
    1、left()
    LEFT (<character_expression>, <integer_expression>)
    返回character_expression 左起 integer_expression 个字符。
    ?
    2、RIGHT()
    RIGHT (<character_expression>, <integer_expression>)
    返回character_expression 右起 integer_expression 个字符。
    3、SUBSTRING()
    SUBSTRING (<expression>, <starting_ position>, length)
    返回从字符串左边第starting_ position 个字符起length个字符的部分。
    四、字符串比较函数
    1、CHARINDEX()
    返回字符串中某个指定的子串出现的开始位置。
    CHARINDEX (<’substring_expression’>, <expression>)
    其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
    此函数不能用于TEXT 和IMAGE 数据类型。
    ?
    2、PATINDEX()
    返回字符串中某个指定的子串出现的开始位置。
    PATINDEX (<’%substring _expression%’>, <column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。
    与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型

    五、字符串操作函数
    1、QUOTENAME()
    返回被特定字符括起来的字符串。
    QUOTENAME (<’character_expression’>[, quote_ character]) 其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。
    2、REPLICATE()
    返回一个重复character_expression 指定次数的字符串。
    REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。
    3、REVERSE()
    将指定的字符串的字符排列顺序颠倒。
    REVERSE (<character_expression>) 其中character_expression 可以是字符串、常数或一个列的值。
    ?
    4、REPLACE()
    返回被替换了指定子串的字符串。
    REPLACE (<string_expression1>, <string_expression2>, <string_expression3>) 用string_expression3 替换在string_expression1 中的子串string_expression2。
    ?
    4、SPACE()
    返回一个有指定长度的空白字符串。
    SPACE (<integer_expression>) 如果integer_expression 值为负值,则返回NULL 。
    ?
    5、STUFF()
    用另一子串替换字符串指定位置、长度的子串。
    STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)
    如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。
    如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。
    六、数据类型转换函数
    1、CAST()
    CAST (<expression> AS <data_ type>[ length ])
    2、CONVERT()
    CONVERT (<data_ type>[ length ], <expression> [, style])
    1)data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。
    2)length用于指定数据的长度,缺省值为30。
    3)把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号或负号的数值。
    4)TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。
    5)IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。
    6)把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。
    7)BIT类型的转换把非零值转换为1,并仍以BIT类型存储。
    8)试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。
    9)用CONVERT() 函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。
    七、日期函数
    1、day(date_expression)
    返回date_expression中的日期值
    ?
    2、month(date_expression)
    返回date_expression中的月份值
    3、year(date_expression)
    返回date_expression中的年份值
    ?
    4、DATEADD()
    DATEADD (<datepart>, <number>, <date>)
    返回指定日期date 加上指定的额外日期间隔number 产生的新日期。
    ?
    5、DATEDIFF()
    DATEDIFF (<datepart>, <date1>, <date2>)
    返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其结果值是一个带有正负号的整数值。
    ?
    6、DATENAME()
    DATENAME (<datepart>, <date>)
    以字符串的形式返回日期的指定部分此部分。由datepart 来指定。
    ?
    7、DATEPART()
    DATEPART (<datepart>, <date>)
    以整数值的形式返回日期的指定部分。此部分由datepart 来指定。
    DATEPART (dd, date) 等同于DAY (date)
    DATEPART (mm, date) 等同于MONTH (date)
    DATEPART (yy, date) 等同于YEAR (date)
    8、GETDATE()
    以DATETIME 的缺省格式返回系统当前的日期和时间
    ?
    问:
    请教一个SQL 2000 SEVER问题:
    select * from itemcode
    where code like '40%'
    如何让code=40101001
    变成code=401-01-001
    目前有666个CODE是类似40101001
    用什么语句能把它变成401-01-001
    ?
    答:
    update itemcode set code=replace(code,left(code,8),left(code,3)+'-'+substring(code,4,2)+'-'+substring(code,6,3)) where code like '40%'
    问:
    replace(code,left(code,8),left(code,3)+'-'+substring(code,4,2)+'-'+substring(code,6,3))是什么意思?
    ?
    答:
    拿 code=123456789 做例子
    a = left(code,8) = 12345678
    b = left(code,3) = 123
    c = substring(code,4,2) = 45
    d = substring(code,6,3) = 678
    e = b+'-'+c+'-'+e = 123-45-678
    f = replace(code,a,e) = 123-45-6789
    配合下边的来看,应该能明白了
    1、left(code,8) 取前8位
    2、substring(code,4,2) 从第4位开始取2位
    3、+ 是字符串连接符
    4、replace(a,str1,str2) 将a中的str1替换为str2

    5.right(code,2) 取后两位=89

     

  • reporting services 开发报表,数据为何在portal中不能完全显示

    2008-5-07

       reporting services 开发报表,数据在portal中有部分数据不能完全显示,但是这些数据在oracle数据库中可以查到,由于这边的数据库与YEA的数据库不一样,在china中运行时好的,但是在YEA那边总是会有这个问题,当时也想到了会不会是字段太长,报表所容纳的长度段了,我把后面的format函数保留的4位小数点改成round函数保留2位小数点,还是不行,幸好有个同事还在新加坡出差,他以前也做过报表,查到出错的原因了。

    在数据库中运行的小数点的位数超过了报表显示的长度,所以改了主查询,将主SQL那那四个出错的字段加上round函数,先保留四位小数点,也就是截短那些超过4位小数点的数据的字段就可以了。呵呵,今天又学习到了点东西

    原始的查询:

    SELECT
     SDR.comp_id
     ,SDR.proj_class
     ,SDR.ord_type
     ,SDR.project_no
     ,SDR.co_no
     ,SDR.co_item_no
     ,SDR.customer_name
     ,SDR.sales_dept_id
     ,SDR.status
     ,SDR.contract_currency
     ,SDR.ord_amt_contr
     ,SDR.ord_amt_inhse
     ,((SDR.ord_amt_contr / co_amt.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0)) invc_actual_amt
     ,((SDR.ord_amt_contr / co_amt.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0) * SDR.inhouse_exchange_rate) invc_actual_inhse
     ,(SDR.ord_amt_contr - ((SDR.ord_amt_contr / CO_AMT.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0))) backlog_contr
     ,(SDR.ord_amt_inhse - ((SDR.ord_amt_contr / CO_AMT.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0) * SDR.inhouse_exchange_rate)) backlog_inhse

    modify后的查询:

    SELECT
     SDR.comp_id
     ,SDR.proj_class
     ,SDR.ord_type
     ,SDR.project_no
     ,SDR.co_no
     ,SDR.co_item_no
     ,SDR.customer_name
     ,SDR.sales_dept_id
     ,SDR.status
     ,SDR.contract_currency
     ,SDR.ord_amt_contr
     ,SDR.ord_amt_inhse
     ,ROUND( DECODE(NVL(co_amt.ord_amt_contr_tot,0) , 0 ,0 ,  ((NVL(SDR.ord_amt_contr,0) / co_amt.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0))),4) invc_actual_amt
     ,ROUND(DECODE(NVL(co_amt.ord_amt_contr_tot,0) , 0 ,0 ,  ((NVL(SDR.ord_amt_contr,0) / co_amt.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0) * SDR.inhouse_exchange_rate) ),4) invc_actual_inhse
     ,ROUND(DECODE(NVL(co_amt.ord_amt_contr_tot,0) , 0 ,0 , (SDR.ord_amt_contr - ((SDR.ord_amt_contr / CO_AMT.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0)))),4) backlog_contr
     ,ROUND(DECODE(NVL(co_amt.ord_amt_contr_tot,0) , 0 ,0 , (SDR.ord_amt_inhse - ((SDR.ord_amt_contr / CO_AMT.ord_amt_contr_tot) * NVL(IVR.invc_actual_amt,0) * SDR.inhouse_exchange_rate))),4) backlog_inhse

    我认为在后面的where条件中已经限制了co_amt.ord_amt_contr_tot<>0,所以可以不用nvl与decode函数来限制co_amt.ord_amt_contr_tot=0的情况

  • 压力测试与负载测试

    2008-4-21

    压力测试:指模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。扩展开来说,其一压力测试应该是较短时间的,其次是模拟巨大的工作负荷的,再次压力测试是要使应用程序的使用达到峰值

    负载测试:Load Testing:是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。测试时通常模拟实际业务中的用户数进行测试。

    压力测试:Stress Testing:是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。 测试时要不断地增加用户数,在达到系统的极限。

    一辆10吨位的卡车,在载重11吨时,外表看来应该是没什么问题的,但是车的性能有可能有所下降(还不至于造成车辆瘫痪)

    如果负载测试的结果是10 那可能该卡车的吨位就应该是10

    至于为什么要做压力测试,那可能就是说,在载重15吨的时候,这辆卡车就可能随时存在危险(抛锚、爆胎等)。15吨可能就是压力测试的结果吧

    或许该卡车在出厂时15吨这一性能指标也会出现在相应说明书中

    压力测试:在一定负载情况长时间运行时性能指标的变化,系统是否会崩溃,以及崩溃后是否能恢复;

    负载测试:在不同负载情况下的性能指标变化,不考虑稳定性和可恢复性;

     

     

     

     

Open Toolbar