app

软件工程小组问世第八章之测试文档

拥有回忆 提交于 2020-01-14 20:14:34
1. 引言 1.1 编写目的 编写此文档的目的主要在于确定整个测试阶段建立测试测试的内容和范围,以供软件测试人员作为软件测试实施的参考。 1.2 项目背景 项目名称:燃烧我的卡路里 项目提出者 /开发者/实施单位:跑酷来了成员小组 项目用户: “约跑”APP 使用者 与其他系统的关系:在安卓系统上独立运行 1.3 缩写说明 无 1.4 术语定义 约跑:按照速度或者性别匹配伙伴并一起跑步; 1.5 参考资料 [1]窦万峰.软件工程与实践[M].北京:机械工业出版社,2018 1.6 版本信息 修改编号 修改日期 修改后版本 修改位置 修改内容概述 1 2019.6.17 1.0 全部 完成第一次编写 2. 任务概述 2.1 测试目标 本测试的覆盖范围: 登录和注册模块 个人信息模块 约跑和 GPS 模块 通过测试,达到以下目标: 测试运行是否稳定 测试已实现的项目是否达到预期要求 测试是否能够运行正常的功能 2.2 测试环境 硬件环境: Android手机,笔记本电脑 软件环境: Android Studio 2.3 需求描述 2.3.1 数据需求 数据名称 名称含义 数据类型 数据长度 说明 Uid 用户名称 Varchar 12 由用户自设 Password 用户密码 Varchar 12 由用户自取 Uphone 用户手机号 Int 11 Usex 用户性别 Varchar 5

dumpsys详解

假如想象 提交于 2020-01-14 12:28:59
dumpsys命令用法 dumpsys命令功能很强大,能dump系统服务的各种状态,非常有必要熟悉该命令的用法以及含义。 一、 dumpsys命令 1.1 服务列表 不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的dump服务,先进入adb shell,再执行如下命令: dumpsys -l 。 这些服务名或许你并看不出其调用的哪个服务,那么这时可以通过下面指令: service list 。 表一: 服务名 类名 功能 activity ActivityManagerService AMS相关信息 package PackageManagerService PMS相关信息 window WindowManagerService WMS相关信息 input InputManagerService IMS相关信息 power PowerManagerService PMS相关信息 batterystats BatterystatsService 电池统计信息 battery BatteryService 电池信息 alarm AlarmManagerService 闹钟信息 dropbox DropboxManagerService 调试相关 procstats ProcessStatsService 进程统计 cpuinfo CpuBinder

APP测试思路

余生颓废 提交于 2020-01-14 11:28:36
App崩溃 验证在有不同的屏幕分辨率,操作系统和运营商的多个设备上的APP行为 用新发布的操作系统版本验证APP的行为 验证在如隧道,电梯等网络质量突然改变的环境中的APP的行为 通过手动网络从蜂窝更改到Wi-Fi,或反过来,验证APP的行为 验证在没有网络的环境中的APP的行为 验证来电/短信和设备特定的警报(如警报和通知)时的APP的行为 通过改变设备的方向,以不同的视图模式,验证APP的行为 验证设备内存不足时的APP的行为 通过用测试工具施加载负荷验证APP的行为 用不同的支持语言验证APP的行为 兼容性测试常见缺陷 崩溃 闪退 ANR:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理的应用程序中不能出现anr,而让用户每次都要处理这个对话框。因此,在程序里对响应性能的设计很重要,这样系统不会显示ANR给用户。默认情况下,在android中Activity的最长执行时间是5秒,Broadcast Receiver的最长执行时间则是10秒。 UI变型 安装卸载常见缺陷 安装过程中出现闪退 安装完成后,点击APP无反应 安装完成后,点击APP,APP出现闪退

App即将上线,测试流程是怎样的?

只愿长相守 提交于 2020-01-14 10:56:19
App不同上线情况对应着怎样的测试流程? 一个App软件从研发提测到版本上线经过了哪些测试流程呢?有些测试童鞋认为就是进行功能测试,没bug了就提交审核,审核通过就直接上线了,其实不然,有些步骤是需要特别关注的,否则极易造成线上bug,本文就通过两步介绍一款App从提测到上线的具体测试流程 一、第一步------------了解上线的各种组合情况 1.目标 掌握App和后端服务上线的不同组合情况 2.组合情况 1.后台服务和App都有业务更新 2.只有后台服务更新 3.只有App业务更新 二、第二步----------------App测试流程 1.目标 掌握各种组合情况下App上线流程 2.上线流程 总结 App业务必定要靠后台服务的支持,上线的时候如果涉及到后台业务更新,这时候就要特别注意了,因为app上线有个审核过程,因此不可避免的后端服务要先上线,所以要提前验证下最新后台服务对当前线上app版本是否支持,另外有些用户可能还不会实时更新app版本,所以最好对app当前往前数历史3个版本的功能都进行下验证,否则新服务上了以后很容易造成线上bug,这个是大家需要格外注意的。 来源: CSDN 作者: 传智播客官方博客 链接: https://blog.csdn.net/itcast_cn/article/details/103968374

英语学习APP的案例分析

你说的曾经没有我的故事 提交于 2020-01-14 08:48:56
第一部分 调研, 评测 1、第一次上手体验。 (1)词典界面,这个界面功能还是比较齐全的,有英语美句、英语单词、英语文章,使得学习不那么枯燥。但是首先一排文章下来中间穿插着英语电台,觉得看着很不美观,有种生硬的感觉,其次英语文章的来源和选择也五花八门,由系统推送,不能自由选择,这是一个可以改进的地方。 (2)翻译界面,设计很一般,并不好看,没什么亮点,也没什么槽点,句子英译汉还是不够通顺,不过这是机器翻译的通病 (3)学习界面,这个才是大家关心的重点,我觉得这里的设置还是不错的,有多种词库可以学习,可以设置计划,可以练口语,可以听电台。 2、程序的bug (1)转换语言太慢,我语言选了英语,至少五分钟才转换成英文,而且只转换了基本设置里的选项,其他依然是中文。 (2)到月底的时候,通常都是流浪捉急的时候,所以离线资源还是很有必要的,这个app我只在设置里面才找到离线资源,而且不能选择自己想下载的单词表,比如四六级,这是不能忍的bug,但这一点就足够我卸载它了,我没那么多流量天天耗着哦,我需要离线资源。 3、选择舍友来采访,舍友是一个正在准备四六级的人,她需要背单词,练习听力,阅读理解,翻译,写作。 舍友的意见是这个app不适合要备考四六级或高考的学生,这里面对备考比较有用的就是被单词,没有相应的习题来训练备考,只能通过阅读文章来锻炼考试时需要的阅读理解和翻译写作能力,效率太低

android 4.0 home

雨燕双飞 提交于 2020-01-14 05:00:55
引用: http://www.0case.com/Web/general/Content_96_35.html http://wenku.baidu.com/view/7004b32e4b73f242336c5f7a.html http://www.2cto.com/kf/201207/139705.html http://www.eoeandroid.com/thread-201721-1-1.html 修改 frameworks 层 近日在研究一个视频锁的功能,即在 视频播放界面上设一个锁的功能,当该锁起效后,就会屏蔽back, home, menu三个键的功能。   back 和 menu 键都可以通过 app层 的 onKeyDown 和 onKeyUp 函数来拦截。但是 home 键不行。   于是上网查了一下在app层屏蔽 home 键的方法。   主流的方法如下所示。但只在2.2,2.3平台下有效。(下面列举的方法只在android 2.2, 2.3 上有效)   屏蔽Activity, Dialog风格Activity, AlertDialog的Home键功能方法分别是:   1.屏蔽Activity中的Home键功能,只需要在你要屏蔽的activity 中重写 onAttachToWindow() 这个函数就可以了   [java]   @Override  

RN在Android打包发布App

百般思念 提交于 2020-01-14 00:22:03
参考资料:http://www.jianshu.com/p/b8811669bcb6 RN在Android打包发布App 1-:生成一个签名密钥 你可以用keytool命令生成一个私有密钥。在Windows上keytool命令放在JDK的bin目录中(比如C:\Program Files\Java\jdkx.x.x_x\bin),你可能需要在命令行中先进入那个目录才能执行此命令。在mac上,直接进入项目根目录输入一下命令: $ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 这条命令会要求你输入密钥库(keystore)和对应密钥的密码,然后设置一些发行相关的信息。最后它会生成一个叫做my-release-key.keystore的密钥库文件。 在运行上面这条语句之后,密钥库里应该已经生成了一个单独的密钥,有效期为10000天。--alias参数后面的别名是你将来为应用签名时所需要用到的,所以记得记录这个别名。 注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方。 2-:设置gradle变量 把 my-release-key.keystore 文件放到你工程中的 android

node.js的路由

流过昼夜 提交于 2020-01-13 16:28:09
app.js: app.use('/', routes); app.use('/reg', routes); app.use('/u/:user',routes); app.use('/post',routes); app.use('doReg',routes); app.use('login',routes); app.use('login',routes); app.use('logout',routes); app.use('/users', users); routes/index.js var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: '首页' }); }); router.get('/u/:user', function(req, res, next) { }); router.post('/post', function(req, res, next) { res.render('post', { title: 'post' }); }); router.get('/reg', function(req,

Vue路由router示例

风流意气都作罢 提交于 2020-01-13 09:59:21
使用CLI2自动化创建的项目 目录: main.js: import Vue from 'vue' import App from './App' // 原本导入写法 // import router from './router/index' // 如果导入的是一个文件夹,它默认会去找index.js import router from './router' Vue . config . productionTip = false new Vue ( { el : '#app' , router , // 挂载路由 render : h => h ( App ) // 渲染App组件 } ) App.vue: < template > < div id = "app" > < h2 > 我是 APP 组件 < / h2 > < ! -- router - link是全局组件 router最终会被渲染成a标签 tag是组件类型 跳转默认是pushState(可后退前进) replace表示的是replaceState ( ) 模式 -- > < ! -- < router - link to = "/home" tag = "button" replace active - class = "active" > 首页 < / router - link > -- > < ! --

Vue学习笔记-插槽基本使用

霸气de小男生 提交于 2020-01-13 09:54:50
为了让我们的组件更加具有扩展性,可以使用插槽 <div id="app"> <cpn> <span>返回</span> <input type="text" placeholder="搜索"> <span>...</span> </cpn> </div> <template id="cpn"> <div style="display: flex;flex-direction: row"> <h2>左边</h2> <h2>中间</h2> <h2>右边</h2> <slot></slot> <!--默认插槽: 当没有替换内容时默认显示--> <slot><button>按钮</button></slot> <!--<slot></slot>--> <!--<slot></slot>--> </div> </template> </body> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> const cpn = { template: '#cpn' } const app = new Vue({ el: '#app', components: { cpn } }) </script> 具名插槽: 当子组件的功能复杂时,子组件的插槽可能并非是一个。比如我们封装一个导航栏的子组件