软件测试基础

​​​​​​​1.什么是软件测试?

软件测试是软件整个开发周期中的一个重要阶段/过程,检验软件是否与期待的需求保持一致,进而提高用户体验和满意度。

2.为什么要软件测试?

1)节省成本。

如果软件研发阶段没有软件测试这个过程,一旦产品在最终用户使用时出现bug/缺陷,修复成本会非常大。比如汽车召回事件,一旦出现问题,不但要重新进行问题修复,对公司影响也很大,直接影响经济损失。

2)产品质量。

人人都喜欢质量过硬的产品。而产品的功能,性能,安全等都来源于产品研发阶段的需求,即产品要实现什么功能,达到什么目的。那如何检验是否满足这些需求呢?答案就是软件测试。

3)提高用户满意度。

产品的功能和性能的好坏,一般不是产品经理说了算,也不是测试人员说了算,而是产品的最终用户。如果软件交付客户前,如果没有测试或测试不足,那因软件出现在客户面前的概率会非常非常大,用户不满意,自然不愿意为产品买单。

3.软件测试的类型有哪些?

1)功能性测试

2)非功能性测试,如性能测试

3)回归测试

一般地,功能性测试或回归测试,多为手动测试为主。而自动化测试工具和技术的出现,渐渐地

代替了一部分手动测试,加快了产品的交付速度。

4.软件测试的基本原则?

1)穷尽测试是不可能的。

2)测试过的产品/软件,是完全没有问题的。这个说法是不正确的。

3)测试要尽早介入。会降低成本。

4)缺陷的群集效应。20%的功能模块中,可能含有80%的软件bug。

5)杀虫剂效应。说白了就是产生耐药性了。

测试用例不断重复执行,发现bug的概率会很小,这就是杀虫剂效应。

此时换个角度,考虑变化测试数据,修改测试用例,或增加新的测试用例。可能会发现更多的bug。自动化测试的用例一般属于杀虫剂效应,因为自动化测试用例一般用于回归测试,改动可能性相对较小。

6)测试环境对测试结果影响非常大。

一般对于一个产品,主要有三个环境(不同公司,个数和环境目的有差别),分别为开发环境,测试环境,生产环境。开发环境和测试环境应尽量模拟生产环境,让测试的场景满足生产环境的场景。保证了一致性/前提条件下,才能方便分析问题和解决问题。

5. 软件测试生命周期

1)需求分析。

测试人员,根据需求规格说明书(需求文档),自己理解需求,必要时与System Analyse/ Developer 进行(Question/Answer)的口头/书面的需求确认。

2)测试计划作成。

一般测试主管/高级测试人员,实行测试计划的作成。测试计划包括:测试的里程碑/重要时间节点,测试人员,测试策略,测试工具/方法的选取,测试成果物评审机制,测试缺陷和测试流程等。

3)测试用例作成。

依据需求文档,开发测试用例。测试用例中,描述了测试条件,测试步骤,期待的测试结果等。工具,国内如“禅道”,国外如HP公司收费的QC工具、开源的TestLink工具,IBM的RTC工具等。如果需要自动化测试,则需要写脚本。AutoIt可用于PC Desktop,Selenium可用于PC Web,Appium可用于手机Mobile。

4)环境搭建/测试准备。

测试环境的搭建是测试执行的基础,测试需要准备环境及环境的依赖,保证测试过程顺利进行。

5)测试执行。

根据测试用例中步骤,执行。如果发现实际结果和期待结果不一致,提交bug 报告。有的企业用bug管理系统如Jira,Mantis。有的用Excel进行管理。

6)测试交付

判断测试覆盖率(需求是否都测试到了),缺陷解决情况,编写测试报告,召开总结会等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值