Date post: | 15-May-2015 |
Category: |
Technology |
Upload: | christoph-lueckler |
View: | 271 times |
Download: | 0 times |
Mobile Software Development
Portfolio
Topics
• GIT
• Continuous Integration
• Testing & Deployment
• Android Build System
GIT
GIT• Distributed version control system
• Initial release 07.04.2005
• Strong support for non-linear development
• Efficient handling of large projects
• Toolkit-based design
GIT• Pros:
• Speed
• Work offline
• Branching and tagging
• Customizable
GIT• Git objects:
GIT• Create new branch:
$ git branch testing
GIT• Checkout branch:
$ git checkout testing
GIT• Merge branch:
$ git merge testing
GIT• Workflow:
Continuous Integration
Continuous Integration• Extreme Programming (XP)
• Test-Driven Development (TDD)
• Prevent integration problems
• Continuous builds
• Automate distribution
Continuous Integration
Extreme Programming• Short development cycles
• High frequent releases
• Pair programming
• Flat management structure
• Good structured code
Test-Driven Development
Run tests see new failure
Add a test
Write some code Run tests see all pass
Refactor
Jenkins• Open Source (http://jenkins-ci.org)
• Supports several build tools (Gradle, LLMV, …)
• Used in organizations (Facebook, Yahoo, Dell, …)
• Easy installation
• Plugin support
Jenkins
Bots• Build, analyze and test apps
• Need OSX Server 10.9 (XCode Service)
• GIT & SVN support
• Build & test statistics (GUI)
• Manage Bots via Log Navigator or Web Browser
Bots
Testing & Deployment
• Unit testing
• Integration testing
• System testing
• Acceptance testing (Beta Tests)
Test levels
Unit Tests
• Test the result not the implementation (Compare result with specification)
• White-Box-Test
• n * functions == n * tests
• Method could contain bugs
• Prevent new issues
Alpha & Beta Testing• Alpha Testing:
• Internal user acceptance test
• Tested by potential users or test team
• Should be done before beta testing
• Beta Testing:
• External user acceptance test
TestFlight• Free service
• Distributing apps for Adhoc-Testing
• Supports Android, iOS and Windows
• Supervise testers
• Own SDK to monitor app performance
Crittercism• Free service / Subscription plans
• Monitor live app performance
• Collect crashlogs and evaluate them
• Github issue integration
Google Analytics• Live statistics from where the app is running
• Track usage to optimize further releases
• Gather device information
• Custom variables available
• Can track crashes and exceptions
Google AnalyticsKärnten Card iOS App, 19.06. - 30.09.2013
Android Build System