博为峰IT培训学校是专业的IT培训机构之一,博为峰51Code在率先推出IT就业培训业务,即通过数月的强化培训,使缺乏职场竞争力的学员具备企业级项目执行能力,先后在10余个城市推出Java,软件测试,软件开发线下培训,并推出在线职业教育平台博为峰网校Atstudy,面向/国际提供软件测试,软件开发等0基础或进阶类,考证类等课程。

5 黑盒与白盒的测试方法
答:黑盒测试:
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序
内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规
格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外
部信息(如数据库或文件)的完整性。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出
程序中所有的错误。实际上测试情况有无穷多个,因此不仅要测试所有合法的输入,而且还要对 那些不合法但是可能的输入进行测试。
常用的黑盒测试方法有:
● 等价类划分法;
● 边界值分析法;
● 因果图法;
● 场景法;
● 正交实验设计法;
● 判定表驱动分析法;
● 错误推测法;
● 功能图分析法。
白盒测试:
白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是
否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现 不了一些与数据相关的错误。
白盒测试需要遵循的原则有:
● 增加一个模块中的所有独立路径至少被测试一次;
● 所有逻辑值均需要测试真(true)和假(false);两种情况;
● 检查程序的内部数据结构,保 证其结构的有效性;
● 在上下边界及可操作范围内运行所有循环。
常用白盒测试方法:
静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进
行。
动态测试:需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、
性能分析、内存分析等。白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆 盖和路径覆盖。
六种覆盖标准发现错误的能力呈由弱到强的变化:
1、语句覆盖每条语句至少执行一次。
2、判定覆盖每个判定的每个分支至少执行一次。
3、条件覆盖每个判定的每个条件应取到各种可能的值。
4、判定/条件覆盖同时满足判定覆盖条件覆盖。
5、条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
6、路径覆盖使程序中每一条可能的路径至少执行一次。
6 手动测试与自动化测试的优缺点
答:手工测试缺点:
1、重复的手工回归测试,代价昂贵、容易出错。
2、依赖于软件测试人员的能力。
手工测试优点:
1、测试人员具有经验和对错误的猜测能力。
2、测试人员具有审美能力和心理体验。
3、测试人员具有是非判断和逻辑推理能力。
自动化测试的优点:
1、对程序的回归测试更方便。这可能是自动化测试较主要的任务,特别是在程序修改
比较频繁时,效果是非常明显的。由于回归测试的动作和用例是完全设计好的,测试期望的结果
也是完全可以预料的,将回归测试自动运行,可以极大提高测试效率,缩短回归测试时间。
2、可以运行更多更繁琐的测试。自动化的一个明显的好处是可以在较少的时间内运行更多的测试。
3、可以执行一些手工测试困难或不可能进行的测试。比如,对于大量用户的测试,不可能同时让足够多的测试人员同时进行测试,但是却可以通过自动化测试模拟同时有许多用户,
从而达到测试的目的。
4、更好地利用资源。将繁琐的任务自动化,可以提高准确性和测试人员的积极性,将测试技术人员解脱出来投入更多精力设计更好的测试用例。有些测试不适合于自动测试,仅适合于手工测试,将可自动测试的测试自动化后,可以让测试人员专注于手工测试部分,提高手工测试的效率。
5、测试具有一致性和可重复性。由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复的效果。
6、测试的复用性。由于自动测试通常采用脚本技术,这样就有可能只需要做少量的甚 至不做修改,实现在不同的测试过程中使用相同的用例。
7、增加软件信任度。由于测试是自动执行的,所以不存在执行过程中的疏忽和错误,
完全取决于测试的设计质量。一旦软件通过了强有力的自动测试后,软件的信任度自然会增加。
自动化测试的缺点:
1、不能取代手工测试
2、手工测试比自动测试发现的缺陷更多
3、对测试质量的依赖性极大
4、测试自动化不能提高有效性
5、测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受 到限制,从而制约软件的开发。
6、工具本身并无想像