第1个回答 2021-02-20
测试人员的首要职责在我们平常人看来就是“找Bug”,他们需要使用各种测试技术和工具来测试和发现软件中存在的缺陷,从而让开发者更好的优化产品,让用户更加安全顺畅的使用。
具体点包括:
1、根据软件设计需求制定测试计划,测试数据和测试用例。
通过测试计划来确定测试产品所需资源,确定测试策略、测试系统、测试任务,评估和确定测试工作量。测试数据和用例是对产品进行任务描述,通过测试需求分析、业务流程分析、测试用例设计、测试用例评审以及测试用例更新及完善这几个步骤完成测试用例的设计。
2、搭建测试环境、执行测试用例。
测试用例执行的第一步就是要先搭建软件测试环境,要给出软件的安装指导书、运行的软硬件环境、以及相关的配置等等。测试执行中,要全方位观察软件产品的问题,以及确认是否和预期测试用例结果是一致的。
3、提交测试报告。
在测试完成后,测试人员需要根据测试结果对发现的问题和缺陷进行分析,包括缺陷率、缺陷分布、缺陷修复趋势等。给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。测试报告是测试阶段最后的文档产出物。优秀的测试经理或测试人员应该具备良好的文档编写能力,一份详细的测试报告包含足够的信息,包括产品质量和测试过程的评价,测试报告基于测试中的数据采集以及对最终的测试结果分析。
4、跟踪Bug修改情况,不断测试完善产品。
5、产品的其他方面测试。
在单元测试基础上,将测试模块组装成系统,完成对产品的集成测试。以及对整个产品进行系统测试,找出需求规格等问题。可以过程中利用测试工具TestWriter对产品进行功能测试、还有一些性能及其它方面的测试,也可以选择正确的工具进行选择。
当然这还不算最后的完结工作,因为软件测试是贯穿于整个软件生命周期的,所以还需要对线上功能检查、当前版本问题反馈以及改进建议等,这样才算是比较完整的一个最终结束。
第2个回答 2019-11-21
软件测试主要工作内容,包括两个方面验证(verification)和确认(validation)。
验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件以正确的方式来做了这个事件。
1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程。
2.程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。
3.评审、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。
确认(validation)是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。
1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。
2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
其实,软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。
第3个回答 2017-08-09
不论是对软件的模块还是整个系统,总有共同的内容要测试,如正确性测试,容错性测试,性能与效率测试,易用性测试,文档测试等。“白盒测试”是指开发人员从程序内部对上述内容进行测试,而“黑盒测试”是指独立的测试人员从程序外部对上述内容进行测试。
1 正确性测试
正确性测试又称功能测试,它检查软件的功能是否符合规格说明。由于正确性是软件最重要的质量因素,所以其测试也最重要。
基本的方法是构造一些合理输入,检查是否得到期望的输出。这是一种枚举方法。倘若枚举空间是无限的,那可惨了,还不如回家种土豆有盼头。测试人员一定要设法减少枚举的次数,否则没好日子过。关键在于寻找等价区间,因为在等价区间中,只需用任意值测试一次即可。等价区间的概念可表述如下:
记(A, B)是命题f(x) 的一个等价区间,在(A, B)中任意取x1进行测试。
如果f (x1) 错误,那么f (x) 在整个(A, B)区间都将出错。
如果f (x1) 正确,那么f (x) 在整个(A, B)区间都将正确。
上述测试方法称为等价测试,来源于人们的直觉与经验,可令测试事半功倍。
还有一种有效的测试方法是边界值测试。即采用定义域或者等价区间的边界值进行测试。因为程序员容易疏忽边界情况,程序也“喜欢”在边界值处出错。
例如测试 的一段程序。凭直觉等价区间应是(0, 1)和(1, +∞)。可取x=0.5以及x=2.0进行等价测试。再取 x=0以及x=1进行边界值测试。
有一些复杂的程序,我们难以凭直觉与经验找到等价区间和边界值,这时枚举测试就相当有难度。
在用“白盒测试”方式进行正确性测试时,有个额外的好处:如果测试发现了错误,测试者(开发人员)马上就能修改错误。越早改正错误,付出的代价就越低。所以大多数软件公司要求程序员在写完程序时,马上执行基于单步跟踪的“白盒测试”。
2 容错性测试
容错性测试是检查软件在异常条件下的行为。容错性好的软件能确保系统不发生无法意料的事故。
比较温柔的容错性测试通常构造一些不合理的输入来引诱软件出错,例如:
(1)输入错误的数据类型,如“猴”年“马”月。
(2)输入定义域之外的数值,上海人常说的“十三点”也算一种。
粗暴一些的容错性测试俗称“大猩猩”测试,除了不能拳打脚踢嘴咬,什么招术都可以使出来。这里我举不出例子,因为我没有对程序粗暴过,并且这辈子也不打算学会粗暴。
3 性能与效率测试
性能与效率测试主要是测试软件的运行速度和对资源的利用率。有时人们关心测试的“绝对值”,如数据送输速率是每秒多少比特。有时人们关心测试的“相对值”,如某个软件比另一个软件快多少倍。
在获取测试的“绝对值”时,我们要充分考虑并记录运行环境对测试的影响。例如计算机主频,总线结构和外部设备都可能影响软件的运行速度;若与多个计算机共享资源,软件运行可能慢得像蜗牛爬行。
在获取测试的“相对值”时,我们要确保被测试的几个软件运行于完全一致的环境中。硬件环境的一致性比较容易做到(用同一台计算机即可)。但软件环境的因素较多,除了操作系统,程序设计语言和编译系统对软件的性能也会产生较大的影响。如果是比较几个算法的性能,就要求编程语言和编译器也完全一致。
性能与效率测试中很重要的一项是极限测试,因为很多软件系统会在极限测试中崩溃。例如,连续不停地向服务器发请求,测试服务器是否会陷入死锁状态不能自拔;给程序输入特别大的数据,看看它是否吃得消。
4 易用性测试
易用性测试没有一个量化的指标,主观性较强。调查表明,当用户不理解软件中的某个特性时,大多数人首先会向同事、朋友请教。要是再不起作用,就向产品支持部门打电话。只有30%的用户会查阅用户手册。[Cusumano 1995]
一般认为,如果用户不翻阅手册就能使用软件,那么表明这个软件具有较好的易用性。
5 文档测试
文档测试主要检查文档的正确性、完备性和可理解性。好多人甚至不知道文档是软件的一个组成部分。
正确性是指不要把软件的功能和操作写错,也不允许文档内容前后矛盾。
完备性是指文档不可以“虎头蛇尾”,更不许漏掉关键内容。有些学生在证明数学题时,喜欢用“显然”两字蒙混过关。文档中很多内容对开发者可能是“显然”的,但对用户而言不见得都是“显然”的。
文档不可以写成散文、诗歌或者侦探、言情小说,要让大众用户看得懂,能理解。
很多程序员能编写出好程序,却写不出清晰的文档。不要说自己以前语文学得差,现在已没救了,找借口不是办法。没有人天生就能写出好程序,都是练出来的。同理,若第一次写不好文档,就多写几次文档,慢慢地就会写出好文档来。我上大学前不会说普通话,不会写作文,现在我极能说会写,当个秘书或书记已绰绰有余。
第4个回答 2020-06-28
一、需求评审
在整个团队拿到需求之后的第一件事是进行需求分析,看看要这个软件要实现哪些需求。需求分析的后一步就是需求评审了,这个环节需要软件测试工程师与产品需求人员、开发人员、QA人员共同进行参与,评审这些需求能不能够实现。
二、写测试计划
接下来在开发人员编写开发计划的同时,测试人员要写测试计划,就是哪些人要在什么时间做哪些测试工作,最后产出什么工作结果也就是提交哪些文档。
三、编写测试用例
测试用例就是指导测试工作进行的文档,比如要测试系统的登录功能、购买功能等,会通过测试方法和策略来设计测试用例。所以编写测试用例是软件测试工程师进行测试之外最重要的工作了。
四、用例评审
用例评审就是评价和审查测试方法和测试内容是否合理全面。不能只做基础的测试工作就可以,还得全面进行可能会出现各种各样错误的测试,尽可能把bug降到最低。
五、执行测试、提交bug
执行测试自然不必多说,就是测试工程师真刀真枪地进行测试工作,找出了bug之后会进行提交,让软件开发人员进行修改。
六、回归测试、编写测试总结报告
回归测试就是对开发人员改好bug的软件再次进行测试,看bug是否都已经修改好。待bug都修改好之后,测试人员要编写测试总结报告,阐述软件的质量如何,软件才可以上线发布。