1.软件测试基础理论
软件缺陷的定义
对于软件缺陷的精确定义,通常有下列描述:
软件出现了产品说明书指明不会出现的错误
软件未达到的《需求文档》中规定的功能
软件功能超出产品说明书指明范围
软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好
软件缺陷产生的原因
软件缺陷从哪来?第一大原因就是软件产品规格说明书,很多情况下,说明书没有写,或写的不够全面,经常更改,或者开发小组没有很好的沟通,造成对说明书理解的不一致。第二大原因是软件设计,没有做设计或设计不好,经常变动等和产品规格说明书一样的问题,第三个原因才是编写代码和其它原因;前两个原因至少占了 80%以上
通过大量的测试理论研究及测试实践经验的积累,典型的软件缺陷产生的原因被归纳为以下几种类型:
需求解释有错误;
用户需求定义错误;
需求记录错误;
设计说明有误;
编码说明有误;
程序代码有误;
测试错误;
问题修改不正确;
不正确的结果是由于其他的缺陷而产生。
软件测试和缺陷产生的代价
缺陷发现的越早,则修复这个缺陷的代价就越小,在需求、设计、编码、测试、发布等不同的阶段,发现缺陷后修复的代价都会比在前一个阶段修复的代价提高10倍
软件测试的定义
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
优秀的测试人员的基本素质
参与需求讨论,制订测试计划,确保测试能顺利执行并完成。
负责项目的功能性测试、用户体验测试、兼容性测试以及性能测试
负责测试用例的编写;编写测试报告和对测试结果分析,
与开发人员、产品经理沟通和协作,推动整个项目的顺利进行;
负责软件开发团队项目进度管理工作
熟悉Linux常用命令,熟悉常用数据库,熟练使用基本的SQL语句;
熟练使用Loadrunner,Jmeter等至少一种性能测试工具
测试环境
测试环境=硬件+软件+网络
硬件环境:笔记本,台式机,服务器
软件环境:不同的操作系统 windows10 windows8 windows7 Linux Mac,
不同浏览器firefox chrom
网络:局域网或是互联网
测试流程
立项------需求文档(需求人员)--------产品文档(说明书)------ 需求评审(开发,测试,项目经理,需求)-------开发设计(开发人员)-------测试用例(测试人员)-----测试用例评审(开发,测试,项目经理,需求)-----编码------部署(测试)---------冒烟测试---------bug(禅道)------回归测试------测试报告—上线(运维)
2.软件测试分类
黑盒测试和白盒测试
黑盒测试(Black Box -Test)指的是把被测试的软件看做一个黑盒子,我们不去关心盒子里边的结构是什么样子,只关心软件的输入数据和输出结果
有人把黑盒测试比作中医,通过“望闻问切”来判断是否有问题。
“望”:观察软件的行为是否正常。
“闻”:检查输出的结果是否正确。
“问”:输入各种信息,结合“望”,“闻”来观察软件的响应。
“切”:像中医一样给软件“把把脉”,敲击一下软件的某些“关节”
白盒测试(White Box Testing),指的是把盒子盖打开,去研究里边源代码和程序结构。
静态测试和动态测试
静态测试,是指不实际运行被测试软件,而只是静态的检查程序代码、界面或者文档中可能存在的错误的过程。
动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
功能测试和性能测试
功能测试
功能测试是黑盒测试的一部分,它检查实际软件的功能是否符合用户的需求。 功能测试可以细分逻辑功能测试,界面测试,易用性测试,安装测试和兼容性测试。
逻辑功能测试:测试应用是否符合逻辑,比如应该先注册账号之后,才能进行登录,登录之后才能看我的购物车
界面测试:窗口大小,按钮大小,点击按钮弹出什么样的提示框,是否有滚动条,下拉菜单是否有展示内容…
易用性测试:从软件使用的合理性和方便性等角度对软件系统进行检查,比如,软件窗口长宽比例是否合适,颜色色彩是否赏心悦目,字体大小是否合适
安装测试: