View on GitHub

Tatsuya "Brian" Moriguchi

Personal iOS mobile development projects

< Back to Portfolio July 26, 2022

Mobile App QA Engineering Topics

(A partial list of mobile app QA engineering topics learned)

Tatsuya “Brian” Moriguchi

Test Plan and High Level Procedures

Your step-by-step mobile application testing process July 26, 2022

Agile Testing and Continuous Integration

With an average sprint lasting 10 days, this means mobile app testing and preparation occurs throughout the entire development lifecycle. QA teams usually need to write test cases, while Dev teams are developing so that testing can happen in a short window at the end of the sprint.

Compared to Agile, CI is more of an iterative approach, in which code is developed in small, continuous updates and releases. Rather than testing an entire mobile application in a sprint, QA teams can test portions of a feature, or maybe 2 out of the 5 features done in that sprint. As code is produced in smaller segments, it is tested. End-to-end testing usually occurs prior to a release at the end of the sprint.

1. Test scope & coverage

Identify Testing Locations

Localization testing, which tests your app in a variety of locations and languages

Decide Device Coverage

2. Plan mobile app tests

break the strategy down into a plan of action, detailing who / what will execute your tests and on what timeline. An essential component of this step is preparing test suites: writing test cases or test scripts for automated testing.

Manual v Automated Testing

Automated testing is useful to verify repeated tasks and solid code. The drawback is that writing and updating the test scripts to verify an app’s standard features can be time consuming. automated scripts cannot substitute for ‘in the wild’ testing.

Write Test Cases

How to Write a Test Case for Your Project and Your Team

Identify Testing Approach / Partner

When selecting testers (either with a crowdsourced QA company, or on your own), it is advantageous to use testers who are similar to your users.

3. Execute app testing

CI Systems and manaual testing in parallel

4. Track and manage defects

The key here is correctly prioritizing defects. Defects can be tracked in a project management software like JIRA.

5. Review!

One option is to create <a href = “https://testlio.com/blog/8-steps-to-building-an-effective-qa-test-summary-report-for-mobile-applications/”a test summary report.</a>

Types of Test

Testing basics | Functional vs non-functional by Circle CI July 25, 2022

Functional Testing: Confirms the code is doing the right thing, sets of specifications, no work-around Non-Functional Testing: Confirms the code is doing it in the right way, properties that contributes the end user’s experiences

Hieralchy of Testing
6. Manual & Exploratory Tests
5. Automated GUI Tests
4. Acceptance Tests
3. Integration Tests
2. Component Tests
1. Unit Tests

Interruption Test

Unit Test

HOW TO GET STARTED WITH IOS UNIT TESTS IN SWIFT July 19, 2022

  1. How to setup your Xcode project to support unit tests.
  2. How to make your app code available for unit testing (@testable import yourApp)
  3. How to create individual unit test cases.
  4. How to write a basic iOS Unit test.
  5. How awesome it is to be protected from regressions.

Getting Started With Unit Testing in Swift (XCTest, Test Cases, Code Coverage) July 12, 2022

UI Test

UITesting iOS Tutorial July 12, 2022

Test Scenarios and Test Cases

Mobile App Testing Scenarios & Test Cases July 14, 2022

Mobile Apps Testing: Sample Test Cases & Test Scenarios July 14, 2022

9 Mobile App Test Cases July 14, 2022

The Top 25 test Scenarios for Mobile Applicaiton Testing in 2022 July 14, 2022

JIRA Bug Tracking

jira Bug Tracking Tool Tutorial for Agile 🕷 Jira Bug Life Cycle July 25, 2022

CI/CO

iOS Continuous Integration Setup with CircleCI July 24, 2022

How do multiple developers work together on the same Xcode project? Version Control, Git/Github

DevA and Dev B both pulling code to make a local copy of a repository v1 from Github. Dev A commits v2 back to the repo “committing/pushing/checking in your code” all the same meaning Dev B trying to commit her v2 to the repo, Git detects the master source code has been changed (by Dev A) since Dev B checked it out at the last time. Dev B has to merge, which means getting the changed master code first and merge it with her local copy, fix whatever necessary then commit back to the repo.

How does a dev ensure that his code doesn’t break the project? (Team of ten devs working on the same repo may produce a problem)

Answer: Unit testing

Break down your code into pieces of code. Write a test case, called unit test with dummy data. Cannot cover all bugs, but you can sue it as the base line.

How do multiple devs maintain a consistent coding style? Keep Coding convention and coding style i.e. if i == 0 { } If i == 0 { } How many empty lines should be between two functions Use SwiftLint to enforce coding convention and code style.

  1. Before checking in any code into the repo, pull any updates and merge any changes properly.
  2. Make sure that all the init tests still pass.
  3. Run the lint tool and fix any code that doesn’t conform to the style guidelines set forth by the team.

Continuous Integration Ci is. a process that monitors the repo and runs various checks and balances to ensure that the source code is in tiptop shape. CI ensures automatically build the project to make sure it runs, all unit tests are passed, Lint tool to check for code that doesn’t adhere coding conventions. Send a successful build to a QA environment or deliver iTunes for deployment into the App Store. These are automatically done by running on a specified schedule or whenever checks in code. If broken, notify appropriate people to fix the problem.

Commit to make a change to the local repository Push the code to the remote repository use the “git push” command to push the commits on the local repository to a remote repository.

Circle CI

Set up configuration file .circleci/config.yml

Set up Xcode scheme, which specifies which targets you want to build, what tests you want to run, what configuration do you want to use, etc.

Xcode/Manage Scheme/Check on Shared Commit and Push to Github

config.yml

Jobs: job1: steps: - checkout - run command - run command - save output job2: steps: - - job3:

workflows: // you can specify which job you want to run workflow1: jobs: - job1 - job3

Fastlane works with Circle CI and helps tedious process automatize. Integrate lint tool to check coding style to Circle CI as a job.

Automate iOS Deployment to App Store Test Flight Using Fastlane July 21, 2022

May become tedious to manually build your app by opening Xcode, select Generic for a deice type, set a version number, run Archive, and open a web browser to upload the build to App Store Connect and TestFlight.

Fastlane is a commandline tool to automate to build and release mobile apps.

What is Docker? July 21, 2022

Appium vs CircleCI: What are the differences? July 21, 2022

TDD & BDD

TDD and Unit Testing in iOS | Part 3 View Controllers July 27, 2022

TDD and Unit Testing in iOS | Part 2 Stateful Objects July 26, 2022

TDD and Unit Testing in iOS | Part 1 Stateless Objects July 25, 2022

BDD vs TDD (explained) July 14, 2022