Under the Radar 58: Prerelease Testing
00:00:00
◼
►
welcome to under the radar a show about
00:00:02
◼
►
independent iOS app development I'm mark
00:00:04
◼
►
Ormond and I'm David Smith clear the
00:00:06
◼
►
radar is never longer than 30 minutes so
00:00:08
◼
►
let's get started so today we wanted to
00:00:12
◼
►
talk a little bit about testing about
00:00:15
◼
►
that process we go through towards the
00:00:17
◼
►
end of developing something where we try
00:00:19
◼
►
and take it from mostly working to
00:00:22
◼
►
actually working or fully working and
00:00:25
◼
►
this is particularly relevant and
00:00:26
◼
►
interesting for me at this point because
00:00:28
◼
►
I am in that very final of phases for my
00:00:33
◼
►
next step when we thought about whole
00:00:34
◼
►
bit about last week that I'm in the
00:00:37
◼
►
phase now where functionally and you
00:00:39
◼
►
know from a feature perspective I've
00:00:40
◼
►
kind of drawn the line and said this is
00:00:43
◼
►
the app this is as far as I'm gonna go
00:00:44
◼
►
with it any other features or any other
00:00:46
◼
►
things that come up are gonna be in the
00:00:48
◼
►
next version you know version 1.1 or
00:00:50
◼
►
I'll push it down the road all um now
00:00:52
◼
►
now going to be doing is fixing bugs and
00:00:55
◼
►
testing and finding all the little
00:00:56
◼
►
issues and problems and it seemed like
00:00:59
◼
►
something that would be an interesting
00:01:00
◼
►
topic to kind of walk through because
00:01:03
◼
►
ultimately the goal is to make sure that
00:01:06
◼
►
we ship things that are you know quality
00:01:09
◼
►
are not you know riddled with bugs or
00:01:12
◼
►
having all kinds of problems and it's a
00:01:16
◼
►
tricky thing I think especially at from
00:01:18
◼
►
an indie perspective and I think we're
00:01:19
◼
►
definitely fair to say but I'm
00:01:20
◼
►
definitely talking about this from the
00:01:22
◼
►
the more of the indie perspective rather
00:01:24
◼
►
than you know if you are in a large
00:01:27
◼
►
corporate environment where your app is
00:01:29
◼
►
being worked on by lots of different
00:01:31
◼
►
people you may actually have an entire
00:01:33
◼
►
like QA department whose job it is to
00:01:35
◼
►
test your application like I used to
00:01:38
◼
►
when a job I used to work at you know
00:01:40
◼
►
they had there's an a room full of par
00:01:42
◼
►
like 20 people who all day just sat
00:01:44
◼
►
there using the product testing is
00:01:47
◼
►
trying all the crazy head you know edges
00:01:48
◼
►
and they had these big test plans that
00:01:50
◼
►
they had to go through before we did a
00:01:51
◼
►
build and like that is a very different
00:01:53
◼
►
world then I think either of us work in
00:01:55
◼
►
and so we're not talking about that kind
00:01:57
◼
►
of testing like that is a a discipline
00:02:00
◼
►
unto itself it is useful and important
00:02:02
◼
►
but for an independent I think that's
00:02:04
◼
►
just not the reality both from like a
00:02:07
◼
►
resources perspective like I don't have
00:02:11
◼
►
- realistically do that you know to do
00:02:13
◼
►
20 people times 40 hours or a week of
00:02:17
◼
►
testing like that's just impossible no
00:02:20
◼
►
so I'm not sure if it's necessary and so
00:02:23
◼
►
this is coming into like a lot of
00:02:24
◼
►
there's a certain category of bug that
00:02:27
◼
►
I'm less worried about this is sort of
00:02:29
◼
►
the in more like the integration bug
00:02:31
◼
►
rather than the like functional bug
00:02:34
◼
►
where sometimes you just have bugs that
00:02:36
◼
►
come up because you had five people
00:02:37
◼
►
working on a product and they're you
00:02:39
◼
►
know one person changed something here
00:02:41
◼
►
someone else changed it over there and
00:02:42
◼
►
obviously myself in different time
00:02:44
◼
►
domains is different like I can be you
00:02:47
◼
►
know like two weeks ago me and my
00:02:48
◼
►
current me can be conflicting but that
00:02:50
◼
►
happens less often but either way like
00:02:54
◼
►
being independent it's still something
00:02:55
◼
►
that I have to do and it's a process
00:02:56
◼
►
that I go through now and it seems like
00:02:59
◼
►
kind of a good thing to walk through but
00:03:01
◼
►
I don't do it in a formal way
00:03:03
◼
►
marco do you do it any kind of formal
00:03:05
◼
►
testing or processes that you have
00:03:07
◼
►
around putting something out or do you
00:03:08
◼
►
just kind of try it out a bunch and see
00:03:11
◼
►
if it works I mostly just try out a
00:03:14
◼
►
bunch I mean and so so we should clarify
00:03:16
◼
►
also that test-driven development is not
00:03:19
◼
►
what we're really talking about neither
00:03:21
◼
►
of us really do that we've talked about
00:03:23
◼
►
it briefly before and I don't think
00:03:25
◼
►
either of us really has a strong opinion
00:03:27
◼
►
on it except just to say that we don't
00:03:29
◼
►
do it mostly as a choice because of our
00:03:32
◼
►
resources and our style of coding
00:03:35
◼
►
you know just being single person shops
00:03:37
◼
►
it makes it harder to justify the the
00:03:40
◼
►
additional amount of time it takes to
00:03:42
◼
►
write all the tests and for test-driven
00:03:44
◼
►
development so that's not what we're
00:03:46
◼
►
talking about here today at least so
00:03:49
◼
►
yeah so when it comes to whatever
00:03:52
◼
►
testing people would call what we used
00:03:54
◼
►
to call testing just like you or other
00:03:58
◼
►
people like actually just using your app
00:04:01
◼
►
and trying out all the different things
00:04:02
◼
►
you know trying to turn you know testing
00:04:05
◼
►
out edge cases you know the things that
00:04:07
◼
►
a good tester a QA person would do that
00:04:09
◼
►
is that's what we're talking about today
00:04:11
◼
►
and so my answer to that is generally I
00:04:15
◼
►
I mostly rely on my own usage and their
00:04:18
◼
►
and reports from beta testers in order
00:04:21
◼
►
to to do this and
00:04:23
◼
►
this has pluses and minuses I mean
00:04:25
◼
►
obviously it this is a less disciplined
00:04:28
◼
►
approach than having like a formal unit
00:04:31
◼
►
testing process a formal UI testing
00:04:33
◼
►
process having dedicated testing people
00:04:37
◼
►
or services I should look more into
00:04:41
◼
►
those things I haven't to date and and
00:04:44
◼
►
it mostly has not caused problems
00:04:46
◼
►
there's and and part of this is because
00:04:48
◼
►
of the way I developed the app in the
00:04:50
◼
►
first place I mean step number one is I
00:04:52
◼
►
only make apps that I use if you are
00:04:55
◼
►
making an app that you don't use
00:04:57
◼
►
yourself on a regular basis and there's
00:05:00
◼
►
lots of reasons why you might want to do
00:05:01
◼
►
this you know if you're a consultant
00:05:02
◼
►
obviously that's a big one
00:05:04
◼
►
but you know a lot of people have these
00:05:05
◼
►
needs if that's the kind of need that
00:05:07
◼
►
that you're working with or you don't
00:05:09
◼
►
use the app I really don't know what to
00:05:10
◼
►
tell you I think things like unit
00:05:12
◼
►
testing make more sense there or having
00:05:14
◼
►
having like dedicated QA people or
00:05:16
◼
►
services that you can hire to do that
00:05:17
◼
►
but because I use the app myself and and
00:05:22
◼
►
I also tend to only implement features
00:05:25
◼
►
that I will use and and this is not I I
00:05:29
◼
►
don't do that 100% of the time like
00:05:30
◼
►
there are certain features like in my
00:05:32
◼
►
nitpicky details feature about the
00:05:34
◼
►
showing the number of unplayed unplayed
00:05:36
◼
►
episode as a red badge on the icon of
00:05:39
◼
►
the app I think you can tell by the
00:05:41
◼
►
description text in that interface that
00:05:43
◼
►
I don't want to use this feature but
00:05:45
◼
►
enough people requested it and it was a
00:05:47
◼
►
small enough feature I mean that
00:05:49
◼
►
features something like four lines of
00:05:50
◼
►
code it's it's it's a very very very
00:05:52
◼
►
tiny little feature and it satisfied
00:05:55
◼
►
large user demand a lot of people
00:05:58
◼
►
requested that feature always before I
00:05:59
◼
►
added it and so it satisfies a large
00:06:02
◼
►
user demand it was not that much work to
00:06:03
◼
►
do and it's very easy for me to test
00:06:06
◼
►
every so often even though I don't use
00:06:08
◼
►
it myself so that's something I added
00:06:09
◼
►
anyway despite not using it myself but
00:06:12
◼
►
otherwise I try not to add features that
00:06:15
◼
►
I won't use myself very often if at all
00:06:17
◼
►
in part because I don't care and in part
00:06:21
◼
►
because it makes it harder for me to
00:06:23
◼
►
maintain the quality of the app because
00:06:24
◼
►
I won't see problems in day-to-day
00:06:26
◼
►
testing like one of the one of the
00:06:28
◼
►
issues that I faced recently is I have a
00:06:30
◼
►
pretty severe carplay bug in the most
00:06:32
◼
►
recent build and I'm working on fixing
00:06:34
◼
►
that now I should have it for the next
00:06:37
◼
►
I don't have a car play vehicle we don't
00:06:39
◼
►
own a car play vehicle in our household
00:06:40
◼
►
and we actually are about to get one in
00:06:42
◼
►
about a month and that'll probably help
00:06:43
◼
►
although it won't be my car which is
00:06:45
◼
►
unfortunate but it's at least my wife
00:06:47
◼
►
will have one so I will have hardware to
00:06:49
◼
►
test on sometimes but like car plays
00:06:51
◼
►
this whole area of the app that I never
00:06:53
◼
►
see because I don't drive a car that's
00:06:56
◼
►
car play enabled and so there are going
00:06:59
◼
►
to be all these different areas where my
00:07:01
◼
►
own day-to-day usage is not going to
00:07:03
◼
►
cover it or is not going to reveal
00:07:06
◼
►
subtle problems at least and so for
00:07:08
◼
►
those kind of uses I really just rely on
00:07:10
◼
►
beta testers and reports from users
00:07:13
◼
►
hopefully you know hopefully before I
00:07:15
◼
►
release these versions that have these
00:07:16
◼
►
that have problems but you know
00:07:18
◼
►
sometimes sometimes they get out there
00:07:20
◼
►
and so in order to in order to minimize
00:07:22
◼
►
the damage I do try to at least like at
00:07:26
◼
►
least cover the the biggest most common
00:07:29
◼
►
uses of the app in my own formal or
00:07:32
◼
►
informal testing so for example what I'm
00:07:34
◼
►
releasing a big version I will almost
00:07:36
◼
►
always if I remember to which isn't
00:07:39
◼
►
always the case which is a problem but
00:07:41
◼
►
actually probably this is again this is
00:07:42
◼
►
like one of the reasons why it might be
00:07:43
◼
►
useful to have like a checklist or
00:07:45
◼
►
something but or you know a more formal
00:07:47
◼
►
structure of doing these things or an
00:07:48
◼
►
automated way of doing these things but
00:07:50
◼
►
one of the things that I do in my app is
00:07:53
◼
►
to to basically start fresh start from a
00:07:56
◼
►
brand new user every time I do a release
00:07:59
◼
►
so like take a device that doesn't have
00:08:01
◼
►
the app on an install a fresh version of
00:08:03
◼
►
the app and then try creating a new
00:08:05
◼
►
account and starting all over again and
00:08:07
◼
►
this helps for a number of reasons
00:08:09
◼
►
obviously that's a very important thing
00:08:12
◼
►
for your app to make sure it works at
00:08:14
◼
►
all and then secondly it shows me the
00:08:17
◼
►
onboarding experience it shows me the
00:08:18
◼
►
first run experience a lot like I see
00:08:21
◼
►
that whenever I whenever I do we release
00:08:23
◼
►
I I will see the first run experience
00:08:24
◼
►
and at least once during that process so
00:08:27
◼
►
that kind of helps remind me of any
00:08:30
◼
►
shortcomings in it or it helps you know
00:08:32
◼
►
helps show me if anything's broken about
00:08:33
◼
►
it or if if things aren't quite right
00:08:35
◼
►
you know it's so that's nice you know in
00:08:37
◼
►
that way as well but this is all a very
00:08:40
◼
►
long way of saying basically the way I
00:08:42
◼
►
do testing is I just use the app a lot
00:08:45
◼
►
myself before I let anybody else use it
00:08:46
◼
►
and then when it gets close to release I
00:08:49
◼
►
do beta tests
00:08:51
◼
►
and I can talk a little bit more about
00:08:53
◼
►
that maybe a little bit later but the
00:08:55
◼
►
beta test I use tend to find almost any
00:08:58
◼
►
other reigning problems yeah I think
00:09:00
◼
►
it's to is it's important to say like I
00:09:02
◼
►
mean I think my testing strategy is very
00:09:04
◼
►
similar to yours it's the I use the app
00:09:06
◼
►
a lot and I try and sort of use it like
00:09:13
◼
►
as I get closer I tend to kind of use it
00:09:14
◼
►
slightly and anger like I use it in a
00:09:16
◼
►
way that it's kind of trying to break it
00:09:18
◼
►
like I'm bashing on all the buttons and
00:09:20
◼
►
like what if I change this setting
00:09:21
◼
►
really quickly back and forth back and
00:09:23
◼
►
forth like is anything weird gonna
00:09:24
◼
►
happen like you can use it in that way
00:09:26
◼
►
and then yeah like you said it's that
00:09:28
◼
►
kind of testing where and the honestly
00:09:30
◼
►
what I usually do is for the like trying
00:09:32
◼
►
out a new user testing it's the you know
00:09:35
◼
►
I - I currently use an iPhone 7 that's
00:09:37
◼
►
the phone that I use like during
00:09:40
◼
►
development like 98% of my development
00:09:42
◼
►
happens on that phone and so before I
00:09:44
◼
►
launch I need to you know very least run
00:09:46
◼
►
it unlike a 5s and on a 7 plus I'm just
00:09:51
◼
►
in terms of to make sure that there's
00:09:52
◼
►
not any weird UI bugs or issues or
00:09:54
◼
►
sometimes even just weird there's
00:09:57
◼
►
performance things obviously going if
00:09:58
◼
►
you go back to like a 5 or a 5s they're
00:10:01
◼
►
much slower and so that's a I find a
00:10:02
◼
►
great place to do the kind of on board a
00:10:04
◼
►
2 on board testing because you know I'm
00:10:08
◼
►
starting fresh on those devices half the
00:10:09
◼
►
time anyway that will also say one thing
00:10:12
◼
►
that has bitten me many many times in
00:10:14
◼
►
the past and so now I always try and
00:10:16
◼
►
make sure I do too is I do the fresh
00:10:20
◼
►
user onboarding experience process but I
00:10:23
◼
►
do that running the old version of the
00:10:26
◼
►
app like the existing I could go to the
00:10:28
◼
►
App Store and download whatever this is
00:10:30
◼
►
whatever the current version of the app
00:10:32
◼
►
is from the App Store on board a fresh
00:10:34
◼
►
user and then install the version that
00:10:36
◼
►
I'm trying to verify and test with nice
00:10:40
◼
►
because often what I found is there's
00:10:41
◼
►
issues that you can run into that like
00:10:43
◼
►
the you know so usually it's a data
00:10:45
◼
►
issue or a settings issue or something
00:10:47
◼
►
that isn't being translated over
00:10:49
◼
►
correctly and obviously the majority of
00:10:51
◼
►
your users are going to be are like are
00:10:54
◼
►
coming from that previous version and
00:10:56
◼
►
then running your new version and so if
00:10:58
◼
►
there's any issues there you want to
00:10:59
◼
►
catch them but that kind of a this kind
00:11:01
◼
►
of approach of just taking a lot of
00:11:03
◼
►
devices like on my desk
00:11:04
◼
►
I have a bunch of different you know
00:11:06
◼
►
there's all the different iPhones like I
00:11:08
◼
►
never sell an iPhone whenever I get a
00:11:10
◼
►
new one and so I have all that all the
00:11:12
◼
►
different testing devices available to
00:11:15
◼
►
you know similarly like right now I'm
00:11:17
◼
►
wearing two Apple watches I have a 38
00:11:20
◼
►
millimeter Apple watch on my right hand
00:11:21
◼
►
and a 42 millimeter repla watch on my
00:11:23
◼
►
left hand and they're paired two
00:11:25
◼
►
separate phones many seven sizes and I'm
00:11:27
◼
►
just running the app that I'm testing
00:11:29
◼
►
constantly now like I just he keep this
00:11:33
◼
►
process of kind of banging up against it
00:11:34
◼
►
and if in general I think that it's it's
00:11:37
◼
►
you'll it's amazing how good much how
00:11:40
◼
►
good the coverage you can get from it
00:11:42
◼
►
that kind of a informal but like
00:11:46
◼
►
constant high-volume testing like maybe
00:11:48
◼
►
it's not as rigorous and so it loses
00:11:51
◼
►
something there but it definitely
00:11:52
◼
►
benefits from just doing it all the time
00:11:54
◼
►
and if you build apps that you use you
00:11:57
◼
►
certainly have that benefit at the very
00:11:59
◼
►
least of exposure to it yeah I mean one
00:12:02
◼
►
other note on the devices before I
00:12:04
◼
►
app review does not seem to test much if
00:12:08
◼
►
at all on a variety of devices as far as
00:12:11
◼
►
I can tell they test on one device only
00:12:13
◼
►
and usually it's a recent one so as far
00:12:16
◼
►
as I can tell so like a lot of times
00:12:18
◼
►
people people will have issues where
00:12:19
◼
►
like they'll get an update into the
00:12:21
◼
►
store approved that like crashes on
00:12:24
◼
►
launched on the iPhone 5s or something
00:12:26
◼
►
like that right because it's like an
00:12:27
◼
►
older device that is still supported and
00:12:29
◼
►
it still runs on and that your customers
00:12:30
◼
►
might still use but it doesn't work for
00:12:32
◼
►
you know it and I purview didn't catch
00:12:35
◼
►
it you know and so there's you can't
00:12:37
◼
►
depend on app review to catch like the
00:12:40
◼
►
big obvious Crashers because if it
00:12:42
◼
►
happens on anything any conditions that
00:12:44
◼
►
they're not trying including any other
00:12:46
◼
►
device besides whatever one they happen
00:12:47
◼
►
to be using you're not going to have a
00:12:49
◼
►
good time so that's that's a very very
00:12:51
◼
►
important to note and it's also probably
00:12:53
◼
►
worth saying that app review is not QA
00:12:55
◼
►
like app review is this very like course
00:13:00
◼
►
sieve that every now and then will catch
00:13:03
◼
►
problems and I love it when they do this
00:13:04
◼
►
but like that is not at all what they're
00:13:07
◼
►
doing they're not really looking to test
00:13:09
◼
►
your app to find problems they're too
00:13:11
◼
►
kind of running it through at a very
00:13:13
◼
►
different level and so I would not as
00:13:16
◼
►
certainly isn't one of those like well
00:13:18
◼
►
if a perv you can find any bugs and if
00:13:19
◼
►
they don't I'm sure it's fine like that
00:13:21
◼
►
is a tear there'll be a terrible
00:13:22
◼
►
approach to take to you with your app
00:13:25
◼
►
yeah it's kind it's like the seat belt
00:13:26
◼
►
on a plane it's like that's that is not
00:13:29
◼
►
the safety mechanism you should be
00:13:30
◼
►
relying on this you should definitely
00:13:32
◼
►
like it basically if a preview rejects
00:13:35
◼
►
your app for a crash you have a serious
00:13:38
◼
►
problem in your QA process it's like
00:13:39
◼
►
whatever you submit to ever view should
00:13:41
◼
►
not be in that kind of state where it
00:13:42
◼
►
would crash in like the first four
00:13:44
◼
►
minutes of somebody using it once you
00:13:46
◼
►
know but you know overall like and I
00:13:49
◼
►
should also you know suggest to that if
00:13:51
◼
►
you are going to rely so heavily as we
00:13:54
◼
►
do on self testing basically and again I
00:13:57
◼
►
I do I apologize greatly to people who
00:14:01
◼
►
enjoy formal testing and automated
00:14:03
◼
►
testing and unit testing and then 100%
00:14:05
◼
►
test coverage I apologize because this
00:14:07
◼
►
this entire discussion must be driving
00:14:10
◼
►
you totally crazy hi Casey
00:14:11
◼
►
but ultimately it's hard for single
00:14:17
◼
►
person developers to really justify the
00:14:20
◼
►
additional time and/or expense that more
00:14:24
◼
►
rigorous testing methods bring on for
00:14:27
◼
►
things like this so now that's a lot of
00:14:29
◼
►
qualifiers in that sentence obviously if
00:14:32
◼
►
you have a larger staff if you have a
00:14:34
◼
►
lot of money if your app is more
00:14:37
◼
►
important and then like you know then
00:14:40
◼
►
then you know like a sleep tracker for
00:14:42
◼
►
your wrist or for the podcast player
00:14:45
◼
►
like if you're really bad things happen
00:14:48
◼
►
if you like lose people's important data
00:14:50
◼
►
or you know if somebody will be
00:14:52
◼
►
seriously put out or hurt if your app
00:14:55
◼
►
breaks obviously that's a place where
00:14:57
◼
►
you need a more formal testing procedure
00:14:59
◼
►
and and framework in place but most
00:15:02
◼
►
people who make iOS apps aren't working
00:15:04
◼
►
in that kind of capacity and and not
00:15:07
◼
►
only don't have those resources but it
00:15:09
◼
►
would actually be be kind of a bad way
00:15:11
◼
►
to spend resources basically like
00:15:13
◼
►
tripling all of your work and this is a
00:15:15
◼
►
huge debate in programmer circles of
00:15:17
◼
►
whether test-driven development
00:15:18
◼
►
is really more work or whether it ends
00:15:19
◼
►
up saving you more work in the long run
00:15:21
◼
►
I honestly don't care which one of those
00:15:24
◼
►
it is I think it's probably unknowable
00:15:26
◼
►
because it's probably like the answer
00:15:28
◼
►
like everything else is probably it
00:15:29
◼
►
depends but but ultimately
00:15:32
◼
►
this isn't the way we do things and and
00:15:34
◼
►
I think there's a lot of developers out
00:15:35
◼
►
there who who do things more like what
00:15:37
◼
►
we do anyway that being said what more
00:15:39
◼
►
thing before I go into the sponsor for
00:15:41
◼
►
the week and that is if you're relying
00:15:42
◼
►
so much on self testing as we do if your
00:15:45
◼
►
app has like you know different modes or
00:15:47
◼
►
settings or ways you can do things
00:15:50
◼
►
change it up like in your in your day to
00:15:53
◼
►
day usage change it up every so often
00:15:55
◼
►
and spend a lot of time in each kind of
00:15:57
◼
►
condition so for instance overcast has
00:15:59
◼
►
dark mode or light mode and during
00:16:01
◼
►
development I usually switch about once
00:16:03
◼
►
a week between which one of those I'm
00:16:05
◼
►
using because I want to kind of get used
00:16:07
◼
►
to it and live in it and make sure that
00:16:09
◼
►
I'm that I'm designing and making the
00:16:11
◼
►
best app I can for both of those things
00:16:12
◼
►
same thing with streaming versus
00:16:14
◼
►
downloading like you know I wrote this
00:16:15
◼
►
whole streaming engine I hardly ever use
00:16:17
◼
►
it and that's kind of a problem so
00:16:19
◼
►
basically I force myself to change my
00:16:23
◼
►
own preference and and spend a good
00:16:26
◼
►
amount of time like a week or a month in
00:16:28
◼
►
streaming mode in the middle of
00:16:30
◼
►
development cycles where I would
00:16:31
◼
►
otherwise be in downloading mode you
00:16:32
◼
►
know just just to make sure I'm getting
00:16:34
◼
►
a really good idea of like these vastly
00:16:38
◼
►
different modes that my app can be in so
00:16:40
◼
►
that my own testing is more effective
00:16:42
◼
►
anyway we were sponsored this week by
00:16:45
◼
►
Pingdom Pingdom can help remove the need
00:16:48
◼
►
for you to have somebody who
00:16:49
◼
►
automatically logs in your website every
00:16:51
◼
►
minute and refreshes it to make sure
00:16:52
◼
►
it's up because Pingdom does that
00:16:54
◼
►
automatically with their testing
00:16:55
◼
►
framework see for yourself at Pingdom
00:16:58
◼
►
comm slash radar Pingdom is an awesome
00:17:01
◼
►
monitoring service for websites and web
00:17:03
◼
►
services and when you use offer code
00:17:05
◼
►
radar at checkout you get a holiday
00:17:08
◼
►
special of 50% off your first invoice
00:17:11
◼
►
this is an awesome deal usually 20% now
00:17:14
◼
►
it's 50 percent for the holidays so
00:17:16
◼
►
check it out at Pingdom comm slash radar
00:17:18
◼
►
Pingdom offers powerful easy to use
00:17:21
◼
►
monitoring tools and services for your
00:17:24
◼
►
website and web servers web sites are
00:17:26
◼
►
very sophisticated these days and you
00:17:28
◼
►
need you know there's all sorts of
00:17:30
◼
►
things that can go wrong and they know
00:17:31
◼
►
this they see it because they monitor it
00:17:33
◼
►
for lots of people
00:17:34
◼
►
you need Pingdom to be monitoring your
00:17:36
◼
►
site they can monitor as often as every
00:17:38
◼
►
minute by requesting pages by running
00:17:40
◼
►
through checkouts by logging in by doing
00:17:42
◼
►
you know transactions that they can do
00:17:44
◼
►
all sorts of things all
00:17:46
◼
►
simulated from there more than 70 global
00:17:48
◼
►
test servers and they can do it as often
00:17:49
◼
►
as once a minute and if anything goes
00:17:51
◼
►
down they can alert you via so many
00:17:53
◼
►
different means whatever you want you
00:17:55
◼
►
can have email text push notification or
00:17:58
◼
►
all an income any combination of these
00:17:59
◼
►
things and you can set the granularity
00:18:01
◼
►
it's incredibly customizable I've been
00:18:03
◼
►
using Pingdom now for oh geez I think
00:18:06
◼
►
eight years nine years something crazy
00:18:08
◼
►
it's a very long time because I've used
00:18:10
◼
►
it way before they were sponsor way
00:18:11
◼
►
before I was even a podcaster I was
00:18:14
◼
►
using Pingdom to monitor tumbler back in
00:18:15
◼
►
the day and and I just love them I used
00:18:18
◼
►
them constantly highly recommended that
00:18:20
◼
►
you use Pingdom for your all your
00:18:21
◼
►
monitoring needs it is really the best
00:18:24
◼
►
and if you run any kind of website or
00:18:26
◼
►
web service the last thing you want is
00:18:28
◼
►
for strangers on Twitter to be telling
00:18:31
◼
►
you when your site is down when you
00:18:32
◼
►
didn't already know that like you do not
00:18:34
◼
►
want to be learning that from Twitter
00:18:35
◼
►
you want to know when your site is down
00:18:37
◼
►
you want to be the first to know and
00:18:39
◼
►
then you want to be able to go in and
00:18:41
◼
►
fix it before all the people on Twitter
00:18:43
◼
►
see it and start bugging you about it
00:18:44
◼
►
and with Pingdom you can because Pingdom
00:18:47
◼
►
will alert you the moment things go down
00:18:49
◼
►
with that up to one minute granularity
00:18:51
◼
►
that's really incredible and they are so
00:18:52
◼
►
fast and so reliable
00:18:54
◼
►
I love Pingdom check them out yourself
00:18:56
◼
►
go to Pingdom comm slash of radar you
00:18:59
◼
►
will get a 14-day free trial and when
00:19:01
◼
►
you enter offer code radar at checkout
00:19:03
◼
►
you will get a holiday special of 50%
00:19:05
◼
►
off your first invoice check it out
00:19:08
◼
►
today no be the first to know when your
00:19:09
◼
►
site is down thank you very much to
00:19:10
◼
►
Pingdom for sponsoring our show so I
00:19:13
◼
►
think for the last part of the show it
00:19:15
◼
►
seemed like some that may actually make
00:19:16
◼
►
sense for us to focusing on is a bit of
00:19:19
◼
►
the actual like the details of what this
00:19:22
◼
►
kind of user testing approach that we've
00:19:25
◼
►
just been talking about it looks like
00:19:27
◼
►
and for me what that usually means is so
00:19:30
◼
►
I get into this phase now where I'm
00:19:32
◼
►
doing this final level of testing and
00:19:33
◼
►
I'm just constantly trying to think of
00:19:35
◼
►
things to try I'm trying them out I'm
00:19:38
◼
►
using the app in different circumstances
00:19:39
◼
►
in different places like I'll be using
00:19:41
◼
►
it on different networks like hey I'm
00:19:42
◼
►
out on a cell network I'm at home now
00:19:45
◼
►
and so whenever I find an issue you're
00:19:46
◼
►
inevitably you'll find a bug you'll see
00:19:48
◼
►
something that you're like huh that's a
00:19:49
◼
►
little interesting what I found is a
00:19:52
◼
►
very important thing is to have some
00:19:53
◼
►
kind of reliable way of collecting
00:19:57
◼
►
all these little issues and bugs and
00:19:59
◼
►
problems and for me usually that is I
00:20:01
◼
►
have I'll have a list in OmniFocus that
00:20:05
◼
►
I am just adding items to and anytime I
00:20:09
◼
►
see something usually I'll grab a
00:20:11
◼
►
screenshot of it and if it's obvious
00:20:14
◼
►
I'll just attach the screenshot to the
00:20:16
◼
►
task in OmniFocus or if not I'll take it
00:20:19
◼
►
and run it through what used to be an
00:20:22
◼
►
app that you made Marco which used to be
00:20:23
◼
►
called buckshot what I think is now
00:20:24
◼
►
called pin point mmm which is a great
00:20:26
◼
►
little tool we have a link in the show
00:20:27
◼
►
notes to it but it's just a little thing
00:20:29
◼
►
for just drawing arrows basically or
00:20:30
◼
►
circling things um it's great for screen
00:20:33
◼
►
shot sort of when you're like huh
00:20:34
◼
►
you know there's this weird graphics
00:20:36
◼
►
glitch or something so you can mark it
00:20:38
◼
►
up add it to it to get and then you know
00:20:41
◼
►
I go through all of like and when I'm in
00:20:44
◼
►
the face now like this morning I sat
00:20:45
◼
►
down I had the head a list about five or
00:20:47
◼
►
six little bugs I've noticed yesterday I
00:20:50
◼
►
went through and I'm just knocking them
00:20:52
◼
►
out and it's kind of like this I work
00:20:55
◼
►
all the way down till I have no bugs and
00:20:57
◼
►
then I make a build and then I go
00:20:58
◼
►
through the process again and you kind
00:21:00
◼
►
of just keep cycling through collecting
00:21:02
◼
►
as you go and for me that kind of just
00:21:05
◼
►
that kind of process of just keeping
00:21:08
◼
►
this running log tea seems to work well
00:21:10
◼
►
it I like doing it that way rather than
00:21:13
◼
►
kind of you know having like sitting
00:21:17
◼
►
down and just testing for hours never
00:21:19
◼
►
really works for me I find that I get
00:21:20
◼
►
kind of bored or I start doing the same
00:21:23
◼
►
patterns over and over again and so it's
00:21:25
◼
►
better I think for me I'd try and do it
00:21:26
◼
►
spread it out throughout the day and
00:21:28
◼
►
obviously if it's an application that
00:21:29
◼
►
you would use normally and naturally
00:21:32
◼
►
throughout the day then this makes it
00:21:33
◼
►
easier but otherwise you just kind of
00:21:36
◼
►
have to sort of remind yourself to do it
00:21:39
◼
►
and this is also a little bit tricky if
00:21:41
◼
►
you have an app that requires a certain
00:21:44
◼
►
amount of time for testing so like for
00:21:47
◼
►
example I have a sleep tracker like in
00:21:48
◼
►
order for it to really like like I
00:21:51
◼
►
cannot compressed beyond just running it
00:21:53
◼
►
on multiple devices the testing of that
00:21:56
◼
►
because it takes about eight hours to
00:21:58
◼
►
have eight hours of data collection and
00:22:00
◼
►
like I have simulated stuff in the app
00:22:03
◼
►
for you know when I'm doing like debug
00:22:05
◼
►
testing that I can kind of like create a
00:22:06
◼
►
night's data and run my algorithms on it
00:22:09
◼
►
but for actual testing there's nothing
00:22:11
◼
►
you can really do other than wearing
00:22:13
◼
►
local watches which is what I do like
00:22:15
◼
►
when I'm doing extensive sleep you know
00:22:17
◼
►
testing like I'll have all my watches on
00:22:19
◼
►
my wrist during the night and I'm
00:22:21
◼
►
running it you know three or four times
00:22:22
◼
►
but you know sort of in the same way I
00:22:24
◼
►
imagine for you with overcast like
00:22:26
◼
►
there's a certain amount if you just
00:22:26
◼
►
have to play a lots of audio because if
00:22:29
◼
►
you don't you're never going to find all
00:22:31
◼
►
the weird audio issues or glitches or
00:22:33
◼
►
problems there's nothing that you can
00:22:35
◼
►
really do to speed that up or compress
00:22:37
◼
►
that testing yeah basically I mean I
00:22:40
◼
►
like I just find ways to shove podcasts
00:22:44
◼
►
into more of my life so so like you know
00:22:47
◼
►
like like ivories and and also to test
00:22:48
◼
►
out things like syncing you know like
00:22:50
◼
►
this my syncing engine took forever to
00:22:52
◼
►
really figure it mean took me almost a
00:22:53
◼
►
year to really nail syncing and one of
00:22:57
◼
►
the ways I started finally getting
00:22:58
◼
►
better at that was I started needing it
00:23:00
◼
►
more because I started using an iPad to
00:23:02
◼
►
play podcast in the kitchen and I used
00:23:04
◼
►
my iphone to play them everywhere else
00:23:06
◼
►
so I will I was very frequently
00:23:08
◼
►
switching between multiple devices that
00:23:10
◼
►
would use the sink back-end and just by
00:23:12
◼
►
doing that myself but by needing that
00:23:14
◼
►
myself for a few months I really fixed a
00:23:17
◼
►
ton of sink problems and got it to a
00:23:18
◼
►
pretty good place now and and so yeah I
00:23:21
◼
►
mean it really is just a matter of just
00:23:23
◼
►
you know again it's like if you only
00:23:25
◼
►
make apps that you will use a lot this
00:23:27
◼
►
becomes a lot easier if if you don't
00:23:30
◼
►
make apps that use a lot this you know
00:23:32
◼
►
you're gonna have to find other ways to
00:23:33
◼
►
do this effectively but it really works
00:23:36
◼
►
that great for me and and I I will again
00:23:38
◼
►
once again go in briefly about beta
00:23:40
◼
►
testing also and and we pretty sure we
00:23:43
◼
►
did a whole episode on it if not we will
00:23:45
◼
►
and we should but I think we already did
00:23:46
◼
►
we have so many episodes now I've kind
00:23:48
◼
►
of lost track
00:23:49
◼
►
but I do rely a lot on beta testers to
00:23:53
◼
►
to really do like a final a final check
00:23:56
◼
►
on the app they aren't my number right
00:23:58
◼
►
there are my first testers I am my first
00:24:00
◼
►
tester and I I will usually use changes
00:24:03
◼
►
to the app for weeks or even months
00:24:05
◼
►
before I give it to anybody else to test
00:24:07
◼
►
just because I really want to make sure
00:24:09
◼
►
that I know I have feel for it make sure
00:24:10
◼
►
it's good make sure it's the right
00:24:12
◼
►
choice and then I will finally share
00:24:13
◼
►
with testers like right before the
00:24:14
◼
►
public gets it but basically beta
00:24:17
◼
►
testers can can help a little bit not a
00:24:19
◼
►
ton but but a little bit I will also add
00:24:23
◼
►
that the what you mentioned earlier
00:24:26
◼
►
about your workflow about taking taking
00:24:28
◼
►
screenshots and then adding arrows and
00:24:29
◼
►
then adding them to OmniFocus and things
00:24:31
◼
►
like that there if you want to go off
00:24:33
◼
►
the deep end there are lots of crazy
00:24:35
◼
►
tools and frameworks that automate that
00:24:37
◼
►
process to varying degrees and have all
00:24:39
◼
►
sorts of cool integrations so there are
00:24:40
◼
►
some like you know like I made bug shot
00:24:42
◼
►
kit which is basically shoved bug shot
00:24:45
◼
►
into an app as you could do things like
00:24:47
◼
►
it will detect screenshots being taken
00:24:50
◼
►
and then automatically bring up a modal
00:24:53
◼
►
controller with the screenshot setting
00:24:54
◼
►
here mark this up and send it in to
00:24:56
◼
►
report a bug you know and you can you
00:24:57
◼
►
can give that to all your testers and
00:24:59
◼
►
you can use that yourself during your
00:25:00
◼
►
test process and so you can basically
00:25:01
◼
►
have like easy or automated bug
00:25:03
◼
►
reporting right right embedded into your
00:25:05
◼
►
app and there's again there's lots of
00:25:08
◼
►
ways to do this I'm not gonna recommend
00:25:09
◼
►
any particular one because I haven't
00:25:10
◼
►
looked but there are many diseases exist
00:25:12
◼
►
now and you can you can really go off
00:25:14
◼
►
the deep end with like the levels of
00:25:16
◼
►
integrations you can have it like post
00:25:18
◼
►
to slack and then it make an entry in
00:25:20
◼
►
your bug tracker like all sorts of crazy
00:25:22
◼
►
things you can do now if you really want
00:25:23
◼
►
to get into all that stuff so the you
00:25:25
◼
►
know the options are pretty good for now
00:25:27
◼
►
for like tools and frameworks and things
00:25:29
◼
►
like that to automate like the the
00:25:31
◼
►
tedious stuff but for the for the real
00:25:34
◼
►
just using the app really just again
00:25:37
◼
►
just using it a lot yourself is a very
00:25:40
◼
►
very effectively to do it obviously as I
00:25:42
◼
►
know automated things exist sorry Casey
00:25:43
◼
►
again but just using your app yourself
00:25:45
◼
►
will show you so much and will tell you
00:25:47
◼
►
so much and will tell you will show you
00:25:48
◼
►
things like you know this this workflow
00:25:50
◼
►
is kind of clunky or this animation
00:25:53
◼
►
doesn't really look right or this I I
00:25:55
◼
►
really need this text to be lighter when
00:25:57
◼
►
it's really sunny outside or something
00:25:58
◼
►
like that like there's a large category
00:26:01
◼
►
of either problems or or good and bad
00:26:04
◼
►
design decisions for which just using
00:26:07
◼
►
yourself is really the only way to know
00:26:08
◼
►
and the really the only way to test and
00:26:10
◼
►
that isn't true for everything obviously
00:26:12
◼
►
sorry again Casey but that's true for
00:26:14
◼
►
quite a lot that we do in our apps and I
00:26:16
◼
►
think with other thing I would say with
00:26:18
◼
►
beta testing that's an important thing
00:26:19
◼
►
too it's another use for beta testing is
00:26:23
◼
►
the importance of not overly preparing
00:26:26
◼
►
your beta testers for what you know for
00:26:30
◼
►
the app so in terms of trying to give
00:26:32
◼
►
him giving them an experience that is
00:26:33
◼
►
similar to the experience that your app
00:26:36
◼
►
store users are going to have
00:26:37
◼
►
and so when they download the app and
00:26:40
◼
►
they're like what do I do or this is
00:26:42
◼
►
really confusing like some of the best
00:26:44
◼
►
feedback I get from beta testers is sort
00:26:46
◼
►
of accidental where they're not actually
00:26:49
◼
►
they don't know it but they're telling
00:26:51
◼
►
me something is fundamentally flawed or
00:26:53
◼
►
is really confusing where they're asking
00:26:55
◼
►
a question that like it implies missing
00:26:58
◼
►
a fundamental misunderstanding about
00:27:00
◼
►
something and that kind of feedback is
00:27:02
◼
►
always really good and so I try whenever
00:27:03
◼
►
I'm beta testing to just almost like
00:27:06
◼
►
blindly send out the betas to people
00:27:08
◼
►
where I'm not giving them too much
00:27:09
◼
►
preparation or tell are like giving them
00:27:11
◼
►
step-by-step walkthroughs or details
00:27:13
◼
►
it's very much like as though you just
00:27:16
◼
►
downloaded this from the App Store you
00:27:17
◼
►
know maybe you've seen a screenshot or
00:27:18
◼
►
two maybe you've had a high-level
00:27:20
◼
►
discussion but you're working it out
00:27:22
◼
►
just as you would as a regular user and
00:27:24
◼
►
that's a great test because have you as
00:27:28
◼
►
the developer of the app of ously I know
00:27:30
◼
►
how everything works everything is
00:27:32
◼
►
intuitive to me because that's the way I
00:27:34
◼
►
made it but it is often not that not the
00:27:37
◼
►
case for your users and so one of the
00:27:39
◼
►
best uses for beta testing isn't it's
00:27:41
◼
►
great when they find you know actual
00:27:43
◼
►
bugs and issues and problems but it's
00:27:45
◼
►
also it's really useful for capturing
00:27:47
◼
►
those kind of like it's like if you're
00:27:49
◼
►
asking this question you clearly have
00:27:51
◼
►
not communicated the purpose of this
00:27:53
◼
►
feature correctly or I've hidden it in a
00:27:55
◼
►
weird way or you think it should do
00:27:57
◼
►
something and it does the opposite and
00:27:58
◼
►
those are the only thing that is almost
00:28:01
◼
►
exclusively possible to find in beta
00:28:05
◼
►
testing because no matter how hard you
00:28:07
◼
►
try to kind of like reset your brain to
00:28:10
◼
►
what if I was a fresh user opening the
00:28:11
◼
►
application it's kind of impossible
00:28:13
◼
►
where you know I the current app I'm
00:28:15
◼
►
working on I have been working on it
00:28:17
◼
►
essentially every day for months at this
00:28:20
◼
►
point so I'm so in it that I just don't
00:28:24
◼
►
see it's like I'm so far into the woods
00:28:26
◼
►
that I have no idea that there is a
00:28:27
◼
►
forest like all I have is trees like it
00:28:29
◼
►
is deep down into it I mean and maybe
00:28:33
◼
►
when I come back to it and a couple of
00:28:35
◼
►
you know like I'll put the app to the
00:28:37
◼
►
side for a little bit and I'll come back
00:28:39
◼
►
to it and maybe a month maybe I'll I
00:28:40
◼
►
will have that kind of fresh experience
00:28:42
◼
►
but until that time the only way I can
00:28:45
◼
►
get that is with beta testing and so it
00:28:46
◼
►
is definitely a valuable and important
00:28:48
◼
►
aspect of that
00:28:49
◼
►
all right and I guess we're gonna see
00:28:52
◼
►
your new app pretty soon right yeah it
00:28:54
◼
►
should be hopefully launching next week
00:28:57
◼
►
so should be kind of exciting and I
00:29:00
◼
►
expect to go home sure we'll talk about
00:29:01
◼
►
on the show how the lunch went and kind
00:29:03
◼
►
of some of the details of it as the app
00:29:05
◼
►
goes but it is very exciting to get to
00:29:07
◼
►
this point and I will say as you know
00:29:09
◼
►
it's like stalking all the other
00:29:10
◼
►
independent developers out there it's
00:29:12
◼
►
like like I just put in the work because
00:29:15
◼
►
there's definitely been times in this
00:29:16
◼
►
project where I was like oh gosh what
00:29:18
◼
►
have I gotten myself into maybe I should
00:29:20
◼
►
just like can this project move on but
00:29:22
◼
►
there is hope eventually we'll get there
00:29:23
◼
►
eventually we'll ship and it is
00:29:26
◼
►
when you get there can't tell you a
00:29:28
◼
►
secret to the audience you can I know
00:29:30
◼
►
what this is and I've used it and it's
00:29:31
◼
►
really good so look forward to it anyway
00:29:34
◼
►
thanks a lot for listening everybody
00:29:35
◼
►
we're out of time this week and we'll
00:29:37
◼
►
talk to you next week bye