软件测试与代码安全详解

前言

本人学习软件测试收获不少,于是便记录下来自己的思路与知识总结,重温自己的探索之路。

初学

开始学习软件测试,那么什么是软件测试,软件测试很重要吗?当然重要,这是毫无疑问的。那么开始学习,我们需要了解软件测试的基本概念,方法,常用测试工具(测试的时候需要,可以大大提高效率),学习测试,我们可以了解到常见的软件架构。如:B/S,C/S等,这里我比较了解B/S,因为我测试过。

我们在学习软件测试时需要了解很多要懂的知识。

常见的测试工具

当然,学习软件测试,能不自己动手就少动手,让一些测试工具自动测试。如:selenium,loadrunner,postman,robotium,appium等。

学习软件测试不简单

测试一款软件,我们首先要知道自己测试的目的,不可盲目,要有质量的保证,懂得合理的进行软件测试。

测试一款软件是为了发现在测试过程中存在的错误,一直测试到没发现错误,但是你不能保证该软件是否测试完成完美。只能说测到你没发现错误,错误还是有可能存在的。

进行软件测试目的是保证该软件做了你所期望的事情,并且是正确地形式完成。测试软件为了提供给开发人员和经理有关信息,进行软件的风险评估。进行软件测试只能提高软件的质量,进行软件测试能够得出很好的结论为下一次软件的开发的过程做准备。

软件生存期模型

瀑布模型
原型模型
增量模型
螺旋模型

1.什么是瀑布模型

答:对于瀑布模型,我知道有六个阶段:计划,需求分析,设计,编码,测试,运行维护。
计划–>需求分析–>设计–>编码–>测试–>运行维护,是不是很难背。

2.什么是原型模型

答:就是建立一个能反映用户需求的原型系统,如何对原型系统进行反复的改进和求精,建立一个符合用户的目标系统。

3.什么是增量模型

答:对于增量模型,记住的是在每个阶段都会生成一个可发布的正式版本,而且每个软件版本是逐步完善的。

4.什么是螺旋模型

答:螺旋模型是瀑布模型和原型模型结合起来的,记住这个模型是有四个阶段,这四个阶段都是主要的,一是制定计划,二是风险分析,三是实施工程,四是评审。

软件质量的定义

软件质量的定义:满足用户的需求,满足软件测试的需求,保持合理的进度和成本

对于软件错误的定义:

进行软件测试为了发现软件程序中的错误,因为在软件开发中,可能在软件需求,设计,编码等阶段都是有可能出错的,为了保证软件质量就需要对软件进行软件测试,通过不断地验证和确认,保证软件的质量哦!

进行软件测试是为了发现可能存在的错误,提高软件的质量,但是不能通过软件测试来提高软件质量,不能误解为通过软件测试来提高软件质量,这个做法是错误的。

还有,不能说进行了软件测试就说明错误就不存在了,进行软件测试是保证错误存在率降低。

简单明了地说,没有实现用户的最终要求就是软件错误。

软件测试的名句

在学习软件测试时,会常常听见这些话:

  1. 进行软件测试能够提高软件的质量,但是你可别想提高软件质量依赖软件测试。
  2. 进行软件测试,可以查出软件存在的错误,但不能保证错误不存在。
  3. 软件测试的难度在于如何有效进行测试时,和何时放心结束测试。
  4. 80%的错误聚集在20%的模块中。(重点)
  5. 一切的事情千万别一次性干完。

测试用例

编写测试用例,需要依靠软件需求为依据,不能凭空乱写,如果软件需求出现错误,那么测试用例也会出错。如果测试用例编写不完整或者不够好,那么可能会发现不了错误的存在,一个好的测试用例能够提高效率,也能找出未发现的缺陷。

所有的测试工作者都是为了发现软件错误,错误的原因等。

软件测试的分类

基于软件结构与算法
黑盒测试和白盒测试

基于执行被测试软件
静态测试和动态测试

基于不同阶段
单元测试,集成测试,系统测试,验收测试

黑盒测试又叫做功能测试,适用于用户测试,可以理解为进行性能测试,表面的测试~

白盒测试又称为结构测试,对代码结构进行测试,可属于程序员的测试~

静态好比对车子在车库中的检查,而动态就好比,开车来检查,测试~

测试不同阶段,单元测试、集成测试、系统测试和验收测试,是一种从小到大、循序渐进的测试。

单元测试是一个一个单元的模块进行测试,由于是单元,不能独立的运行,所以需要编写可用的运行测试程序。集成测试,懂得是混合使用白盒黑盒测试方法的。 集成测试是单个模块连接的,可以理解为单元测试每个模块集成为集成模块,可以发现模块与模块之间的接口等问题。

系统测试采用黑盒测试方式,检查系统是否符合软件的需求,单元测试到集成集成测试到系统测试到验收测试。

软件测试过程

  1. 制定测试计划
  2. 建立合适的测试环境
  3. 需要编写测试方案文档
  4. 需要编写测试用例文档
  5. 执行测试
  6. 合理利用测试工具
  7. 需要提交Bug提交文档
  8. 需要编写总结报告文档
  9. 进行分析和评估

黑盒测试

等价类划分、边值分析
因果图、判定表法、场景法、错误推测

等价分类法

等价分类法:分两种为有效等价类和无效等价类

有效等价类,就是输入的数据是合理的,有意义的,并且符合程序的规格说明。

无效等价类,就是输入的数据是不合理的,没有意义的,并且不符合程序的规格说明。

边界分析法

对于边界分析法,是基于等价类划分的,选择等价类的边界值作为测试用例。

错误推测法

错误推测法,是靠经验或者直觉推测可能会出现错误的,列出可能出错的和容易出错的,来选择作为测试用例。

因果图法

因果图法,理解为把“因”看作输入条件,把“果”看作输出条件,有因就有果,因果图是一种形式化语言,可以根据这种关系选择高效的测试用例。

定位:分享 Android&Java 知识点

原文地址:https://www.cnblogs.com/dashucoding/p/9269777.html

时间: 2024-10-10 23:49:38

软件测试与代码安全详解的相关文章

PHP扩展代码结构详解

PHP扩展代码结构详解: 这个是继:使用ext_skel和phpize构建php5扩展  内容 (拆分出来) Zend_API:深入_PHP_内核:http://cn2.php.net/manual/zh/internals2.ze1.php 我们使用ext_skel创建扩展 hello_module,该模块包含一个方法:hello_world. 使用ext_skel 生成的代码都是PHP_开头的宏, 而不是ZEND_开头. 实际上这两者是一样的. 在源代码src/main/PHP.h 中发现:

Spring基于事件驱动模型的订阅发布模式代码实例详解

代码下载地址:http://www.zuidaima.com/share/1791499571923968.htm 原文:Spring基于事件驱动模型的订阅发布模式代码实例详解 事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型:理解它的几个关键点: 首先是一种对象间的一对多的关系:最简单的如交通信号灯,信号灯是目标(一方),行人注视着信号灯(多方): 当目标发送改变(发布),观察者(订阅者)就可以接收到改变: 观察者如何处理(如行人如何走,是快走/慢走/不走,目标不会管的

Spring整合JUnit框架进行单元测试代码使用详解

[转]Spring整合JUnit框架进行单元测试代码使用详解 转自 http://blog.csdn.net/yaerfeng/article/details/25187775 感谢博主 :云淡风轻 .仅此一抹 一.Spring提供的JUnit框架扩展: 1. AbstractSpringContextTests:spring中使用spring上下文测试的Junit扩展类,我们一般不会使用这个类来进行单元测试,它是spring内部设计使用到的类    2. AbstractDependencyI

java文本相似度计算(Levenshtein Distance算法(中文翻译:编辑距离算法))----代码和详解

算法代码实现: package com.util; public class SimFeatureUtil { private static int min(int one, int two, int three) { int min = one; if (two < min) { min = two; } if (three < min) { min = three; } return min; } public static int ld(String str1, String str2)

第52讲:Scala中路径依赖代码实战详解

<DT大数据梦工厂>大数据实战视频"Scala深入浅出实战经典"视频.音频和PPT下载!第52讲:Scala中路径依赖代码实战详解百度云:http://pan.baidu.com/s/1gdES4hX360云盘:http://yunpan.cn/ccHXX2Wkrrrt4 访问密码 c489腾讯微云:http://url.cn/VV5kx5 记录: Scala中内部类的路径依赖非常适合现在互联网看待事物所属关系,组织关系. 根据依赖的外部实例的不同,内部类类型会有所不同.由

软件测试培训 UI 自动化测试详解

软件测试培训小编有好久都没有跟新软件测试,从今天开始,小编会逐渐把这部分知识给大家补上!今天这篇文章给大家介绍的是: UI 自动化测试 互联网产品的迭代速度远高于传统软件,尤其是移动APP不但更新频繁,还需要在不同硬件.系统版本的环境下进行大量兼容测试,这就给传统测试方法和测试工具带来了巨大挑战.为满足产品敏捷开发.快速迭代的需求,自动化测试逐渐流行起来.自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程. 自动化测试的优点很多,简单罗列几条:避免重复工作.提高测试效率.保证每次测试地一

网页代码上线详解

第1章 代码上线 早期手动部署代码 纯手动scp上传代码. 纯手动登陆,Git pull 或者SVN update. 纯手动xftp上传代码. 开发发送压缩包,rz上传,解压部署代码. 缺点: 全程运维参与,占用大量时间. 如果节点多,上线速度慢. 人为失误多,目录管理混乱. 回滚不及时,或者难以回退. 1.1 小型公司代码上线案例 1.1.1 特点及问题 01.发布快.及时,可随时随地发布代码 02.开发发布的代码不经测试,导致无法访问(如死循环代码),对网站用户体验较差 1.1.2 架构方案

Tomcat使用MyEclipse远程调试Java代码配置详解

Tomcat使用MyEclipse远程调试Java代码总结如下:在做远程调试时,在windows系统和非windows系统下的配置,Tomcat中会有所差别,具体如下: 第一步.配置tomcat一.在windows系统中:打开%CATALINE_HOME%/bin下的文件catalina.bat,加入下面这行:set CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket

第33讲:List的一阶函数操作代码实战详解

操作的参数不是函数,就是一阶函数 我们通过具体的代码来说明: package com.dt.scala.dataset object ListFirstOrderOps {   def main(args: Array[String]): Unit = {     //列表合并,使用:::操作符     println(List(1,2):::List(3,4):::List(5,6))     println(List(1,2):::(List(3,4):::List(5,6)))     /