Ttoropainen (Talk | contribs) (→Objectives) |
Ttoropainen (Talk | contribs) (→Test strategy and approach) |
||
| Line 29: | Line 29: | ||
=== Introduction === | === Introduction === | ||
| + | The overall objective of MeeGo Core QA is to ensure that MeeGo middleware and OS Base provide stable hardware and usage model independent application services and APIs for building the vertical specific user experience. Each core component has different quality risk regarding to MeeGo integration. For example, some core component is mature in upstream and MeeGo do the integration without heavy new feature development; some component is contributed and open-sourced from proprietary component with heavy development. Considering most of MeeGo Core components will be adopted by multiple vertical usages and run on a number of MeeGo devices, Test execution efficiency shall taken into account when creating the test cases. Given this, there are following strategy considerations: | ||
| + | |||
| + | *Unified test suite (MeeGo Core Test Suite) for MeeGo Core validation. It's open-sourced and could start with the first batch of test cases contributed from community. MeeGo Core Test Suite (MCTS) docs can be found at MeeGo Quality page, and the code in Gitorious. | ||
| + | *Test suites from different sources are utilized as much as possible (e.g. Qt Mobility API test cases) | ||
| + | *If test cases are available in upstream project they will be used in order to keep maintainability. | ||
| + | *Appropriate test coverage in defined (density) categories. The test coverage of each component is based on the quality risk regarding to MeeGo integration. | ||
| + | *Test cases are automated s much as possible and able to run under MeeGo automated testing framework (OTS). | ||
| + | *MeeGo Core test cases are independent from vertical specific UX’s | ||
| + | |||
| + | MeeGo Core OS is verified with test assets available in MeeGo GIT in different projects and other open source projects. One can divide used test cases to two different types: | ||
| + | |||
| + | *Component tests. Unit/module like test cases verifying API’s of specific component. | ||
| + | *System tests. E2E type system level test cases verifying MeeGo Core OS stack as whole. | ||
| + | |||
| + | Typical characteristics for these component test cases are that they verify specific component or library with extensive set of parameters. Often they are missing E2E approach where entire stack is exercised. Test cases may not necessarily leave from component under test. | ||
| + | |||
| + | Typical characteristics for these system test cases are that they are based on use cases or user stories and often testing entire stack from top most interfaces provided by MeeGo Core OS Middleware and exercises HW peripheral beneath SW stack. These types of test suites are the most efficient ones for measuring and providing visibility to maturity of MeeGo Core OS. | ||
| + | |||
| + | MeeGo Core OS QA uses mainly test framework and other testing tools provided by MeeGo QA Tools Team (http://wiki.meego.com/Quality#QA_tools_team). | ||
| + | |||
| + | In order to ensure that MeeGo is competitive SW platform MeeGo Core OS QA is executing Performance test cases and driving performance improvements to MeeGo Core OS stack. Majority of the performance test cases are measuring raw performance of the system and do not necessarily measure end user experience. End user experience (response time measurements) is measured by Handset UX QA. For more detailed information of End User Experience testing see Handset UX Test Plan at: http://wiki.meego.com/Quality#MeeGo_Handset_Testing | ||
| + | |||
| + | In order to ensure reliability of MeeGo, MeeGo Core OS QA is executing Reliability test cases and driving reliability improvements to MeeGo Core OS stack. As addition to conventional test types such as Long-lasting and iterative, also Feature Interaction Testing is done as part of reliability testing. Feature Interaction Testing is based on user scenarios. | ||
| + | |||
| + | Test cases are following test type definition Aligned with ISO/IEC 9126-1 Software Quality Model and ISTQB Advanced Level Syllabus. Test types are defined in details at: (http://wiki.meego.com/Quality/TestAreas ) | ||
== Quality requirements for MCTS == | == Quality requirements for MCTS == | ||
Proposal For MeeGo 1.2. This plan is under review. actively revising and updating
Contents |
This is overall test plan for MeeGo Core of MeeGo open source project, which defines test scope, test strategy, test configurations as well as test execution cycle for MeeGo Core. It will give readers an overview of validation activities for MeeGo Core of MeeGo open source releases. A series of component test plans will also be linked in this overall test plan to cover the detailed test approaches and test design for ingredients of MeeGo Core stack. It will be the joint effort from MeeGo community.
This plan describes MeeGo Core OS QA for MeeGo 1.2 and onwards. Test plan is revised for each MeeGo Release and thus this test plan should be considered as evolving document. New testing methods, practicalities and approaches are described in revisions.
Objectives in MeeGo Core OS QA is to validate the functionality of entire MeeGo Core OS software delivery by performing hourly, daily and weekly testing for weekly releases. More information about testing cycle and test types can be found later in this document. Target is to ensure that:
For these activities MeeGo Core OS QA follows iteration cycle and process described in Release Engineering’s release timeline at: http://wiki.meego.com/Release_Engineering/Process
As addition to fast cycle testing more thorough testing (Full Pass) is done for MeeGo Releases. Full Pass testing is massive test execution for entire test asset available at the moment. With full pass all features are re-verified and regression is measured. This activity is taking place after MeeGo Release Feature Complete. Target is to ensure that:
For these activities MeeGo Core OS QA follows release cycle described in Release Engineering’s release timeline at: http://wiki.meego.com/Release_Engineering/Release_Timeline
The overall objective of MeeGo Core QA is to ensure that MeeGo middleware and OS Base provide stable hardware and usage model independent application services and APIs for building the vertical specific user experience. Each core component has different quality risk regarding to MeeGo integration. For example, some core component is mature in upstream and MeeGo do the integration without heavy new feature development; some component is contributed and open-sourced from proprietary component with heavy development. Considering most of MeeGo Core components will be adopted by multiple vertical usages and run on a number of MeeGo devices, Test execution efficiency shall taken into account when creating the test cases. Given this, there are following strategy considerations:
MeeGo Core OS is verified with test assets available in MeeGo GIT in different projects and other open source projects. One can divide used test cases to two different types:
Typical characteristics for these component test cases are that they verify specific component or library with extensive set of parameters. Often they are missing E2E approach where entire stack is exercised. Test cases may not necessarily leave from component under test.
Typical characteristics for these system test cases are that they are based on use cases or user stories and often testing entire stack from top most interfaces provided by MeeGo Core OS Middleware and exercises HW peripheral beneath SW stack. These types of test suites are the most efficient ones for measuring and providing visibility to maturity of MeeGo Core OS.
MeeGo Core OS QA uses mainly test framework and other testing tools provided by MeeGo QA Tools Team (http://wiki.meego.com/Quality#QA_tools_team).
In order to ensure that MeeGo is competitive SW platform MeeGo Core OS QA is executing Performance test cases and driving performance improvements to MeeGo Core OS stack. Majority of the performance test cases are measuring raw performance of the system and do not necessarily measure end user experience. End user experience (response time measurements) is measured by Handset UX QA. For more detailed information of End User Experience testing see Handset UX Test Plan at: http://wiki.meego.com/Quality#MeeGo_Handset_Testing
In order to ensure reliability of MeeGo, MeeGo Core OS QA is executing Reliability test cases and driving reliability improvements to MeeGo Core OS stack. As addition to conventional test types such as Long-lasting and iterative, also Feature Interaction Testing is done as part of reliability testing. Feature Interaction Testing is based on user scenarios.
Test cases are following test type definition Aligned with ISO/IEC 9126-1 Software Quality Model and ISTQB Advanced Level Syllabus. Test types are defined in details at: (http://wiki.meego.com/Quality/TestAreas )
Overall the MeeGo Core Testing will cover the MeeGo OS Middlewares layer and MeeGo OS Base layer in MeeGo Architecture:
Specific features to be tested will be aligned with the features under MeeGo Core OS Features product in MeeGo Featurezilla
Following feature category won't be covered in MeeGo Core validation for MeeGo open source releases.
In order to use resources efficiently and control risk level on component maturity. Testing is done in different levels as follows:
Go to MeeGo Core Test Suite for details
MeeGo Core will be tested from the following different test execution levels.
It's for Trunk:Testing. It will run a portion of fully automated test cases for core components and aims to provide quick acceptance testing to support incremental packages integration. It will be conducted under OTS (Open Test System).
It's for Trunk. It will run all fully automated test cases for core components and aims to identify the regressions as early as possible. It will be conducted under OTS (Open Test System).
Weekly Testing is a test cycle against the weekly images released from distribution team. Usually the test frequency is twice a week, which aligns with distribution's weekly image release cadence.
It's an incremental testing and includes two parts in general: test the basic distribution health to report out regression, test new features when they are ready for testing. We will also do bug verification and regression test which is set of tests to verify that changes from the last build (code enhancements, bug fixes) don't introduce new issues to the previous working code. The purpose of weekly testing is to early test the new features, to track critical/major issues got fixed in timely fashion, and to report out the overall quality status of the whole image so that people could understand where we are.
In the formal test cycle for milestone test, after a new build passed the BAT test, test team will start the full validation testing for it, following test will be involved:
This is a set of tests to verify that changes from the last build (code enhancements, bug fixes) don’t introduce new issues to the previous working code as well as new features work as expected. This cycle include the tests for previous major bug fixes and areas of the code that will be affected by new implementation.
The regression test will be taken in following test cycle:
MeeGo v1.1