日历

« 2008-10-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

统计信息

  • 访问量: 228
  • 日志数: 5
  • 建立时间: 2008-01-07
  • 更新时间: 2008-01-15

RSS订阅

我的最新日志

  • 软件测试的安全性

    2008-1-15

    软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

    用户认证安全的测试要考虑问题:

    1.         明确区分系统中不同用户权限

    2.         系统中会不会出现用户冲突

    3.         系统会不会因用户的权限的改变造成混乱

    4.         用户登陆密码是否是可见、可复制

    5.         是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)

    6.         用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统

    系统网络安全的测试要考虑问题

    1.         测试采取的防护措施是否正确装配好,有关系统的补丁是否打上

    2.         模拟非授权攻击,看防护系统是否坚固

    3.         采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP

    4.         采用各种木马检查工具检查系统木马情况

    5.         采用各种防外挂工具检查系统各组程序的客外挂漏洞

    数据库安全考虑问题:

    1.         系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)

    2.         系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据的不完整,对于这个系统的功能实现有了障碍)

    3.         系统数据可管理性

    4.         系统数据的独立性

    5.         系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

  • 测试人员的职责

    2008-1-15

    我经常考虑作为测试人员职责到底多宽,经过看一些资料,还有我自己的体会对软件测试的职责作了下总结:

    ¶ 在项目的前景、需求文档确立基线前对文档进行测试,从用户体验和测试的角度提出自己的看法。

    ¶ 编写合理的测试计划,并与项目整体计划有机地整合在一起。

    ¶ 编写覆盖率高的测试用例。

    ¶ 针对测试需求进行相关测试技术的研究。

    ¶ 认真仔细地实施测试工作。

    ¶ 进行缺陷跟踪与分析。

    ¶ 提交测试分析报告。

    当然具体到某个角色的职责又有所不同,一般测试组内有测试经理、测试员两个角色。

    Y 测试经理:组建测试组;协调测试组内部的沟通;代表测试组与其他角色组进行沟通(其他角色是指项目经理、开发人员);编写测试计划;测试报告分析。
    Y 测试员:编写测试用例(有很多情况测试用例是由测试经理来编写的);实施测试用例;执行测试。

  • 11种方法检测软件可靠性[转]

    2008-1-08

     

    软件的安全可靠性是衡量软件好坏的一个重要标准,安全性指与防止对程序及数据的非授权的故意或意外访问的能力有关的软件属性,可靠性指与在规定的一段时间和条件下,软件能维持其性能水平能力有关的一组属性。具体我们可以从以下几个方面来判断:
    1.用户权限限制。软件是否按功能模块划分用户权限,权限划分是否合理,考察超级用户对各个用户的权限管理是否合理,包括修改用户的登录资料等。
    2.用户和密码封闭性。软件对用户名和密码有无校验,有无保护措施,尤其对密码有无屏蔽功能。
    3.系统对用户错误登录的次数限制。软件对用户错误登录有无次数限制,一般做法是连续三次登录失败就退出系统。
    4.留痕功能。软件是否提供操作日志,比如某用户登录的时间,查询、修改或删除的动作以及离开的时间等。
    5.屏蔽用户操作错误。考察对用户常见的误操作的提示和屏蔽情况,例如可否有效避免日期的录入错误或写入无效的日期。
    6.错误提示的准确性。当用户操作错误或软件发生错误时,能否有准确清晰的提示,使用户知道造成错误的原因。例如当用户未输入完有效信息时存盘,系统应当给出关于未输入项的提示。
    7.错误是否导致系统异常退出。考察软件运行的稳定性,当软件发生一般错误或严重错误时,软件是否会自动退出。
    8.数据备份与恢复手段。主要针对有数据存储需要的软件,有的软件依靠数据库操作系统本身的备份与恢复机制,这需要用户具备一定的操作知识;好的软件会提供备份与恢复的操作,不需要用户直接对数据库系统进行操作。
    9.输入数据有效性检查。当用户输入的数据有错时,软件应能判断数据的有效性,避免无效数据的生成。
    10.异常情况的影响。在程序运行过程中进行掉电等试验,考查数据和系统的受影响程度;若受损,是否提供补救工具,补救的情况如何。
    11.网络故障对系统的影响。当网络中断连接时,是否会造成数据的丢失。
      以上一些方面是中国软件评测中心在大量的软件测试实践中提炼出来的比较有共性的项目,对于不同类型的软件,在安全可靠性方面还有更多的评测指标,并且依据实际情况侧重点有所不同
  • 一个有竞争力的测试工程师应该具备的三项基本素质(转)

    2008-1-08

    很多年轻或者刚刚从事测试工作的工程师,经常会问:“测试工程师需要什么技能或者具有什么素质才是合格的?”与开发人员相比,测试人员不但需要一技之长,还需要掌握诸如操作系统数据库、网络等多方面的知识。

           经过这几年的发展,国内IT公司的测试水平有了很大的提高,但是与此同时,很多测试工程师也迎来了个人的发展瓶颈:很多人从测试工程师做到了测试经理的职位,不知道下一步如何发展;或者每天机械地从事着功能测试工作。

    根据作者多年的经验,一个有竞争力的测试人员要具有下面三个方面的素质:

    计算机专业技能

    计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。计算机专业技能主要包含三个方面:

    测试专业技能

    现在软件测试已经成为一个很有潜力的专业。要想成为一名优秀的测试工程师,首先应该具有扎实的专业基础,这也是本书的编写目的之一。因此,测试工程师应该努力学习测试专业知识,告别简单的“点击”之类的测试工作,让测试工作以自己的专业知识为依托。
    测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理自动化测试技术等知识。

    软件编程技能

    “测试人员是否需要编程?”可以说是测试人员最常提出的问题之一。实际上,由于在我国开发人员待遇普遍高于测试人员,因此能写代码的几乎都去做开发了,而很多人则是因为做不了开发或者不能从事其它工作才“被迫”从事测试工作。最终的结果则是很多测试人员只能从事相对简单的功能测试,能力强一点的则可以借助测试工具进行简单的自动化测试(主要录制、修改、回放测试脚本)。
    软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。因此,测试人员要想得到较好的职业发展,必须能够编写程序。只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。

    此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。因此测试人员要具备一定的算法设计能力。依据作者的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。

    网络、操作系统、数据库、中间件等知识:

    与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
    在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
    操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
    数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。因此不但要掌握基本的安装、配置,还要掌握SQL。测试人员至少应该掌握Mysql、MS Sqlserver、Oracle等常见数据库的使用。

    作为一名测试人员,尽管不能精通所有的知识,但要想做好测试工作,应该尽可能地去学习更多的与测试工作相关的知识。
  • 测试人员如何才能保持竞争力(转贴)

    2008-1-08

    适逢年关,各个公司跳槽换工作的XDJM肯定不少。最近身边的几个关系不错的同事离开了公司选择了新的岗位。所做项目和之前在公司的项目有很大的差别,可以说是跨了一个领域。最近一直在思考一个问题。我们如何才能保持自己的竞争力,为自己留个后路。本人所在的公司是一家外包公司,大家知道一般外包公司的项目特点。哪天客户把项目转移了,我们就没有项目做了。不能在一棵树上吊死吗,呵呵!像任正非写的文章《华为的冬天》一样,我们也要想到自己的冬天。看了很多关于测试工程师的招聘信息,除了项目的本身具体内容的要求,其他的都类似。为了提高自己的竞争力,或者说保持竞争力。我们需要不停的学习,提高。对于我们测试人员,我想了以下几点。

    1. 计算机编程基础:不要把自己上学时候学得东西丢掉。大家应该都能体会到,大部分的测试人员的代码能力都不强。对于我们测试的工作,虽然不要精通。但是我们需要有代码思想。所以没事的时候把大学学的c,数据结构再复习一下,绝对有用。还可以自学些语言。

    2。CMMI及软件工程相关知识:现在中国是个公司就在搞CMMI,了解学些这些知识没错。测试是软件工程中很重要的一环,质量对于测试来讲很重要。

    3。学习了解一种自动化测试工具

    4。测试理论:熟练掌握测试的相关理论。如测试的类型,bug的生命周期,bug管理,测试用例的编写等。

    5。项目管理知识(可选):如果大家要做项目lead的话,这方面的知识是比不要可少的。

        做测试时间长的朋友都应该知道,所有的项目都有很多共性的,他们的区别就是细节不同,那些细节对于不熟悉的人,肯定会有相关的培训,有在学习熟悉的过程。对于公共的部分我们掌握好了,换了新项目,所需要做的就是学习细节的东西。呵呵,写了这多自己也需要按照这个执行。以上是自己的一些想法和观点,也许有些和大家的不同。

Open Toolbar