在很多外包软件定制项目中,比如开发的APP/小程序、网站、业务管理系统等,甲方在项目验收时,评估的标准是软件功能是否达到预期,交付的内容和资料是否完整,软件整体是否可用,但除了上述内容,乙方还需要对即将交付的软件进行整体测试,包含多道测试流程和工序,并且需要提供专业和详细的测试报告。关于软件系统交付前的测试,你了解吗?丁老师今天对这个内容进行一下介绍。

一、软件交付前要进行几项测试?
软件在交付和上线前一般要进行三项测试,包括开发公司内部测试、综合测试、客户验收测试、回归测试4种。
(1).内部测试
这是属于软件外包开发公司内部进行的测试流程,即在交付给用户测试前,先由软件公司内部员工组织安排的测试。
具体包括:
1.UI界面测试,主要测试软件项目的前后端UI界面展示部分,包括交互逻辑和美观度,显示是否正常、布局排版是否合理。
2.基本功能测试,软件功能是否按需求正常使用、正常运行。
3.兼容性测试,不同使用终端(电脑、平板、手机)是否可以共用,是否兼容。
4.性能测试,对系统加载速度,功能响应速度,资源占用等进行测试。
5.安全测试,模拟黑客嗅探和攻击,包括接口、Sql注入、XSS、文件上传等风险项进行测试。
6.数据测试,对数据导入导出、数据准确性、完整性进行测试。
7.异常测试,模拟异常环境,断网、容错、重复提交、接口异常等各种极端情况测试。
(2).综合测试
公司内部测试属于基本测试,在基本测试完成后,需要对系统进行综合测试(可选,一般多用于大型项目)。
具体包括:
1.白盒测试,检查软件系统代码执行路径、条件分支、循环、判断等。
2.黑盒测试,根据需求和功能,从用户角度进行整体测试。
3.灰盒测试,用于接口测试、系统集成测试、安全测试等的整体测试。
4.手工测试,测试人员人工操作软件进行测试。
5.自动化测试,测试人员编写自动化脚本进行测试。
备注:
综合测试一般用于大型系统项目交付,或甲方要求提供专业第三方测试报告的合同。
(3).客户验收测试
由甲方客户对软件系统进行整体测试,包括UI界面、模块功能以及整体使用性测试。具体测试内容和测试方法,由客户自己定义,测试人员也有客户自己安排组织,主打一个随意测试,想怎么测试就怎么测试。只要客户验收测试能通过,即意味着项目可达到交付标准。
(4).回归测试
在客户进行验收测试后,往往会提出很多问题,包括功能的使用性以及需求的部分变更,这些往往需要乙方进行返工修改。在乙方修改后,需要对这些修改的内容进行重新测试,以及对之前的所有内容进行全面测试,以确保本次修改的内容不会影响之前已测试过的功能使用和业务逻辑,这就叫做回归测试。
只有回归测试完成后,项目才可以进行交付。
二、如何测试?
关于如何测试,分为3个方面,分别是开发公司自己测试、客户验收测试、第三方测试公司测试。
(1).软件开发公司自己测试
以软件开发公司自己的人力安排,和测试计划为准,同时,客户也可以指定和要求开发公司对某个具体的功能模块进行哪些测试。软件公司需要准备测试环境、制作测试用例,进行功能、权限、安全、性能、回归等整体测试。
(2).客户验收测试
客户需要自己组织测试人力,安排测试计划,大体测试范围为软件的功能是否可以正常使用、功能模块是否完整、功能是否符合预期需求,系统是否流畅运行等。
客户验收测试只是针对软件使用情况的测试,一般不需要专业的测试工具和技术。
客户验收的手段和流程有:
1.实际操作测试,按照实际业务流程,亲自操作软件测试。
2.黑盒测试,客户不看代码,只从最终用户角度测试,可以模拟各种环境和异常,任意输入、任意测试。
3.业务场景测试,不测试某个具体的模块功能,而是按照实际业务需求,跑完整个业务场景,测试流程是否正确,各子模块数据是否正常。
4.数据验证测试,对最终产生的数据进行计算和校验,测试是否正常。
5.权限测试,客户可安排人员,以不同的角色登录,测试权限是否可用,不同角色能看到什么、不能看到什么,能做什么,不能做什么。
6.兼容性测试,使用各种设备,包括各种浏览器(Firefox、Chrome、Edge、Safari)、各种终端(PC、手机、Pad)、各操作系统(Windows、Linux、Mac OS、Android、iOS)进行测试。
7.性能验收。如果在合同中甲方客户有明确要求软件要达到具体的性能指标,可以按照指标进行测试。比如:
1万个用户同时在线,核心页面响应时间不超过3秒。8.安全测试,检查登录认证、权限控制、越权访问、数据访问、文件上传、密码安全、敏感信息等风险项,如果甲方要求专业安全检测,可交由专业测试机构进行。
9.文档验收。除需要完成的基本测试外,还要对文档进行验收,包括用户操作手册、部署文档、数据库文档、API接口文档、源代码、安装包、部署文件、测试报告、第三方测试报告等。
(3).第三方测试公司测试
这种一般是交由专业的第三方测试公司,进行专业的系统测试,这种测试不是必须项,多见于大型项目或政府信息系统。第三方测试公司测试的费用也略高,一般在几万到几十万甚至几百万不等(冷知识:专业测试公司的测试费用大多甚至比软件开发费用还高)。
一般是否需要聘请第三方测试公司测试,由甲乙双方在合同签署时约定,具体的费用承担,也需要双方提前协商约定好。
三、测试报告
一个完整的软件项目在测试后,需要提交专业的测试报告,具体包括:
1.《软件功能测试报告》,记录系统各项功能是否正常,报告内容包括测试功能数量、测试用例数量、通过数量、失败数量、阻塞数量、缺陷数量、严重/一般/轻微缺陷数量、最终通过率等。
2.《接口测试报告》,主要是针对开放的API接口测试,报告内容包括接口总数、已测试接口数量、请求成功数量、请求失败数量、HTTP状态码、平均响应时间、接口错误率等。
3.《性能测试报告》,这个报告的数据最多,包括并发用户数、求数量、TPS、QPS、平均响应时间、最大响应时间最小响应时间、90/95/99分位响应时间、成功率、失败率、CPU使用率、内存使用率、数据库资源、网络流量等。
4.《安全测试报告》,包括SQL注入、XSS、CSRF、越权访问、身份认证、权限控制、文件上传、敏感信息泄露、密码安全、接口安全等。
5.《兼容性测试报告》,记录不同环境下的测试结果,需要提供针对各浏览器、终端设备、操作系统的使用情况统计。
6.《稳定性测试报告》,记录提供系统运行时间、崩溃次数、服务重启次数、内存增长、CPU占用、请求失败率、数据异常数量等运行数据统计。
7.《数据测试报告》,记录提供数据准确性、数据完整性、数据一致性、数据增删改查、数据统计、数据导入、数据导出、数据迁移等指标数据。
8.《回归测试报告》,甲方根据乙方的用户测试反馈,每次进行对应修改后,记录和提供的Bug修复,以及相关重新测试的情况。
四、全文总结
在软件定制开发项目完成后,并不是说项目就能直接交付,测试是软件交付前重要的一个环节,尤其是APP开发、微信小程序、ERP以及各业务管理后台等定制开发项目,在正式交付前,最好经过完整的系统测试再进行验收,特别是对于大型信息系统或是政府单位的招标项目,还必须委托有资质的第三方专业测试公司测试,并提供经法律认可的测试报告。
对于很多企业来说,关于软件验收、测试,以及相关性能指标的具体要求,由于专业度限制,并不是很好把控,特别是涉及大型软件项目,如果前期没有明确测试和验收标准,项目在上线后运行时,一旦出现各种故障,就会产生扯皮和争议。如果你的企业也在开发软件系统,不知道该如何测试,或是不明白都具体需要哪些性能指标,欢迎联系咨询丁老师一起交流和探讨。
有同学咨询,使用Visual Studio工具C#开发的Winform程序,生成后软件目录全是大量dll文件,看起来杂乱无章,有没有什么办法能让他统一放到一个文件夹里边呢?丁老师对此问题进行解答。为什么会产生大量的dll文件?因为在使用...
微信小程序部分一、完善小程序基本信息1.用管理员账号登录微信小程序(https://mp.weixin.qq.com/);2.左侧菜单选择首页;3.完善小程序的基本信息,包括小程序名称、小程序类目、微信认证、微信备案等。二、小程序开发配...
在开发CodeIgniter的上传功能时,提示upload path does not appear to be valid,说是上传路径错误,但是仔细检查了设置的路径是对的。怎么还出现这个提示呢?经过丁老师研究,是因为CodeIgni...
在使用python3.12时突然遇到提示windows No module named distutils,研究了一下,把解决办法分享出来。1.安装 setuptools,它现在也提供 distutils;2.从第三方源(如系统软件包)...
最近丁老师软件开发团队收到几个微信小程序二次开发的订单,客户想对他们现有的小程序进行版本迭代和功能升级,但是好多客户在提供资料时都表达不清楚,不是这个不知道就是那个不懂,今天丁老师就微信小程序二次开发,需要准备哪些资料以及流程等问题做一下介...
微信公众号可以把官网的网页集成进去吗?想通过微信公众号实现打开公司网站的页面,具体要怎么实现呢?其实这个功能,可以通过微信菜单的方式来实现...
1. composer版本更新文档版本号:https://getcomposer.org/download中文网:https://docs.phpcomposer.com/03-cli.html#self-update英文网:https:/...
fastadmin里自定义按钮的btn-dialog,弹出窗口时默认大小,设置了data-area无效,经过研究后,发现了可用的方法,直接上代码不废话:table.on('post-body.bs.table',functi...