测试知识回顾

辗转几年过去了,学习都是日积月累的,抽时间复习一下基础知识。

一.什么是软件测试。

1.发现缺陷 2.节约成本,减少风险。3.以用户需求为基准

二.6大特性

1.功能性2.效率性 3.可移植性4.可维护性5.可靠性 6.易用性

功能性:1.适应性2.准确性3.互操作性4.保密安全性5.依从性

可靠性:1.成熟性2.容错性3.易恢复性4.依从性

易用性:1.易理解性2.易学性3.易操作性4.依从性

效率性:1.时间特性2.资源利用性3.依从性

可维护性:1.易分析性2.易改性3.稳定性4.易测试性5.依从性

可移值性:1.适应性2.易安装性3.共存4.易替代性

三,黑盒测试方法

1.等价类 2边界值3.判定表4.正交实验5.因果图6.异常分析7.错误猜测法 8,场景法

四,测试执行

单元测试-ut测试 一个测试用例的测试执行

集成测试-it测试 一个测试用例集的测试执行

系统测试-st执行:不同测试测试阶段的测试执行

五,回测测试目的

验证缺陷是否修复和增加部分是否正确,检查代码的修改是否引入新的错误。

六.软件测试工作

检视代码,评审开发文档;
进行测试设计,写作测试文档(测试计划、测试方案、测试用例等);
执行测试,发现软件缺陷,提交缺陷报告,并确认缺陷最终得到了修复;
通过测试度量软件的质量;

七。常见引入缺陷的原因

1.开发过程缺乏有效的沟通,或者没有进行沟通;(表达不正确、以致理解不正确、以致设计不正确)
2.软件复杂度越来越高;
3.编程中产生错误;(语法错误、语义错误等)
4.需求不断变更;(项目失败的最大杀手,会引起重新设计,工程重新安排等)
5.项目进度的压力;(为了抢占市场,必须比竞争对手早一步把产品提供出来,于是不合理的进度安排就产生了,不断的加班加点最终导致大量错误的产生。另一个方面,由于软件项目的时间安排是最难的,通常是需要很多猜测的工作,因此当最后期限来临的时候,错误也就伴随发生了)
6.不重视开发文档;(当团队中一员离开,对于新进来的员工说,去读懂和维护一个没有文档的代码是很难的)
7.软件开发工具本身隐藏的问题;(尽量选择比较成熟的产品)
8.人员自大。

八。常见软件生产流程

(软件的生命周期,Software Lifecycle Model,9个阶段):市场调研→→可行性研究→→产品立项→→需求调研→→设计开发→→系统测试→→产品发布→→产品维护→→产品升级。
问题定义→可行性研究→需求分析(功能建模、数据建模)→概要设计→详细设计→编码→测试→维护
1.计划(Planning):(1)确定软件开发总目标;(2)给出软件的功能、性能、可靠性以及接口等方面的设想;(3)研究完成该项目的可行性,探讨问题解决方案;(4)对可供开发使用的资源、成本、可取得的效益和开发进度做出估计;(5)制定完成开发任务的实施计划。
2.需求分析(Requirement Analysis):对开发的软件进行详细的定义,由需求分析人员和用户共同讨论决定,哪些需求是可以满足的,并且给予确切的描述,写出软件需求说明书SRS。(针对产品的软件研发,需求来源于市场调研,特点是自己想研发什么,自己就来研发;针对项目的软件研发,需求来源于客户要求,特点是别人想研发什么,我们帮着研发。项目型软件:特定客户针对某个特定软件产品指定供应商,软件知识产权归客户所有;产品型软件:特定软件针对某个特定群体开发的通用型软件产品,软件知识产权归软件开发商所有。)
3.设计(Design,概要设计与详细设计):是软件工程的技术核心,这个阶段需要完成设计说明书。
概要设计(HLD):在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;
详细设计(LLD):对每个模块要完成的工作进行具体的描述。
4.程序编码(Coding):把软件设计转换成计算机可以接受的程序,即写成以某个程序设计语言表示的源程序清单。
5.测试(Testing):检验软件是否符合客户需求,达到质量要求,一般由独立的小组执行,测试工作分为:单元测试(对每一个函数进行测试)、集成测试(对函数与函数的集成,即函数间、模块与模块的集成,即模块间、子系统与子系统的集成,即系统间,进行测试)、系统测试(对每一个功能需求、性能需求等进行测试)。
6.运行和维护(Run and Maintenance):将软件交付用户投入正式使用,以后便进入维护阶段,可能有多种原因需要对它进行修改,如软件错误、系统软件升级、增强软件功能、提高性能等。

猜你喜欢

转载自www.cnblogs.com/sh123/p/11960599.html