1、什么是软件测试
1)为发生错误而执行程序的过程
2)评价程序或系统属性为目的的活动,是对软件质量的度量
通过发现缺陷进行总结、归纳、分析,给开发提出合理化的建议,让开发改进工作,最终提升软件产品质量
2、什么是软件缺陷
1)软件未实现规格说明书的功能
2)软件出现了产品说明书中指明不应该出现的错误
3)软件实现了产品说明书中未提到的功能
4)软件未实现产品说明书虽未提及但应该实现是功能
5)软件难以理解、不易使用、运行缓慢或者用户认为不好的
3、测试生命周期
测试计划-----产生测试计划文档
测试分析
测试设计---产生测试用例文档
测试执行---产生测试缺陷报告文档
测试评估--产生测试报告文档
4、测试方法:黑盒、灰盒、白盒
根据阶段和作用:
单元测试:编码结束之后执行、主要是测试函数是否正常使用
集成测试:各个模块集成以后,测试各个模块之间的调用,接口之间的传递是否正确
冒烟测试:基本功能是否能够实现
系统测试:验证需求规格是否正确实现
验证测试:用户是否能够正常使用,能否接收的系统
回归测试:是开发人员根据缺陷进行修改、然后测试人员进行验证是否改好和是否引进新的问题、若改好了,就可以关闭BUG了
根据目的:功能测试、性能功能、安全测试、兼容性测试
@测试:用户在开发环境中测试
B测试:用户在用户环境中测试
5、测试基本原则:
尽早地测试和不断的进行软件测试
应避免测试自己的程序
Pareto原则(80/20原则)
测试用例由输入和预期输出结果组成
程序修改后要回归测试
穷举测试是不能的
6、黑盒测试用例设计方法:
等价类划分法、边界值法、判定表驱动法、因果图法、正交法、场景法
1)等价类划分法
把程序的所有可能的输入数据划分为若干子集,每个子集的代表性数据在测试中作用等价于这一子集的其他值。每个子集就是一个等价类。等价类需要考虑有效等价类和无效等价类。
[ 0,60] | 差 |
[60,75] | 中 |
[75,85] | 良好 |
[85,100] | 优秀 |
等价类测试用例
等价类 | 测试用例 | |
输入数据 | 预期结果 | |
[0,60] | 45 | 差 |
[60,75] | 70 | 中 |
[75,85] | 80 | 良好 |
[85,100] | 90 | 优秀 |
小于0 | 1 | 给出错误提示 |
大于100 | 101 | 给出错误提示 |
空数据 |
| 给出错误提示 |
字符串 | Aa | 给出错误提示 |
边界值法
长期测试经验表明:大量错误发生在输入或输出范围的边界上,而不是发生在输入或输入的范围内,因此,各种边界值设计测试用例,能取得良好的效果,与等价类划分法一起使用效果更好。
判定表驱动法
判定法是分析和表达较为复杂逻辑条件下状态和行为的有效工具
用它可以设计出完整的测试用例集合,将集合的问题的各种可能情况罗列出,使得测试内容变得简单明了而避免遗漏
因果图法
正交法
场景法:画出系统的基本流程图,正常:基本流 异常:备选流 用最少的用例覆盖基本流和备选流
7、测试流程
需求分析-写测试计划--测试用例编写-用例评审--搭建测试环境 ---执行测试用例--回归测试--编写测试报告
需求分析:了解和熟悉需求,对需求文档做静态测试,xmind绘制思维导图
测试计划:规定测试范围(模块和功能点),测试时间节点,测试任务的安排和分配,风险的评估
测试方案:测试分析的过程写到方案里,测试功能点的测试要点分析
测试用例:测试用例文档模板要素(编号、标题、所属模块、前置条件、操作步骤、预期结果、实际结果)测试用例方法
用例评审:开发、测试、业务部参与用例评审,覆盖是否全面
搭建测试环境:停止tomcat,把数据库的数据导进来,将应用程序包部署到web服务器对应目录,最后启动web服务器
执行测试用例:缺陷的管理流程、缺陷要素:编号、标题、所属模块、重现步骤、缺陷的严重等级、优先级、提交人、附件
回归测试:根据BUG进度,验证BUG和关闭BUG
写测试报告:用例执行情况的统计报表、缺陷分布的统计、软件质量评估