在软件开发的一系列活动中,为了保证软件的可靠性,人们研究并使用了很多方法进行分析、设计及编码实现。但是由于软件产品本身无形态,它是复杂的、知识高度密集的逻辑产品,其中不可能没有错误。生产产品在出厂前都要进行严格的检验,软件产品也不例外。软件开发总伴随着软件后来那个保障的活动,而软件测试的主要活动之一。软件测试代表了需求分析、设计和编码的最终复审。
软件测试目的:
为了发现错误而执行程序的过程
一个好的测试用例能够发现至今尚未发现的错误。
一个成功的测试是发现了至今尚未发现的错误的测试
软件测试的原则:
1)测试用例应由输入数据和预期的输出数据两部分组成。做到有的放矢
2)测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。
3)除了检查程序是否做了他应该做的事,还应检查程序是否做了他不应该做的事。
4)应制定测试计划并严格执行,排除随意性。
5)长期保留测试用例。
6)对发现错误较多的程序段,应进行更深入的测试。
7)程序员避免测试自己的程序。
测试方法:
1.静态测试
2动态测试
1)黑盒法(功能测试/数据驱动测试)
测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,一句需求说明书,检查程序是否满足功能需求。
主要发现以下错误:是否有不正确或遗漏的功能
在接口上,能否正确的接受输入数据,能否产生正确的输出信息。
访问外部信息是否有错
性能上是否满足要求。
2)白盒法
把测试对象看成一个打开的盒子,测试人员须了解序的内部结构和处理过程,以检查处理过程的细节为基础,对程序汇总尽可能多的逻辑路径进行测试,检查内部控制结构和数据结构是否有错,实际的运行状态和预期的状态是否一致。
软件测试过程:
软件测试步骤:
软件测试与软件开发过程的关系:
调试
调试是在成功的测试之后才开始的工作
调试的目的是确定错误的原因和位置,并改正错误,因此调试也称之为纠错。
调试技术:
1简单调试方法
1)在程序中插入打印语句
2)运行部分程序
3)借助于调试工具
2.归纳法调试
收集有关数据
组织数据
提出假设
证明假设
3.演绎法调试
1)列出所有可能的错误的原因的假设
2)排除不适当的假设
3)精化余下的假设
4)证明余下的假设
4.回溯法调试