软件测试

来源:互联网 发布:淘宝两个钻花多少钱了 编辑:程序博客网 时间:2024/05/19 02:06

1、软件测试行业现状?

    正蓬勃发展,起步晚,对测试资源的投入、测试人员的培训、测试工具的购买相对缺乏。

2、目前测试人员的能力?

    普遍偏低,尤其是在测试用例的设计能力、测试的规范化执行、自动化测试和性能测试等方面。

3、软件测试发展过程?

    最早开发人员编写完程序后自己调试,局限性大,存在公正性和权威性的问题;组建独立的测试小组,独立测试,形成测试职业;学者专门研究测试技术和理论,开 发人员开发出专门的测试工具来帮助测试人员进行测试。

4、软件测试发展方向?

    逐渐出现更多更好的测试工具,自动化测试越来越普遍,开发人员的测试意识将不断增强,开始与测试人员一起讨论测试的设计,并做更多的单元测试。

5、什么制约了软件测试的发展?

    测试更讲究测试人员对需求的理解、验证,对软件行为正确与否的判断,依赖经验,难免手工测试;缺乏其他学科(数学、人工智能)的支持,测试工具待进一步改 进。

6、所在测试组织是怎样工作的?

    微软以前也无独立测试组,开发人员自己测试或请别人协助测试,Bug仍然存在,成立独立的测试部门。组织方式两大类:一是测试人员跟随项目,好处是熟悉项 目的业务知识,缺点是交流障碍,测试经验不能传递;二是测试人员由测试部门经理管理,好处是资源统一管理交流多,多点事不利于项目知识深入理解。

7、如何融入团队进入工作状态?

    尽快熟悉项目工作环境;虚心学习熟悉资料;启动阶段多参与会议了解需求;阅读已有测试用例、缺陷库中旧有的bug。

8、如何带领测试团队?

    建立学习、培训机制;建立共享氛围和学习习惯(测试知识库、内部杂志);制定工作规范和指引;明确人员职责、组织结构、工作流程。

9、测试人员应该具备那些素质?

    沟通能力、软件相关的知识、文档编写能力、自信、怀疑精神。

10、QA与QC

    QA即质量保证,QC即质量控制,目标都是提高软件质量和竞争力。测试人员需要积极配合QA人员记录好缺陷、分析统计缺陷,为质量保证提供各种基础数据。 两者都是查找错误,QC查找的产品中的错误,QA查找的是过程中的错误;两者都是对质量进行管理。

11、对软件工程的了解

    软件工程的目的是提高软件的质量和生产率最终实现软件的工业化生产。采用软件工程模型的目的是为了确保项目的成功,成功是有成本、进度、质量三者共同决定 的,软件工程考虑这三方面因素,测试主要负责质量方面。

12、软件测试的目的?

    发现软件存在的缺陷,建立起对软件的信心。测试也是一种服务——为客户服务,帮客户避免充满缺陷的软件;为项目组服务,提供缺陷信息,及时更正,提高产品 质量;为项目经理判断软件质量提供参考信息。

13、软件测试原则

    Good enough原则;Pareto原则(80-20原则:80%的Bug在分析、设计、评审阶段就能被发现和修正,16%需要由系统的软件测试发现,4%的 bug只有在用户长期使用过程中才能暴露);尽可能早地开展测试(越早发现错误,修改的代价越小,越迟代价越高;在发现较多错误的地方投入更多的测试;同 化效应(测试人员受开发人员影响同意其某些观点,测试人员越熟悉软件越容易忽略看似小的问题)

14、软件测试的学派

    分析学派:测试是严格的技术性的。

    标准学派:测试是用于衡量进度的一种方式,强调成本度量和可重复的标准。

    质量学派:强调过程,像警察一样审判开发人员,像守门员一样保证质量。

    上下文驱动学派:强调人的作用,寻找利益相关的bug。

    敏捷学派:用测试来验证开发是否完成,强调自动化测试。

15、微软的测试方法

    强调测试人员与开发人员的配合,测试人员要与开发人员一起参与到需求和设计的评审中,测试人员从测试的角度对需求文档、设计文档进行可测试性、明确性、完 整性、正确性等方面的审查。测试人员会在项目的里程碑阶段的末期进行Bug Bash(bug大扫除)。项目经理负责定义需求、编写需求规格说明书和设计文档;开发人员负责编写代码来实现需求设计的规格定义;测试人员负责测试开发 人员编写的代码是否复合项目经理定义的规格。三者没有必然的上下级关系,分工合作。

16、IBM的测试方法

    基于RUP(Rational统一过程模型),强调迭代开发、持续集成。注重回归测试,相同的测试要重复多次,所以要投入精力将回归测试自动化。

    采用测试覆盖率和质量来对测试进行度量。覆盖是对测试完全程度的评价(测试需求的覆盖、测试用例的覆盖、测试执行代码的覆盖),质量是对测试对象的可靠性 稳定性及性能的评价。

    用例驱动。一个用例就是系统的一个功能。用例贯穿于整个软件开发的生命周期(需求分析——用例描述、系统设计——用例分析、编码——用例实现、测试——用 例检验)。

    测试类型:可靠性(完整性、结构性)、功能性(配置、功能、安装、安全——预期主角才能使用、容量)、性能(基准、竞争、负载、性能曲线、强度)。

    单元测试——>集成测试——>系统测试——>验收测试。

17、Parasoft的自动错误预防(AEP——Automated Error Prevention)

    以防止错误发生为主要目的。

18、测试过程包括哪些阶段?

    测试需求分析和测试计划制定、测试用例设计、测试环境搭建、测试执行、缺陷分析和报告、测试总结。

19、测试用例设计方法?

    等价类划分法、边界值分析法、基本路径分析法、因果图法、场景设计法、错误猜测法;有效减少测试用例个数的方法:正交表法、均匀试验法、组合覆盖法。分类 树法辅助进行测试用例设计。

20、测试环境?

    测试数据、测试工具、测试机器及操作系统、安装包、网络环境、服务器配置与搭建。

21、测试工具如何引入?

    测试工具似一把剑,测试人员要先“品剑”(测试工具的选型、测试工具的试用),再“练剑”(测试工具的培训),然后“用剑”(测试工具的使用)“论剑” (积累使用经验)。

22、各种测试工具简介

    测试管理工具——TestDirector,包括测试需求管理、测试用例管理、测试过程管理、缺陷跟踪管理、测试报告管理5方面。

    自动化功能测试工具——TestComplete,由美国AutomatedQA公司生产,支持对Win32、.NET、WPF、Web类型的应用程序的 测试,支持多平台多语言。QTP(QuickTest Professional)具有关键字驱动测试特性,在增强测试创建和维护方面很有优势。

    性能测试工具——LoadRunner,业界公认的权威性能测试工具,被誉为“工业级”的性能测试工具,支持广泛的协议和平台,3个功能模 块:Virtual User Generator(录制和编写协议脚本)、Controller(创建测试场景、执行性能测试)、Analysis(分析测试结果、形成测试报告)。

    内存问题测试工具——BoundsChecker,优秀的内存检测工具,尤其是非托管程序的内存泄漏问题的检测非常有效,采用“Code Injection”技术截获对分配内存和释放内存的函数的调用。

    微软的单元测试工具——MSTest,在Visual Studio.NET 2005中进行了整合,利用反射机制可以访问private类型的属性和方法,并可以自动创建基础的测试代码框架。

    测试用例设计工具——CTE XL,利用分类树方法设计测试用例。

23、开源测试工具的发展?

    超过300个,覆盖了单元测试、性能测试、自动化功能测试、测试管理等。

24、开源测试工具简介

    管理类工具——Bugzilla(Bug跟踪系统,功能强大,但安装麻烦)、Mantis(缺陷跟踪系统,安装方便,扩展性强)、BugFree(缺陷管 理系统,PHP+MySQL编写,轻量级,中国人的开源项目,本土优势)。

    单元测试类工具——XUnit是一个大的框架系列,Java的JUnit,.NET的NUnit,Delphi的DUnit;NMock是.NET的动态 模拟对象库;NunitForms是NUnit的扩展,专为Windows Forms应用程序的单元测试和接收测试而设计。

    性能测试类工具——集中在Web性能测试方面,OpenSTA、TestMaker、JMeter、DBMonster

    自动化功能测试类工具——针对Java的Abbott Java GUI Test Framework;针对C#的SharpRobo,用于.NET的WinForm程序的功能测试和录制;针对html的Samie(Simple Automation Module For Internet Explorer),专用于IE自动化测试的Perl模块。

25、Windows自带小测试工具

    “运行”中输入“Perfmon”,启动性能监控工具,提供的计数器日志记录功能可以方便的记录测试过程中某些对象的性能变化情况。

26、如何建立团队学习气氛?

    把学习内容作为工作考核的一部分;把学习计划作为项目计划的一部分;把学习和技术研究任务任务化、专门化;建立一帮一导师制;建立持续的培训体系。

27、测试人员的发展路线——管理路线、技术路线

    初级测试工程师:集中在手工测试和基本的功能验证性测试方面

    中级测试工程师:集中在黑盒测试的执行及其测试用例的设计方面,制定测试计划、测试报告

    高级测试工程师:具备较强的测试用例设计能力,理论融入实践,黑盒、白盒、性能测试

    测试组长:组织、沟通能力,任务分配、资源安排、分工、具备风险意识,Bug评审、缺陷分析

    测试主管:管理多个测试项目,协调部门工作,监控测试进度,关注氛围、凝聚力

    质量主管:整体架构、测试工具选型是否合理,关注流程的质量,负责管理体系的建立与维护


  相关的测试网站

51Testing软件测试网  www.51testing.com 
  蓝天伟测试之家 www.lantianwei.com 
  中国测试社区 www.3atesting.com 
  测试时代  www.testage.net 
  CSDN——软件测试频道  testing.csdn.net 
  希赛网——软件测试频道  testing.csai.cn

  中国软件测试联盟  www.iceshi.com

  一起测试网  www.17testing.com

  北大测试  www.btesting.com

  中国软件测试基地 www.cntesting.com

  中国软件评测中心  www.cstc.org.cn

  中国软件质量网  www.rjzl.gov.cn

  中国软件测试社区 http://www.sztest.net/forum/

  海松宝的小屋  http://www1.testage.net/haisongbao/

  Alan工作室  http://alanzhou.nease.net/index.htm

  软件工程专家网  http://www.51cmm.com/

  51testing软件测试网(慧谷-博为峰软件测试工作室)  www.51testing.com

  中国软件测试在线  http://www.softtest.cn/

  杨柳清风论坛  http://www.kaiyuanlaw.com/dvbbs/

  天极网的软件测试板块  

   http://www.yesky.com/SoftChannel/72342393369657344/index.shtml

  测试工程师  http://opentest.51.net/index.htm

  自由龙(好像是珠海的)   http://www.freedragon.net/


测试工具


自 动化测试工具可以 减少测试工作量,提高测试工作效率,但首先是能够选择一个合适的且满足企业信息系统工程环境的自动化测试工具,因为不同的测试工具,其面向的测试对象是不 一样的。按照测试工具的主要用途和应用领域,可以将自动化测试工具分为以下几类:

负 载压力测试 :

  1. LoadRunner 特点a,支持的协议多且个别协议支持的版本比较高;特点b,负载压力测试方案设置灵活;特点c,丰富的资源监控;特点d,报告可以导出到Word、 Excel以及HTML格式。
  2. QALoad (1).测试接口多;(2)可预测系统性能;(3)通过重复测试寻找瓶颈问题;(4)从控制中心管理全局负载测试;(5)可验证应用的扩展性;(6)快速 创建仿真的负载测试;(7)性能价格比较高。此外,QALoad不单单测试Web应用,还可以测试一些后台的东西,比如SQL Server等。只要它支持的协议,都可以测试。
  3. Benchmark Factory 首先它可以测试服务器群集的性能;其次,可以实施基准测试;最后,可以生成高级脚本。
  4. SilkPerformance:
  5. E-Test Suite 由Empirix公司开发的测试软件,能够和被测试应用软件无缝结合的Web应用测试工具。工具包含e-Tester、e-Load和e- Monitor,这三种工具分别对应功能测试、压力测试以及应用监控,每一部分功能相互独立,测试过程又可彼此协同。
  6. JMeter 是一个专门为运行和服务器负载测试而设计、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的 测试模块。它和HTTP和SQL(使用JDBC)的模块一起运行。它可以用来测试静止或活动资料库中的服务器运行情况,可以用来模拟服务器或网络系统在重 负载下的运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
  7. WAS 是Micro$oft提供的免费的Web负载压力测试工具,应用广泛。WAS可以通过一台或者多台客户机模拟大量用户的活动。WAS 支持身份验证、加密和Cookies,也能够模拟各种浏览器和Modem速度,它的功能和性能可以与数万美元的产品媲美。
  8. ACT 或称MSACT,它是微软的Visual Studio和Visual Studio.net带的一套进行程序压力测试的工具。ACT不但可以记录程序运行的详细数据参数,用图表显示程序运行情况,而且安装和使用都比较简单, 结果阅读叶很方便,是一套较理想的测试工具。
  9. OpenSTA 它的全称是Open System Testing Architecture。OpenST的特点是可以模拟很多用户来访问需要测试的网站,它是一个功能强大、自定义设置功能完备的软件。但是,这些设置大 部分需要通过Script来完成,因此在真正使用这个软件之前,必须学习好它的Script编写。如果需要完成很复杂的功能,Script的要求还比较 高。当然这也是它的优点,一些程序员不会在意编写Script的。
  10. PureLoad 一个完全基于Java的测试工具,它的Script代码完全使用XML。所以,编写Script很简单。它的测试包含文字和图形并可以输出为HTML文 件。由于是基于Java的软件,因此PureLoad可以通过Java Beans API来增强软件功能。


功 能测试

  1. WinRunner 企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行,自动执行重复任务并优化测试工作,从而缩短测试时间。通过自动录制、检测和回 防用户的应用操作,从而提高测试效率。
  2. QARun 一款自动回归测试工具,与Winrunner比较学习成本要低很多。不过要安装QARun必须安装.net环境,另外它还提供与 TestTrack Pro的集成。
  3. Rational Robot 我经常使用的测试工具,属于Rational TestSuite中的一员,对于Visual studio 6编写的程序支持的非常好,同时还支持Java Applet、HTML、Oracle Forms、People Tools应用程序的支持。要支持Delphi程序的测试还必须下载插件。Rational Robot的语法使用Basic语法,它的语言使用SQABasic。
  4. Functional Tester 它是Robot的Java实现版本,在Rational被IBM收购后发布的。在Java的浪潮下,Robot被移植到了Eclipse平台,并完全支持 Java和.net。可以使用VB.net和Java进行脚本的编写,当然了录下脚本让后做做修改是最爽的事情了。由于支持Java,那么对测试脚本进行 测试也变成了可能。更多的信息请到IBM developerworks上查看,另外还提供试用版本下载。


白 盒测试

  1. Logiscope
  2. PRQA
  3. Junit
  4. DevPartner
  5. Rational Purify



 

测 试管理

  1. TestDirector MI的测试管理工具,可以与winrunner、Loadrunner、QuickTestPro进行集成。除了可以跟踪Bug外,还可以编写测试用例、 管理测试进度等等,是测试管理的首选软件。
  2. TestManager Rational Testsuite中的一员,可以用来编写测试用例、生成Datapool、生成报表、管理缺陷以及日志等等。是一个企业级的强大测试管理工具。缺点是必 须和其它组件一起使用,测试成本比较高。
  3. TrackRecord 一款擅长于Bug管理的工具,与TestDirecotr和Testmanager比较起来是很light的。不过至今还没有配成功过。:(
  4. Bugzilla 一个产品缺陷的记录及跟踪工具,它能够为你建立一个完善的Bug跟踪体系,包括报告、查询并产生报表、处理解决等几个部分。它的主要特点为:基于Web方 式,安装简单;有利于缺陷的清楚传达;系统灵活,可配置性很强;自动发送Email。
  5. Jira 是一个Bug管理工具,自带一个Tomcat 4;同时有简单的工作流编辑,可用来定制流程;数据存储在HSQL数据引擎中,因此只要安装了JDK这个工具就可以使用。相比较Bugzilla来说有不 少自身的特点,不过可惜它并不是开源工具,有Lisence限制。


测 试辅助

  • SmartDraw 用于绘制UCML,进行负载压力测试需求分析。对压力测试测试前的工作很有帮助。
  • SDemo 我个人比较喜欢用这个工具,可以将操作录成EXE文件,并回放出来。这样就避免了那些偶尔才出现的Bug
  • 原创粉丝点击