软件测试--入门篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zimingzim/article/details/81585873

本文介绍下软件测试的基本入门知识,以使大家对软件测试行业有一个大概的了解。

主要分三部分介绍:软件测试综述、软件测试基本知识、软件测试发展。

第一部分:软件测试综述

1、基本概念--软件产品

一、软件产品是什么?

软件产品包括:客户需求、产品说明书、进度表、软件设计文档、测试文档等。

二、软件产品由哪些组成?

软件产品组成:用户手册、包装、产品信息、软件、售后信息、图标和标志、错误提示信息等。

三、软件项目成员有哪些?

软件项目成员:项目经理、架构师、开发人员、测试人员、文档编写人员、配置管理员等。

四、软件开发生命周期模式?

软件开发生命周期:大爆炸模式,边写边改模式,瀑布模式,螺旋模式,敏捷开发。

2、基本概念--软件测试

一、软件测试是什么?

IEEE与1983年准确定义了软件测试;软件测试是使用人工或者自动手段来运行或测定某个系统的过程,检验它是否满足规定的需求或是弄清楚预期结果与实际结果之间的差别;

二、软件缺陷是什么?

软件缺陷:1、软件未实现产品说明书要求的功能;2、软件出现了产品说明书中指明不应该出现的错误;3、软件实现了产品说明书中未提到的功能;4、软件未实现产品说明书虽未明确提及但应该实现的目标;5、软件难以理解、不易使用、运行缓慢等;

三、为什么会出现软件缺陷? 

任何软件都不是完美的,由于各种原因,一定会出现缺陷。

四、出现软件缺陷的最大原因是什么? 

软件缺陷最大的原因是说明书,其次是设计,再其次是编码,最后是其他;

五、软件缺陷的修复费用和成本?

软件缺陷修复费用是随着时间的推移而增加的。

六、软件测试人员应该怎么做?

软件测试人员的目标是尽可能早地找出软件缺陷,并确保其得以修复。

七、软件测试人员应该具备的素质?

具备素质:探索者?故障排查员?不放过任何蛛丝马迹?创造性?追求完美?判断准确?注重策略及外交?善于说服?很有趣。

3、软件测试原则

原则1、测试用例中的一个必要部分是对预期输出或结果的定义;

测试用例包括两部分:对程序输入数据的描述;对程序在上述输入数据下的正确输出结果的精确描述。

原则2、程序员应当避免自己测试自己编写的程序;

其他人测试会更加有效。

原则3、编写软件的测试组织不应当测试自己编写的软件;

类比第二点,人是有检视缺陷的,不能发现自己的问题。

原则4、应当彻底检查每个测试的执行结果;

后续测试中发现的错误,往往是前面测试遗漏的。

原则5、测试用例的编写不仅应当根据有效和预期的输入情况,而且也应当根据无效和未预料的输入情况;

测试用例编写应当考虑有效和无效两种。

原则6、检查程序是否未做其应该做的仅是测试的一半,测试的另一半是检查程序是否做了其不应该做的;

与第五点类似,考虑问题要从两方面入手,正如有黑就有白,有白就有黑一样。

原则7、应避免测试用例用后即放弃;

因为我们需要回归测试。

原则8、计划测试工作时不应该默许假定不会发生错误;

测试是为了发现错误而执行程序的过程。

原则9、程序某部分存在更多错误的可能性,与该部分已发现错误的数量成正比;

因为错误总是倾向于聚集存在。

原则10、软件测试是一项极富创造性、极具智力挑战性的工作;

总的来说,测试的创造性可能大于开发。

4、软件测试本质

每个测试人的心中,都住着“理想”,但是我们一定要面对现实。

现实:完全测试程序不可能;找到最优测试量,进行刚刚好的测试;测试无法显示潜伏的软件缺陷;找到缺陷越多,说明软件缺陷越多;杀虫剂怪事,必须不断编写新的不同的测试程序;并非所有缺陷都需要修复;测试缺陷难以说清,软件中存在问题,但没人发现;产品说明书从没有最终版本;测试员在产品小组中不受欢迎;软件测试是讲究技术条理的专业;

第二部分:软件测试基本知识

知识1:测试分类

静态测试是指测试不运行的部分—只是检查和审核;动态测试是指通常意义上的测试—使用和运行软件;静态黑盒测试指测试产品说明书、指导手册、安装部署手册等;静态白盒测试是指代码检查、走查和评审,研究表明通常30-70%的已知错误可以发现;

知识2:测试用例(黑盒)

1、等价类:两个词,一是等价,一是类;还包括有效等价类和无效等价类两种情况;考虑输入;

2、边界值:两个词,一是边界,一是值;考虑输入和输出;边界值发现错误的回报率超高;

3、因果图:输入组合进行分析;因果图、判定表驱动法、正交实验法都比较类似。可以采用PICT工具来自动生成;

4、错误推断:基于经验和直觉来编写测试用例;

知识2:测试用例(白盒)

1、语句覆盖准则基本上没啥用,比较强的逻辑覆盖准则是判定覆盖或者条件覆盖;通常判定覆盖可以满足语句覆盖;语句覆盖<判定覆盖<条件覆盖;

2、循环覆盖来说,完全的路径测试并不符合实际;

知识3:产品说明/需求分析等

软件的需求是龙头,软件缺陷的最大根源也是需求,需求的分析能力是必备知识,也是测试人员的重要价值体现。

知识4:测试阶段

常见的测试阶段是单元测试、集成测试、系统测试、用户测试四个阶段。

单元测试:针对每个单元的测试, 以确保每个模块能正常工作为目标。

集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。

系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。

用户测试:检验软件产品质量的最后一道工序;主要突出用户的作用,同时软件开发人员也应有一定程度的参与。

知识5:系统测试

功能测试:目标功能是否实现;

性能测试:程序的相应时间、处理速度、吞吐量、延时等指标;

可靠性测试:各种异常测试;

可用性测试:用户使用软件时交互的问题;

稳定性测试:长时间、高强度、大规模运行;

安全性测试:试图攻破程序的安全防线;

安装升级测试:所有的平台安装部署;

配置测试:相关配置上运行;硬件配置;

可维护性测试:数据处理和日志机制,以备技术支持和调试所需;

兼容性测试:新版本能否兼容老版本,软件兼容;

容量测试:大容量数据时的程序异常;

存储测试:正确处理存储的要求;

可恢复性测试:恢复相关功能是否按照要求实现;文档测试:用户的所有相关文档;

过程测试:流程评估和确定;

知识拓展5-1:配置测试

检查软件在其设计运行和连接的硬件上正常工作,配置测试的工作量可能非常巨大;

知识拓展5-2:兼容性测试

检查软件是否能够与其它软件正确协作,兼容性测试的工作量可能非常巨大;

知识拓展5-3:可用性/用户体验测试

易用性是交互的适应性、功能性和有效性的集中体现;80年代初期,已经开始从事基于用户的软件测试;目前国内大部分还是以应用和模仿为主,还没有系统性的相关理论出现。

知识拓展5-4:安全性测试

安全测试属于专项测试,是要求较高的测试领域,一般公司涉及的少,除非是专业安全类公司,或大型的公司。

知识6:测试工具

测试工具是提升测试工作效率的关键。市面上常见的测试工具非常多,在这里不一一介绍。

如下是网络设备测试可能经常用到的相关工具:

持续集成:jenklins,开源软件,使软件的持续集成变成可能;

自动化测试:一般都是自有开发平台,主要做版本验证及回归测试;

缺陷管理:HP的QC;

测试管理及数据归档:SVN;

网络仪表:IXIA,思博伦;

后台传文件:WINSCP;

截图软件:FS抓图工具;

补包工具:wireshark;

终端软件:SecureCrt、xshell等;

详细的测试工具请查看”开源中国“

http://www.oschina.net/project/tag/125/test-tools

第三部分:软件测试发展

1、测试与质量的关系

质量是免费的还是收费的?

高质量产品与低质量产品的代价那个高?

质量靠测试可以解决问题吗?

测试、开发、产品、运维、QA、销售等的角色划分是什么?

希望大家思考以上问题,并尝试着查找答案。

2、管理与组织架构

常见的有如下四种:左上是程序员和测试员由开发经理统一负责;右上是测试经理、项目经理、开发经理统一归执行经理负责,测试人员统一归测试经理负责;左下是测试经理和开发经理由项目经理统一负责,测试员则由测试经理负责;右下是测试经理、产品经理、开发经理统一归执行经理负责,测试人员统一归测试经理负责。在实际公司运营中,右下存在的形式更多一些,产品部、开发部、测试部是独立的二级部门,项目经理由各个二级部门内的人担任,他们的职责是只管事、不管人;我们称这种管理模式为”矩阵式管理“,项目组由不同二级部门的人组成,二级部门则负责人员的管理和培养,这种模式更便于人才的发展。

3、软件测试全景图

借用朱少民老师绘制的图,大家可以看出软件测试是一门极其综合和专业的学科。

4、软件质量体系

软件质量体系是非常大的一个话题,在此不做大的展开。想了解的话,需要先明白质量是什么和测试是什么,之后再往深处钻研。建议初学者以入门者以测试技术为主,待积累到一定程度后可以横向和纵向拓展。

5、能力拓展

根据自己的积累,给大家介绍下相关能力拓展的一些资源。我相信,只要你坚持一定的时间,定能有收获。可以利用零碎的时间,每天都进步一点点,坚持下来,不断思考及实践,就会有长足的进步。

网站类:

51Test软件测试论坛:http://bbs.51testing.com/forum.php

朱少民老师博客:http://blog.csdn.net/kerryzhu

开源中国社区:http://www.oschina.net/

测试社区:https://testerhome.com/

书籍类

软件测试;软件测试的艺术;测试架构师修炼之道;软件测试价值提升之路;Google软件测试之道;微软软件测试之道;探索式软件测试;完美软件:缺陷预防最佳实践;全程软件测试;大话APP测试;Selenium WebDriver实战宝典;……

自媒体

微信、知乎、博客、论坛、极客时间等;

微信公众号:光荣之路;GitChit;软件测试培训;大话IT公司;管理智慧;……

测试个人微信号:顾祥:xianggu0625;刘珅梅:meizi0103;石头哥:shitou2075;吴晓华:fosterwu;……

猜你喜欢

转载自blog.csdn.net/zimingzim/article/details/81585873