简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试
·
静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
·
动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
·
黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
·
白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
·
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
·
β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。
测试阶段:
·
单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
·
集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。
·
系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
·
验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
*黑盒测试的测试用例常见设计方法都有哪些?
*请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。
1)等价类划分:
需求将输入(特殊情况下会考虑输出)划分为若干个等价类,从等价类中选出一个测试用例,如果这个测试用例测试通过,则认为所代表的等价类测试通过, 解决了不能穷举测试的问题.
举例:
用户名由长度为6-15位的字符串组成,那么针对字符
有效等价类为A-Z,a-z
无效等价类为:数字:1,0.1,-1
;特殊字符:@,#,¥,空
)边界值分析法:
上面提到的注册邮箱的软件需求,用户名要求长度为6-15位 。
边界值上点为:5,6,15,16 全了吗?
3)错误猜测法:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
4)因果图方法:前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入
5)正交表分析法:可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6)场景分析方法:指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
7)状态图法:通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条件;通过输入条件、输出条件和状态得出被测系统的测试用例。
8)大纲法:大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所有功能所需测试用例的大致数量。
常用白盒测试方法:
静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。
动态测试:需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。
白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:
1.语句覆盖每条语句至少执行一次。
2.判定覆盖每个判定的每个分支至少执行一次。
3.条件覆盖每个判定的每个条件应取到各种可能的值。
4.判定/条件覆盖同时满足判定覆盖条件覆盖。
5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
6.路径覆盖使程序中每一条可能的路径至少执行一次。
**
请问你怎么测试网络协议
1、一致性测试:检测协议实现本身与协议规范的符合程度
2、互操作性测试:基于某一协议检测不同协议实现间互操作互通信的能力
3、性能测试:检测协议实现的性能指标,比如数据传输速度,连接时间,执行速度,吞吐量,并发度,
4、健壮性测试:检测协议是现在各种恶劣环境下运行的能力,比如注入干扰报文,通信故障,信道被切断
**
1、 内存:内存消耗测试节点的设计目标是为了让应用不占用过多的系统资源,
2、 2、CPU:
·
3、流量:
·
网络流量测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试。
·
流量测试包括以下测试项:
·
应用首次启动流量提示;
·
4、电量:
·
●测试手机安装目标APK前后待机功耗无明显差异;
·
●常见使用场景中能够正常进入待机,待机电流在正常范围内;
·
●长时间连续使用应用无异常耗电现象。
·
5、启动速度:
·
第一类:首次启动–应用首次启动所花费的时间;
·
第二类:非首次启动–应用非首次启动所花费的时间;
·
6、滑动速度、界面切换速度
·
7、与服务器交互的网络速度
·
Bug类型
·
• 代码错误
·
• 界面优化
·
• 设计缺陷
·
• 配置相关
·
• 安装部署
·
• 安全相关
·
• 性能问题
·
• 标准规范
·
• 测试脚本
·
• 其他
给一个网页应该从几方面进行对它的测试。
功能测试(Function test)
用户名,密码,验证码(验证功能,记忆功能,提示功能,)
界面测试(UI Test)
布局合理性,按钮,文字,风格。
性能测试(performance test)
页面跳转的时间
安全性测试(Security test)
多用户是否可在一台机器登陆
一个用户是否可在多台机器上登陆
验证码是否复杂
错误登陆的次数限制(防止暴力破解)
可用性测试(Usability Test)
键盘是否可用,回车
兼容性测试(Compatibility Test)
不同的平台是否工作正常,屏幕自适应