静态测试--评审需求文档\测试用例
- 静态测试(又称静态分析技术)指不运行程序,对程序和文档进行分析与检查。(需求规格说明书、设计文档、程序源代码等进行审查)。
- 静态测试是指被测试程序不在计算机上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行测试。对需求规格说明书、软件设计说明书、源程序做检查和审阅。包括:
1.是否符合标准和规范;
2.通过结构分析、流图分析、符号执行指出软件缺陷。
- 程序的静态测试是在不执行程序的条件下,有条理地仔细审查软件设计、体系结构和代码,从而找出软件错误的过程。静态测试的重要方法有同行审查、代码会审、代码走查等,这些审查方法有四个基本要素:
1.查找问题
审查的目的是找出软件的问题,所有批评应该直接针对代码,而不是编写代码的人。
2.遵守规则
审查需要遵守一套固定的规则,包括可能会设定所审查的代码量、所花的时间、哪些内容要做备注等。
3.审查准备
每一个合作者都要为审查做准备,审查过程中找出的问题大部分是在准备期间发现的,而不是实际的审查期间。
4.编写报告
审查小组必须做出总结审查结果的书面报告,并将审查会议结果尽快通知。
代码走查(走读)
- 开发人眼之间互相阅读代码,检查其编写正确与否;
- 只有理解了源代码才可以完成单元测试,或者说快速理解源代码是完成单元测试的前提;
- 代码走读发现的问题比单元测试发现的更多、更快和更早;
- 单元测试发现不了不满足编程规范的问题。
文档评审类型
文档评审包括:
- 1.需求文档的评审
- 2.设计文档的评审
- 3.测试文档的评审:测试计划、测试用例、包报告
- 4.用户手册的评审
需求评审实践
需求:系统中有一个日期输入框,根据实际业务,有下列需求:
1.要求用户输入以年月表示的日期;
2.日期限定在1990年01月~2049年12月;
3.日期由6位数字字符组成,比如201407;
4.前4位表示年;
5.后两位表示月
动态测试:手工、自动化
动态测试是指通过人工或者使用工具运行程序进行检查、分析程序的执行状态和程序的输出。
白盒测试、灰盒测试、黑盒测试都属于动态测试。
动态测试通过运行程序来发现错误。一般意义上的测试大多是指动态测试。任何工程产品都可以使用以下的两种方法之一进行测试:
1.已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
2.已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。前者就是黑盒测试,后者就是白盒测试。对软件产品进行动态测试时用黑盒测试和白盒测试。
黑盒测试
黑盒测试通过软件的外部表现来发现其缺陷和错误。
黑盒测试把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,只在软件接口处进行测试,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。测试人员完全不考虑程序内部的逻辑结构和内部特性,因此黑盒测试又叫做功能测试或数据驱动测试。
黑盒测试是在程序界面进行测试,它只是检查程序是否按照需求规格说明书的规定正确实现。
如果软件需求本身有问题或规格说明书有误,用黑盒测试方法是很难发现的。
灰盒测试
灰盒测试介于白盒测试与黑盒测试之间的测试。
灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表整性的现象、事件、标志来判断内部的运行状态。
灰盒测试结合了白盒测试和黑盒测试的要素;
接口测试(数据-格式-认证)、集成测试。
系统测试
- 系统测试,英文是System Testing.是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试。
- 系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方法。
- 基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
- 系统测试类型包括:功能测试、性能测试、健壮性测试、安全性测试、压力测试、可靠性测试-容灾、恢复、容错
功能测试
- 对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。功能测试依据是《需求规格说明书》。
- 功能测试基本方法
- 构造正常/异常输入检查输出是否与期望的相同。如果两者不一致,即表明功能有误。
- 功能测试难点在于正确的理解用户需求和如何构造有效的测试数据。
性能测试
- 测试软件处理业务的速度;
- 检验性能是否符合需求;
- 得到某些性能数据供人们参考(例如用于宣传)。
健壮性测试
- 健壮性是指在异常情况下,软件还能正常运行的能力。
- 健壮性有两层含义:一是容错能力,而是恢复能力。
- 容错能力
容错性测试通常构造一些不合理额输入来引发软件出错例如:
- 输入错误的数据类型;
- 输入定义域之外的数值;
- 测试客户机-服务器模式的软件时,把网络线拔掉,造成通信异常中断等。
2. 恢复能力
恢复测试重点考察以下几项:
- 系统能否重新运行;
- 有无重要的数据丢失;
- 是否毁坏了其它相关的软件硬件。
安全性测试
- 是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。
- 信息安全性测试有如下步骤:
- 为非法入侵设立目标,例如“盗窃某个文件”或“更改数据库记录”等。
- 邀请(或悬赏)一些人扮演黑客,让他们想尽办法入侵系统,实现“目标”。
- 如果有人成功了,请他详述入侵的过程。
压力测试
- 压力测试也叫负荷测试,即获取系统能正常运行的极限状态。了解“极限”是很有价值的。例如潜艇下潜极限深度。
- 测试时间很短,一般不超过两个小时。
可靠性测试
- 可靠性是指在一定的环境下,在给定的时间内、系统不发生故障的概率。由于软件不像硬件那样可以“加速老化”,按此定义,软件可靠性测试可能会花费很长时间。
测试工程师分类
系统测试工程师
性能测试工程师
自动化测试工程师
测试开发工程师
产品需求规格说明书----产品经理写的
测试计划是和开发计划是同步的 ,之间没有关系。
产品需求规格说明书,没有严格的格式要求,主要就是让别人看的懂
需求说明书评审复杂吗?不复杂。
评审的目的;
1.找问题
1.1项目定义
1.2软件模块
1.3软件运行环境
1.4功能摘要
1.5关键词解释
4.1典型用户场景
Q1:请问你们公司在软件出现质量比较差的情况下,你们测试组会做哪些响应的策略?
A1:1.尽可能的情况下安排人员协助开发做冒烟测试。2.评估加班(的作用是有限的。)3.是否可以抽调人员。4.修改测试计划,推迟发布。