典型的测试步骤:
1、 计划:确定目标,确定测试策略,测试方法
2、 执行:建立测试环境,按测试计划执行
3、 检查:一步步验证,是否执行完毕
4、 循环:如果没有改正,继续执行
测试职责:
1、 验证在整个软件开发周期中,各个阶段的软件质量是否合格
2、 验证最终交付给客户的软件系统是否是客户想要的,满足需求的
3、 通过样本测试数据,检查软件系统运行过程中的情况
应对可能产生的风险策略
1、 我们没办法完全消除风险,但是可以降低风险的发生
2、 降低风险的发生最有效的方法就是进行针对性的测试
因测试原因而导致的风险:
1、 测试目标定义错误,如涉及用户群,性能要求等
2、 在开发阶段中,选择了错误的测试接入时间点,应从需求分析是就介入
3、 选择了效率低下的测试工具
4、 测试人员专业性不够,工作效率低
5、 测试计划不够详细,测试随意性大
6、 测试人员与开发人员沟通不畅
传统的软件开发周期分为:需求,设计,编码,测试,系统维护
测试不应局限在软件开发周期的单一阶段,大量的系统问题都产生在软件开发前期
越早介入测试越有效,投入产出越高
需求阶段:确定验证步骤,对需求进行评审,产生功能性测试用例,确定需求一致性
设计阶段:确定设计信息是否足够,准备结构和功能的测试用例,确定设计与需求之间的联系
编码阶段:为单元测试准备结构和功能的测试用例,进行足够的单元测试,确定拥有执行的足够条件,确定和设计之间的联系
测试阶段:测试应用系统,着重点在于测试功能项,确定设计了足够的测试用例
安装阶段:为测试过的系统进行产品化的工作
维护阶段:修改缺陷并重新测试
测试策略:必须在测试策略中标明可能存在的风险,这样在测试后的系统中可以有效的降低被标明风险的发生
测试要素(测试策略一般在下面产生-多数选择3-7个):
正确性、文件完整性、授权、进程追踪,系统运行的连续性,服务水平、权限控制,一致性、可靠性、易用性、可维护性、可移植性、耦合性、性能、操作性
缺陷的定义是:与需求规格说明书不一样的地方
静态检查:确保系统按照组织的标准和过程运行,依赖于评审和非运行手段来检查
动态检查:在生命周期中进行测试(运行)
静态测试:在不运行程序的情况下检查程序的运行情况,需求评审,设计评审,代码走查,代码检查
动态测试:运行程序代码:单元测试、集成测试、系统测试、验收测试、回归测试
功能测试:测试功能需求
结构测试(白盒测试):验证系统架构,以系统内部结构和相关知识为基础进行测试
黑盒测试:在不了解系统结构的情况下,以说明书为基础进行测试
单元测试:单元测试(一个单元:是一段源代码它不包括任何被调用的子路径或函数)是在最低水准要求下所使用的一种测试覆盖工具;如一个极小、充分的测试应能确保在测试中每一源代码均被执行至少一次,大多数测试情况,测试保证分支(每个分支测试包括:TRUE 、FALSE)和断言测试。单元测试被用来发现单元BUG,这种BUG发生频率是比较高的
集成测试:测试两个正确的部分的接口是否兼容,集成测试BUG往往在单元测试BUG之后,并且集成项目软件是最容易发生问题的
系统测试:测试一个完整的软件系统,全程发现系统的普通BUGS:例如资源丢失,同步和时序问题,共享文件冲突等
需求测试:用户角度的测试,一般的,全过程逐一校验每一个特性的可操作性
回归测试:重新把以前测试过的再测一遍,保证当前版本除了我们明确知道改过的内容外,其他地方均与之前版本完全相同
典型的缺陷类型:需求解释有错误、用户定义错了需求、需求记录错误、设计说明有误、编码说明有误、程序代码错误、数据输入有误、测试错误、问题修改不争取、正确的结果是由其他缺陷产生的
测试技巧分类:
结构测试相对功能测试、动态测试相对于静态测试、手工测试相对于自动测试
结构测试技巧:压力测试(模拟实际用户环境)、执行测试、恢复测试(当出现文件丢失时,系统是否有能力恢复操作)、操作测试、复合性测试(代码互查)、安全测试(当被保护资源对于组织有重要价值的时候)
功能测试技巧:需求测试(用户需求可以被实现)、回归测试(程序修改后,保证功能的正确性)、错误处理测试(所有可能的错误条件均被验证)、用户手册测试(检验过程文档化)、系统兼容性测试、控制性测试、并行测试(新老版本同时运行,确保新版本程序运行正确)
性能测试技巧:确定系统达到了希望的性能水平,例如单位时间内处理的信息量