新闻  |   论坛  |   博客  |   在线研讨会
嵌入式软件测试
hongye7999 | 2009-05-04 22:14:24    阅读:1419   发布文章

01.什么是软件测试

  软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。

  软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。模块的编写者与测试者是同一个人。编码与单元测试属于软件生存期中的同一个阶段。在这个阶段结束之后,对软件系统还要进行各种综合测试,这是软件生存期的另一个独立的阶段,即测试阶段,通常由专门的测试人员承担这项工作

02.白盒测试有哪几种方法?

   白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。

03.Alpha和Beta测试的区别.

 大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试,目的是从实际终端用户的使用角度,对软件的功能和性能进行测试,以发现可能只有最终用户才能发现的错误。

Alpha测试(α测试)是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。Alpha测试可以从软件产品编码结束之后开始,或在模块(子系统)测试完成后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。有关的手册(草稿)等应该在Alpha测试前准备好。

Beta测试(β测试)是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。在Beta测试中,由用户记下遇到的所有问题,包括真实的以及主管认定的,定期向开发者报告,开发者在综合用户的报告后,做出修改,最后将软件产品交付给全体用户使用。Beta测试着重于产品的支持性,包括文档、客户培训和支持产品的生产能力。只有当Alpha测试达到一定的可靠程度后,才能开始Beta测试。由于Beta测试的主要目标是测试可支持性,所以Beta测试应该尽可能由主持产品发行的人员来管理。

由于Alpha和Beta测试的组织难度大,测试费用高,测试的随机性强、测试周期跨度较长,测试质量和测试效率难于保证,所以,很多专业软件可能不再进行Beta测试。随着测试技术的提高,以及专业测试服务机构的大量涌现,很多软件的Beta测试外包给这些专业测试机构进行测试


下面将黑盒测试白盒测试进行详细说明:

  黑盒测试白盒测试是两种不同的测试方法.在整个的测试过程中两种方法都会用到,但以经验来看,在一个项目中测试工程师还是以黑盒测试为主,白盒测试为辅.对于有些人认为黑盒测试没有技术含量,这是完全错误的一种看法,好的黑盒测试需要丰富的经验和敏锐的思维.

黑盒测试的特点:

1. 不基于对系统内部的设计和实现.

2. 用例设计基于功能的定义和需求说明书.

3. 关注于测试数据的选择和测试结果的分析.

常见的黑盒测试有,功能测试、压力测试、易用性测试和性能测试等。

使用的测试方法有,等价类划分、边界值测试、错误测试、启发性测试等。

当然黑盒测试也存在一些弊端:

1. 对用例设计人员的经验要求较高,包括数据的选择,对潜在错误的敏感性;

2. 对于内部实现的bug不容易发现;

3. 不能提供直观的测试覆盖率。

白盒测试的特点:

1. 需要了解系统的整体设计和实现;

2. 对源代码进行审查;

3. 在单元测试阶段发现大量的缺陷;

4. 关注于系统的控制流和数据流;

常用的一些白盒测试方法有,独立路径测试、逻辑判断测试、数据结构测试、覆盖率测试等。

白盒测试的不足之处有:

1. 不能确保系统是否完全符合需求说明书;

2. 白盒测试的代价会大于黑盒测试;

3. 需要源代码首先完成才能进行测试;

   在我们的项目中的实践方法是,在早期开发人员通过做单元测试和代码审查来完成白盒测试的大部分,相应的测试模块的分责人也会参与开发人员的Design Review Meeting。在集成测试和系统测试部分主要是测试人员进行黑盒测试,必要时会对一些核心模块或者bug比较多的模块与开发人员一起重新做Code Review。在产品比较稳定之后,会采用一些测试工具Rational Purecoverage来做覆盖率测试,通过覆盖率测试可以发现哪些函数没有跑到,进而更新或加入新的测试用例。但覆盖率不可能100%,一般采取的标准是函数覆盖率90%,语句覆盖率70%。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
展示自我,坚持!
最近文章
人在江湖
2012-03-11 22:07:23
X电容,Y电容作用
2010-02-11 22:57:36
推荐文章
最近访客