Quality Assurance Guidelines for Mobile App Development

Post on 14-Apr-2017

330 Views

Category:

Mobile

0 Downloads

Preview:

Click to see full reader

Transcript

Moqod quality assurance

guidelines

quality standards

02

Vision:

At Moqod it’s our main goal to deliver high-quality software. Ideal world software

quality standard is completely bug-free software. We strive to deliver bug-free

software.

Definition of a bug:

Bug is an error, flaw, failure, or fault in a computer program or system that causes

it to produce an incorrect or unexpected result, or to behave in unintended ways.

(Wikipedia).

key points

03

Quality standards:

Therefore software quality standard at Moqod is simple and straight forward -

“Software functions as expected”. As expected means as specified and described

in the project functional documents and artefacts.

But this doesn't mean blindly following the docs. Because of continuous

communication with the customer, “software functions as expected” also means -

as expected by the customer and the end-user.

key points

04

The following points apply to all projects to ensure highest possible quality of the

software products:

● Moqod employs a dedicated full-time QA engineer.

● QA engineer must be introduced to the project at the earliest stage possible.

● All issues must be reported and document to a tracking system! Otherwise

the issues can be disregarded. This concerns all project stakeholders (dev

team, QA engineers, PMs, Customers etc).

general rules

05

● QA engineer at Moqod is the main quality gate.

● We praise proactive approach in solving problems. This includes: fast

reaction on reported issues, self-driven problem solving, looking at all

possible sources to quickly localize and solve a problem.

● We praise transparency through our whole workflow. The customer is in

direct contact with the team and is encouraged to ask/answer questions

from the team.

● Device, browser and OS compatibility will be stated in the project

specification. The product will be tested in these environments.

general rules

06

software development quality gates at moqod

Code review

Automated

test scripts (optional)

Manual testing

Regression

tests (Manual and automated)

code review process

08

Code review is the first step in delivering quality software. It helps to identify

potential errors at early stages. Currently at Moqod P2P code review is in place.

Code review is done in the following way:

1. All developers pair up.

2. Every day every developer spends up to one hour to review the code of his

partner. One developer shows pull of changes during the last 24 hours and

describes the tasks he had to resolve. His partner evaluates the solution and

adds his comments or suggestions. Once the review is done, developers

switch roles.

3. Every month tech lead reviews and when needed changes the pairs.

code review process

The main advantage of this approach is that the reviewer understands

the context and all details of the solution from his partner.

Automated test scripts AWS Device Farm

10

For the maximum coverage of test devices Moqod offers automated testing using Amazon Device

Farm and automated test scripts. This is an optional item that can be added to a project quote.

How this works:

1. Create a list of test cases for the app. Coverage to be discussed.

2. For iOS Apple UI automation is used as an instrument. For Android Robotium Framework.

3. These scripts will be run on AWS Device Farm to perform the test cases on the target

devices.

4. Afterwards the test scenarios can be run at any time with a mouse click, automating

regression tests.

Important:

AWS Device Farm uses real devices, so we get a coverage and environment close to real life.

Automated test scripts AWS Device Farm

12

It is highly recommended to cover backend (web API calls, database calls,

front end and admin section) with unit tests and run these automatically on

staging environment with every deploy.

This ensures all APIs and so clients (mobile, front-end etc) will remain

intact and will funcion properly. Otherwise, the problem can be identified at

the moment changes are deployed to staging.

API Unit tests

13

Due to the specific nature of mobile development (data access, device

location, different hardware and software environments etc) manual testing

is the key component in QA process. During the manual testing we use

various monkey scripts and monitoring tools for all mobile platforms.

Manual testing process

rules and guidelines for manual testing process

15

1. QA engineer reviews project documentation. a. Documentation is sufficient – go to step 2.

b. Otherwise, the documentation is to be revised by the Customer and PM.

2. QA engineer estimates the amount of work needed for testing.

3. The team plans iterations and release dates for interim milestones and

final release.

Stage 1. QA Planning

16

1. At the end of every iteration upon delivery of an interim milestone a testing

round is held.

a. Functional tests are executed on newly delivered features.

b. Regression tests are executed on previously delivered features.

Stage 2. Interim release testing

17

2. The results of interim release test are:

a. Delivery successful. QA engineer approves the release. The build is sent to

customer together with a short report containing release notes. Go to step 3.

b. Delivery failed. QA engineer rejects the release. The build is not sent to

customer. A report with action plan is provided to customer. The release is sent

back to dev team for the needed fixes. However, a PM can still provide the build

to Customer to showcase the progress.

Stage 2. Interim release testing

18

3. Customer receives the build. Possible actions:

a. Customer accepts the build and signs off the milestone as is.

b. Customer rejects the delivery and the release is sent back to dev team for the

needed fixes.

c. Customer accepts the build and signs off the milestone, but with minor

feedback and comments. This feedback is added to backlog for future

releases.

Stage 2. Interim release testing

19

1. Upon reaching final milestone a complete acceptance test is executed on the

product. QA engineer reviews all use cases to check against the actual functionality

of the product.

2. GUI testing is held on the final delivery. All screen dimensions, fonts and colors

need to be checked.

Stage 3. Final release. Acceptance testing.

20

3. The results of Acceptance testing can be:

a. Release accepted by QA engineer. The build is sent to customer

accompanying acceptance report. The report contains a list of all use cases

and test results against the use cases (success/failed). The product is

provided to customer for sign off.

b. Release is rejected by QA engineer. The product is not provided to customer

for acceptance. A report with further action plan is sent.

Stage 3. Final release. Acceptance testing.

21

4. Customer reviews the final product delivery:

a. Customer accepts the delivery and signs off the project. The product is

processed to Store upload or live environment.

b. Customer accepts the delivery and signs off the project, but with some

comment or improvements. The product will still be sent to store or live

environment. The feedback will be taken into new version of the product as a

separate statement of work

c. Customer rejects the delivery and the release is sent back to dev team for the

needed fixes.

Stage 3. Final release. Acceptance testing.

QA Engineer responsibilities and authorities

23

At Moqod a QA engineer is the main jury who is in charge to accept or reject the

work. The list of responsibilities of a QA engineer is the following:

●  Accept/reject deliveries.

●  Help find the root cause of a problem.

●  Review and accept/reject project documentation.

●  Report to PM and dev team upon results of testing.

●  Set specific rules for QA process on projects.

●  Ensure all project stakeholders follow the rules and process.

QA Engineer responsibilities and authorities

01

MQD BV

Amsterdam, the Netherlands

+31 20 893 2331

info@moqod.com

top related