一、为什么要进行软件测试
- 软件的非正常运行或其自身的缺陷(BUG)会引发很多问题;
- 软件是由代码和文档组成的,而这些都是由人来设计和编写的,只要是人都可能会犯错;
- 环境也会影响软件,以致出现软件"失效"现象;
- 软件测试活动贯穿整个软件开发生命周期,是关键的质量保证活动之一;
只要是软件,就会有BUG,而我们就需要找BUG;
实例一: ATM取款机(功能性错误)
例如账户余额10000元,在ATOM机上取出2000元,查询账户余额7900元,这明显是银行的软件系统出现故障,将你的账户的多扣了100元,这就是一个严重的BUG。
实例二: 证券公司的系统瘫痪(性能错误)
2007年1月,招商证券的客户发现,在公司网站竟然无法登陆,一部分客户转向电话服务寻求帮组,却发现电话线路出现同样的阻塞。与此同时发现网络拥堵的不只是招商证券。1月15日至16日,申银万国的网络客户也发现,自己根本无法进行交易。当天申银万国解释称,网上交易系统拥堵是由于交易量激增,原系统容量不足引起的。
二、软件测试的发展史
- 70年代以前,主要以调试为主,也不完全叫测试;
- 70年代~80年代中期,测试基础理论以及技术的形成,测试作为软件质量保证(QA)的主要职能;
- 80年代后期~90年代中期,随着测试的发展,慢慢的与QA分离(注重于过程和质量的监督),开始关注工具对测试的影响;
- 90年代以后~至今,随着质量体系的完善,测试开始关注过程管理对软件测试的重要性,慢慢形成各种测试模型、测试能力成熟度模型;
三、软件测试的定义
使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件测试的目的: 尽可能早的发现并改正被测软件中的缺陷(BUG),提高软件质量。
四、什么是测试
- 制造业的定义: 以质检产品是否满足需求为目标;
- 软件行业的定义:
验证软件的正确性(证实);
发现软件中的缺陷(证伪);
证实: 自研公司、小公司、互联网行业;[证明软件是可用的即可]
证伪: 银行,电信,移动;[证明软件是存在错误,找出来解决]
QC: 质量检测
QA: 质量保证
五、软件的生命周期
软件生命周期: 计划阶段、需求分析、设计阶段、编码、测试、运行与维护;
![](https://i-blog.csdnimg.cn/blog_migrate/a583ed33d4ee56e674a39418078160d2.png)
软件生命周期
- 计划阶段
a、确定软件开发总目标;
b、给出软件的功能、性能、可靠性以及接口等方面的设想;
c、研究完成该项目的可行性,探讨问题解决方案;
d、对可供开发使用的资源、成本、可取得的效益和开发进度做出估计;
e、制定完成开发任务的实施计划;
例如(计算器之计划阶段):
a、研发一个计算器;
b、支持加减乘除,所有运算都需要在一定时间之内完成;
c、该项目目前不存在任何技术障碍;
d、需要3个月之内完成所有开发和测试工作,并推向市场;
e、具体计划参见一级计划;
- 需求分析
a、功能需求;
b、性能需求;
c、软件需求分析说明书SRS;
例如(计算器之需求分析):
a、功能需求
十进制加减乘除;
八进制加减乘除;
二进制加减乘除;
十六进制加减乘除;
b、性能需求
32位十进制加法需在2秒内完成;
16位十六进制乘法需在10秒内完成;
- 设计阶段(核心)
a、概要设计(HLD):在设计阶段把各项需求转换成相应的体系结构,每一部分是功能明确的模块;
b、详细设计(LLD):对每个模块要完成的工作进行具体的描述&