Meego Wiki
Views
From MeeGo wiki
Revision as of 04:28, 3 June 2011 by Xiaoqiang0 (Talk | contribs)
Jump to: navigation, search

Contents

MeeGo Package Management and Update Test Plan

Component Summary

Package Management and Update is an important way for system function expansion, stability enhancement and issue fix. The Mechanism of software installation and update decide the MeeGo system's security and the complexity of user operation. Software Installation and Update application currently contains 2 components:

  • Package Manager: Manage all packages; user uses it to install or remove packages; it can auto resolve packages' dependency and make a security check for packages' signature and integrity.
  • System Update: Update those obsolete package in system or OS update .It provides an easy and fast way to fix old packages' issue or enhance system function and stability for users.

Feature to be Tested

The features listed here are all from Package management feature zilla, Package managment and OS update(and software management) test will cove all these features with required priority, at the same time, the test will also cover other features which are not listed in this table, such as package management GUI, CLI, i18/l10n etc.

Feature ID Feature Feature Set Comments
11231 [FEA] download package should be supported in Core OS. Package managment (GUI/CLI) Test Case: pkcon download [directory] [packgename]
11130 [FEA] search file support in Package Management Subsystem Test Case: pkcon file name [full-path-name]

eg: pkcon search file /usr/bin/gedit, if gedit is installed "Installed" status would be show, other wise "Avaliable" status would be show

9698 [FEA] [MASTER] Package Management and App Lifecycle .
9378 [FEA] Total download size Test Case:
  • pkcon get-detail [packagename]
  • pkcon get-update-details [patch name]
9377 [FEA] Parallel SW downloading .
9375 [FEA] Multiple SW installation .
9374 [FEA] SW update bearers .
9371 [FEA] Full stack SW update .
9370 [FEA] Install SW from vendor source .
9369 [FEA] Support for stand alone installation from .rpm files Test Case: pkcon install-local XXX.rpm
9367 [FEA] Dependency management fetch new SW already verified please referenced the comments in featurezilla.
9366 [FEA] Dependency management .
9365 [FEA] Installation progress Already integrated an verified, please refrenced the comments in feature zilla.
9361 [FEA] Independent SW delivery .
9359 [FEA] Update notification .
9358 [FEA] Uninstalling user installed SW .
9356 [FEA] Download state handling .
9355 [FEA] Download error handling Steps test this feature:
  • Set proxy if needed.
  • Zypper install qt-web-runtime-examples,
  • check the status of downloading:
  ls -l /var/cache/zypp/packages/core/i586/
  • killall -9 zypper
  • zypper install qt-web-runtime-examples and check rpm in

/var/cache/zypp/packages/core/i586/ to see if it’s resume downloading.

9354 [FEA] Download progress indication Already integrated an verified, please refrenced the comments in feature zilla.
8003 [FEA] OSV independent package manager API .
7864 [FEA] Protected Data Update .
11184 [FEA] Configure applications to store their settings in ~/.config/ Application managment .
9380 [FEA] Application revocation .
9376 [FEA] Support for .install file .
9373 [FEA] Unistalling vendor pre-installed 3rd party applications .
7863 [FEA] Multiple Application Classes .
4856 [FEA] Installed Application List - App Usage statistics .
4855 [FEA] Installed Application List - App Size This feature can be down with following steps:

1) got all the application installed on system:

     pkcon search group Application filter=installed

2) get the size of eatch application:

     pkcon get-detail [packagename]

There are related PackageKit Dbus API used in these two steps.

4854 [FEA] Installed Application List - App Location .
4852 [FEA] Application removal .
4851 [FEA] Application Update Installation This feature has already been integrated in PackageKit now.

Test case steps:

   * Prepare update repo
   * pkcon get-updates
   * pkcon update <updatesname>  
4850 [FEA] Application Update-Check Scheduling This feature should be implemented in Package Management UI
4849 [FEA] Application Update Notification This feature should be implemented in Package Management UI
4848 [FEA] Installed Application List use "pkcon search group Applications --filter=installed" to test this

feature.

4847 [FEA] Application Installation Test Case:
 pkcon install-local XXX.rpm
4846 [FEA] Application Download pleaes use the following steps to verify this feature:
  • set proxy if needed
  • refresh repo cache if needed (pkcon refresh)
  • Using "pkcon download . PackageKit-docs" to download applications
4845 [FEA] Available Application Announcement Test Case:
 pkcon search group Applications  --filter=~installed
4844 [FEA] Application Discovery Test Case: pkcon search group Applications --filter=~installed
2731 [FEA] [MASTER] Application lifecycle .
10910 [FEA] MeeGo Package Changelogs are broken Package validation .
9372 [FEA] Update error handling .
9368 [FEA] Installation error handling .
9357 [FEA] Support for Security FW in package manager .
9379 [FEA] Selected repository refresh Package repos .
9360 [FEA] Enabling SW sources .
9363 [FEA] Prioritized OS update System/OS update (GUI/CLI) .
9362 [FEA] OS update and enough disk space for updates .
8007 [FEA] lsb_release support .
7842 [FEA] OS Update .
7841 [FEA] Services Upgrade .
7840 [FEA] Firmware Upgrade .

Feature not to be Tested

  • Independent applcations functionalities testing: Packages/Applictaions installation/update/remove are in package management test scope, but applications themselves functionalities are not in this component's test coverage;
  • System update will only update from default distribution repos, unconfirmed new OS update will not in this scope;

Test Strategy and Approach

Isolate logical function testing from GUI testing: Package managment and system update are to be validated from two perspectives, logic function testing and GUI testing. The former focuses on features’ functionalities, while the later dedicates to UI visual appearance and user interaction. As the characteristic of event driven application, there are multiple event paths can reach the same function. Although separated from GUI layer, logic function testing is still achieved by go through one of equivalent event paths in GUI navigation, leaving most of event paths being covered in GUI testing.

Focus on features new implemented or customized for MeeGo system: The basic idea is to validate the MeeGo Software manager and system update functions from the end users’ perspective. Test efforts will mostly be taken on the features new implemented or customized for MeeGo system.

Software manager Test Strategy: Besides the MeeGo distribution repositories, QA package repository server will also be setup to simulate scenarios of package installation and updating. Below scenarios will be covered.

  • Network protocols of package repository server: HTTP/HTTPS/FTP
  • Publish new packages.
  • Publish upgrade version of installed package.
  • exception handler

System update test strategy: Test system update from the end users' perspective, check the user private setting and data remains after the updating of system, this test simulates tow user updating scene: update system day by day and once update from final release image to the latest status.

Package security installation test strategy: Packages security installation depends on MeeGo's signature validation mechanism, both of released repository and released packages have MeeGo's official signature. Set up various signature package and repository to simulate a real situation.

Test automation:

  • OS update need tester manually check update status, and need also check whether it can workable after update process, so it's hard to automation the test like other GUI or midware components;
  • Pakcage management automation need more investigation. [TBD]

Test Design

Test Points

Package management and OS update test will from end user side, follow the test design guideline and application test design method, and refer to other similar dirtibution OS like fedora, then get the following test point:

Feature Set Test Point
Package repos
  • Repo files
    • Default repo files stays in right folder
    • Default repo can work while using them to install packages
  • Third-party or Customized repository
    • Add a customized repo, check whether package manager could detect it
    • Install pakcages from customized repo and check whether it can work
Package/Application Manager GUI and functionality
  • GUI layout and navigation
    • Check buttons' layout
    • Check UI theme
  • Package searching and reviewing
    • Search a specific package and check results
  • Package installation and removing
    • Install a package from UI
  • Package list refresh
    • Refresh list and check the changes
  • Software catalogs
    • Enable repos and check whether they can work
    • Disable repos and check whether they can work
  • Software log viewer
  • Desktop Files
    • Check these application desk files from home screen or other place
Package/Application Manager command line
  • Package searching and reviewing
    • pkcon search [name|details|group|file] [data]
    • zypper search
  • Package installation and removing
    • pkcon/zypper remove
  • Package updating and recovery
    • pkcon dist-update
    • zypper
  • Package status Synchronization
    • pkcon refresh
    • zypper refresh
  • Package operation progress(install/download)
    • pkcon [directory] [packages]
    • pkcon install
  • local rpm installation
    • pkcon install-local XXX.rpm
  • get the size of package and update(patch)
    • pkcon get-update-detail [patch name]
    • pkcon get-details [package]
Package validation
  • Repository signature
    • Packages and repository signature validate
    • Install a package without signature, and check the behavior of pakcage manager
  • Package error handling
System/OS update GUI
  • GUI layout and navigation
  • Patches updating
    • Search updated patches
    • Install patches
    • Patches auto check
  • Update notification
    • Enable default built-in repo
    • Check whether there is notification while repos have some updates
  • Update preferences
    • Set and check update interval
    • Set and check update types
System/OS update from CLI
  • OS update searching and reviewing
    • pkcon search
    • zypper search
  • OS update and recovery
    • pkcon upgrade
    • zypper dist-update
    • ...
System/OS update effect
  • Private date remains unchanged
    • User configuration data for system
    • Application private data, for example private data from browser, media applications
  • System can be recovered
  • System sanity
I18N & L10N
  • All text strings in softeare manager and system update UI should be internationalized
  • Chinese Simplified Translation

Conditions

Mainly for the conditions that the application will meet, maily introduced by platform characteristic. For example, devices may in different wireless environment, users may use different input methods to write, etc.

Item ID Name Details Comments
1 Wired network

Connects to wired network:

  • Using proxy
  • Without proxy

Method to set proxy

  • set proxy in repo file: add "proxy=hostname:port" to special repo file, if you want to diable proxy for special repo, add "proxy=_none_";
  • set proxy in terminal: export http_proxy=hostname:port, which is used for command line
2 Wireless network

Connects to wireless network:

  • Using proxy
  • Without proxy
.

Test Environment

Network

  • Internal network uses proxy to access repos
  • Access repos directly without any proxy

Hardware Platforms

  • Netbook
  • Handset
  • Wired network
  • Wireless network

Tools

  • Customized repo server
  • Refer to MeeGo netbook OS

QA Contact

  • huajun.li@intel.com

Developers

  • Zhang Qiang <qiang.z.zhang@intel.com>

How to report a bug

For Package Management component issue, please catch more logs and attach them when you reporting a bug.

Steps to get logs:

  • Setup system Environment
  • Install PackageKit-debuginfo, libzypp-debuginfo, which should match the version of PackageKit/libzypp
  • start packagekitd manually. In one terminal execute:
   #killall -9 packagekitd
   #/usr/libexec/packagekitd -v >packagekitd.log 
  • In another terminal execute your script/command to reproduce bug.
  • Then you'll get packagekitd.log and /var/log/pk_backend_zypp, and these two log files are very important to fix bug in the first time. Please attach them.

Please pay attention to above suggestion, then we can shorten bug period, especially for some critical bug.

References

Personal tools