Junit
junit 解决的main 的问题 中的2个问题
- 不用去修改main方法里面的逻辑,新增测试不会影响。
- 如果测试失败了,会立即得到通知
- junit api:判断数字是否相等,还可以判断boolean, 是否是null ,是否是相同对象等等常见逻辑
QTP测试流程
1.录制测试脚本前的准备
在测试前需要确认你的应用程序及 QuickTest 是否符合测试需求?
确认你已经知道如何对应用程序进行测试,如要测试哪些功能、操作步骤、预期结果等。同时也要检查一下 QuickTest 的设定,如 Test Settings 以及 Options 对话窗口,以确保 QuickTest 会正确的录制并储存信息。确认 QuickTest 以何种模式储存信息。
2.录制测试脚本
操作应用程序或浏览网站时, QuickTest 会在 Keyword View 中以表格的方式显示录制的操作步骤。每一个操作步骤都是使用者在录制时的操作,如在网站上点击了链接,或则在文本框中输入的信息。(把人的操作录制成脚本)
3.加强测试脚本
在测试脚本中加入检查点(文字 对象 图片),可以检查网页的链接、对象属性、或者字符串,以验证应用程序的功能是否正确。将录制的固定值以参数取代,使用多组的数据测试程序。使用逻辑或者条件判断式,可以进行更复杂的测试。
4.对测试脚本进行调试
修改过测试脚本后,需要对测试脚本作调试,以确保测试脚本能正常并且流畅的执行。
5.在新版应用程序或者网站上执行测试脚本
通过执行测试脚本, QuickTest 会在新本的网站或者应用程序上执行测试,检查应用程序的功能是否正确。
6.分析测试结果
分析测试结果,找出问题所在。
7.测试报告
如果你安装了 TestDirector( Quality Center), 则你可以将发现的问题回**iv>TestDirector( Quality Center)数据库中。TestDirector( Quality Center)是 Mercury 测试管理工具。
软件测试流程
1.需求分析(产品经理)
2.编写测试用例(测什么,怎么测)
3.评审测试用例
4.搭建测试环境
5.等待开发提交测试包
6.部署测试包
7.冒烟测试(对软件主体基本功能进行基本测试)
8.执行测试用例
9.BUG跟踪处理(提交及回归BUG)
10.N轮之后符合需求
11.测试结束
测试用例(例子)
excel表格,分三列 测试需求,测试要点,测试点
如何测试一个纸杯(编写测试用例)
界面测试(UI Test)
外观好不好看。
什么颜色
杯子的形状是怎么样的。
杯子的重量是多少
杯子是否有异味
杯子的图案是否合理
性能测试(performance test)
能否装100度的开水 (泡茶)
能否装0度冰水
装满水,放几天后,是否会漏水
杯子内壁上的涂料是否容易脱落。
杯子上的颜色是否容易褪色或者脱落
被我坦克压下,是否会碎 (这条是开玩笑的哈)
安全性测试(Security test)
制作杯子的材料,是否有毒
放微波炉里转的时候,是否会爆炸, 或者杯子是否会熔化。
从桌子上掉到水泥地上是否会摔碎。
杯子是否容易长细菌
杯子是否有缺口,会划坏嘴巴
杯子内壁上的材料,是否会溶解到水中
杯子破碎后,是否会对使用者造成伤害
可用性测试(Usability Test)
杯子是否容易烫手
杯子是否好端,好拿
杯子的水是否容易喝到
杯子是否有防滑措施
如何测试一个登陆页面
功能测试(Function test)
输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。
输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。
登录成功后能否能否跳转到正确的页面
用户名和密码,如果太短或者太长,应该怎么处理
用户名和密码,中有特殊字符,和其他非英文的情况
记住用户名的功能
登陆失败后,不能记录密码的功能
用户名和密码前后有空格的处理
密码是否以星号显示
界面测试(UI Test)
布局是否合理,2个testbox 和一个按钮是否对齐
testbox和按钮的长度,高度是否复合要求
界面是否好看
图片,颜色,字体,超链接,是否都显示正确
性能测试(performance test)
打开登录页面,需要几秒
输入正确的用户名和密码后,登录成功跳转到新页面,不超过5秒
能支持多少个用户同时登陆
安全性测试(Security test)
登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)
用户名和密码是否通过加密的方式,发送给Web服务器
用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证
用户名和密码的输入框,应该屏蔽SQL 注入攻击
用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)
错误登陆的次数限制(防止暴力**)
可用性测试(Usability Test)
是否可以全用键盘操作,是否有快捷键
输入用户名,密码后按回车,是否可以登陆
面试题
测试分为哪几个阶段?
一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试
各种测试类型的含义
1-单元测试(模块测试)是开发者编写的一小段代码,用于检验被测试代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
2-集成测试(也叫组装测试、联合测试)是单元测试的逻辑扩展。它最简单的形式是:两个已经经过测试的单元组合成一个组件,并且测试它们之间的接口。从这一层上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
3-系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中制定功能的有效方法。(常见的联调测试)。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求而遵循系统设计。
4-验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让用户将其执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预订要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
黑盒测试:测试java类功能是否正常,封装起来测整体
白盒测试:测试java里面具体逻辑是否正常。
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构和有关信息,设计或者选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一直。因此白盒测试又称为结合测试或逻辑驱动测试