From Fedora Project Wiki

 
(119 intermediate revisions by 2 users not shown)
Line 3: Line 3:
This page provides a high-level roadmap for implementing the [[Is_anaconda_broken_proposal]] project.  More detailed tasks can be found in [https://fedorahosted.org/autoqa/milestone/Automate%20installation%20test%20plan autoqa TRAC roadmap].  We follow these steps to define the methods by which we initiate testing
This page provides a high-level roadmap for implementing the [[Is_anaconda_broken_proposal]] project.  More detailed tasks can be found in [https://fedorahosted.org/autoqa/milestone/Automate%20installation%20test%20plan autoqa TRAC roadmap].  We follow these steps to define the methods by which we initiate testing


== Step 1: Setup Test Enviroment ==
* Virtualization
** python-fedora installed
** libvirt installed
** qemu-kvm installed
** python-virtinst installed
** service libvirtd started


*Logging
First, in order to provide a consistent and documented test approach, the existing Fedora Install test plan <ref>[[QA:Fedora_13_Install_Test_Plan]]</ref> will be revisited.  The test plan will be adjusted to ensure proper test coverage for the failure scenarios listed above.  Existing test cases will be reviewed for accuracy.  New test cases will be created using the [[Template:QA/Test_Case]] template.  Finally, the test plan will be adjusted to match the improved Fedora Release Criteria <ref>[[Fedora Release Criteria]]</ref>.  This includes adjusting the test case priority to match milestone criteria.
** service rsyslog started
** configure analog listening on port 6080 by dafault


== Step 1: Identify boot methods, retrieve files and check file sanity ==
Next, in order to reduce the setup/execution time, improve efficiency and to provide test results on a more consistent basis, a subset of test cases will be chosen for automation. Tests will be written in python and will be developed and executed on a system supporting KVM virtualization.   Test scripts will be responsible for preparing a virtual install environment, initiating a kickstart install and validating the results. Once an initial batch of tests exist, they will be formally integrated into the [[AutoQA]] project.
{| class="wikitable"
! Method!! Files !! Sanity !! Implementation
|-
| style="background-color:green;" |URL
| style="background-color:green;" |initrd.img, vmlinuz
| style="background-color:green;" |sha256sum,md5sum,version
| style="background-color:green;" |url_install/url_sanity.py
|-
| style="background-color:#66FF00;" |DVD
| style="background-color:#66FF00;" |DVD.iso
| style="background-color:#66FF00;" |size,sha256sum, md5sum
| style="background-color:#66FF00;" |dvd_install/dvd_sanity.py
|-
| CD
| 4 CD.iso
| size,sha256sum, md5sum
| cd_install/cd_sanity.py
|-
| style="background-color:lightgreen;" |Minimal Boot Media
| style="background-color:lightgreen;" |boot.iso
| style="background-color:lightgreen;" |size,sha256sum, md5sum
| style="background-color:lightgreen;" |bootiso_install/bootiso_sanity.py
|-
| Live
| live.iso
| size,sha256sum, md5sum
| live_install/live_sanity.py
|}


== Step 2: Prepare kick start file ==
Last, a method will be developed for collecting test results into a single test result matrix.  Results may be posted to the wiki directly, or a custom turbogears application may be needed to display results <ref>For a similar project see [http://jlaska.fedorapeople.org/irb.png screenshot] of ''is rawhide broken'' and [http://git.fedorahosted.org/git/?p=autoqa.git;a=tree;f=front-ends/israwhidebroken;hb=HEAD source code] and the [[QA:Rawhide_Acceptance_Test_Plan]].</ref>.  The results will be easily accessible for testers and the installer development team.
Most of the test cases can be covered by configure different kick start files. There are kickstart templates in different installation method folders.  
'''As the startup, we only use the template given below, more kick start files will be created in future.'''


{| class="wikitable"
<!-- Describe the scope of any project work or properties that will be affected by the proposal -->
! !!Method!! Kick Start File Template
|-
| rowspan=4 style="background-color:green;" |Install
| style="background-color:green;" |URL
| style="background-color:green;" |url_install/ks.cfg
|-
| style="background-color:#66FF00;" |DVD
| style="background-color:#66FF00;" |dvd_install/ks.cfg
|-
| style="background-color:#66FF00;" |CD
| style="background-color:#66FF00;" |cd_install/ks.cfg
|-
| style="background-color:lightgreen;" |boot.iso
| style="background-color:lightgreen;" |bootiso_install/ks.cfg
|-
|rowspan=1  style="background-color:lightgreen;" |Upgrade
|
|
|-
|rowspan=1  style="background-color:lightgreen;" | Rescure
|
|
|}


===Installation Kick Start Options===
The project will be divided into several phases.  
{|
!!!Description !!Scripts!! Test Case
|-
|rowspan=3 |Partitioning
|autopart
|<pre>
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
autopart
</pre>
|[[QA:Testcase Anaconda autopart install]]
|-
|autopart encrypted
|<pre>
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
autopart --encrypted --passphrase=redhat
</pre>
|[[QA:Testcase Anaconda autopart (encrypted) install]]
|-
|specify partition
|<pre>
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part / --fstype="ext4" --size=3000
part /boot --fstype="ext4" --size=500
part swap --fstype="swap" --size=500
</pre>
|
|-
| rowspan=4 |Install Source
| Http
|<pre>repo=http://download.fedora.redhat.com/pub/fedora/linux/development/i386/os</pre>
|[[QA/TestCases/InstallSourceHttp]]
|-
|Anonymous Ftp
|<pre>repo=ftp://download.fedora.redhat.com/pub/fedora/linux/development/i386/os</pre>
|[[QA/TestCases/InstallSourceFtpAnonymous]]
|-
|NonAnonymous Ftp
|<pre>repo=ftp://USER:PASS@download.fedora.redhat.com/pub/fedora/linux/development/i386/os</pre>
|[[QA/TestCases/InstallSourceFtpNonAnonymous]]
|-
|}


===Upgrade Kick Start Options===
==Phase#1 - proof of concept==
{|
* {{result|pass|Revise Fedora Install test plan to ensure adequate test coverage exists for failure scenarios listed above}}
! !!Description !!Scripts!! Test Case
* {{result|pass|Select a small, but representative, subset of test cases from the install test plan to automate}}The following test cases are selected:
|-
** [[QA:Rawhide_Acceptance_Test_Plan]]
|rowspan=3 | Boot loader
** DVD.iso Installation
|Install new bootloader
** Boot.iso/Netinst.iso Installation
|<pre>
** Live.iso Installation
# System bootloader configuration
** upgrade an exiting system
bootloader --location=mbr
** system with basic video driver
</pre>
** Rescue installed system
|[[QA:Testcase Anaconda Upgrade New Bootloader]]
** [[QA:Testcase_Memtest86]]
|-
* {{result|pass|Create python scripts to prepare KVM-based virtual environments for testing, initiate kickstart installs, and validate results}}
|Do not install a bootloader
** {{result|pass|Check the virtualization environment system sanity}}
|<pre>
** {{result|pass|virt-install tree and ISO media.}}
# System bootloader configuration
** {{result|pass|Print out test results}}
bootloader --location=none
* {{result|pass| Create python scripts to parse differenet parameters}}
</pre>
** {{result|pass|parse different repository: cdrom, http,ftp(anonymout, non anonymus), nfs, nfsiso, hard drive, [[QA:Testcase_Ftp_Repository]], [[QA:Testcase_Nfs_Repository]]}}
|[[QA:Testcase Anaconda Upgrade Skip Bootloader]]
** {{result|pass|parse different kickstart delivery: http, file, hard drive, nfs [[QA/TestCases/KickstartKsHttpServerKsCfg]], [[QA/TestCases/KickstartKsFilePathKsCfg]], [[QA/TestCases/KickstartKsHdDevicePathKsCfg]], [[QA/TestCases/KickstartKsNfsServerPathKsCfg]]}}
|-
* Investigate methods for leveraging GUI automation to aid in automating applicable test cases
|Upgrade Exiting boot loader
** {{result|pass| Open Virt Viewer of the guest}}
|<pre>
** {{result|pass| Input text into the GUI}}
# System bootloader configuration
** Close the Virt Viewer of the guest
bootloader --location=none --upgrade
</pre>
|[[QA:Testcase Anaconda Upgrade Update Bootloader]]
|-
|}


List test scenarios,it will make clear that which suite needs to
==Phase#2 - implementation==
support.
===Implement the selected test cases===
<!-- CSS Rotate
* {{result|pass|[[QA:Rawhide_Acceptance_Test_Plan]]}}
<style type="text/css">
** {{result|pass|system sanity}}
td.vertical-text {
** {{result|pass|parse arguments}}
color:#333;
** {{result|pass|Tree Compose Sanity}}
border:0px solid red;
*** {{result|pass|[[QA:Repodata_validity_test_case]]}}
writing-mode:tb-rl;
*** {{result|pass|[[QA:Comps_Validity_Test_Case]]}}
-webkit-transform:rotate(270deg);
*** {{result|pass|[[QA:Core_package_dependency_closure_test_case]]}}
-moz-transform:rotate(270deg);
*** {{result|pass|[[QA:Core_package_existence_test_case]]}}
-o-transform: rotate(270deg);
** {{result|pass|[[QA:Installer_image_presence_test_case]]}}
white-space:nowrap;
** {{result|pass|[[QA:Kernel_simple_boot_test_case]]}}
display:block;
** {{result|pass|[[QA:Anaconda_stage2_fetch_test_case]]}}
bottom:0;
** {{result|pass|[[QA:Anaconda_storage_probe_test_case]]}}
width:20px;
** {{result|pass|[[QA:Anaconda_package_install_test_case]]}}
height:20px;
* {{result|inprogress|RATS Installation}}
font-family: ‘Trebuchet MS’, Helvetica, sans-serif;
** {{result|pass|system sanity}}
font-size:24px;
** {{result|pass|parse arguments}}
font-weight:normal;
** {{result|pass|prepare kickstart}}
text-shadow: 0px 0px 1px #333;
*** {{result|pass|[[QA/TestCases/KickstartKsHttpServerKsCfg]]}}
}
*** {{result|pass|[[QA/TestCases/KickstartKsFilePathKsCfg]]}}
</style>
*** {{result|none|[[QA/TestCases/KickstartKsHdDevicePathKsCfg]]}}
-->
*** {{result|none|kickstart on cdrom (ks=cdrom)}}
** {{result|pass|Tree Compose Sanity}}
*** {{result|pass|[[QA:Repodata_validity_test_case]]}}
*** {{result|pass|[[QA:Comps_Validity_Test_Case]] }}
*** {{result|pass|[[QA:Core_package_dependency_closure_test_case]]}}
*** {{result|none|[[QA:Core_package_existence_test_case]]}}
** {{result|pass|[[QA:Installer_image_presence_test_case]]}}
** {{result|pass|[[QA:Kernel_simple_boot_test_case]]}}
** {{result|pass|[[QA:Anaconda_stage2_fetch_test_case]]}}
** {{result|pass|[[QA:Anaconda_storage_probe_test_case]]}}
** {{result|pass|[[QA:Anaconda_package_install_test_case]]}}
** {{result|pass|Iterate different ksfile,eg. fedora,updates,updates-testing}}
**{{result|none|Close virtio serial port}}
* {{result|inprogress| DVD.iso Installation}}
** {{result|pass|system sanity}}
** {{result|pass|parse arguments, (kickstart, repo, architecture are parsed)}}
** {{result|pass|prepare kickstart}}
*** {{result|pass|create kickstart disk on guest if kick start is local}}
*** {{result|pass|[[QA/TestCases/KickstartKsHttpServerKsCfg|kickstart on server (ks=http|ftp|nfs)]]}}
*** {{result|none|[[QA/TestCases/KickstartKsFilePathKsCfg|kickstart ks=file://path]]}}
**** {{result|none|compose kickstart to initrd}}
*** {{result|none|[[QA/TestCases/KickstartKsHdDevicePathKsCfg|kicstart on hard drive (ks=hd:)]]}}
*** {{result|none|kickstart on cdrom (ks=cdrom)}}
** {{result|inprogress|prepare repo}}
***{{result|pass|repo on http, ftp nfs, nfsiso server}}
***{{result|none|repo on cdrom}}
***{{result|none|repo on hd}}
** {{result|none|download remote media to local, since checksums and repoclosure does not work with remote media}}
** {{result|pass|[[QA:Testcase_Mediakit_ISO_Size]]}}
** {{result|pass|[[QA:Testcase_Mediakit_ISO_Checksums]]}}
** {{result|pass|[[QA:Testcase_Mediakit_Repoclosure]]}}
** {{result|pass|[[QA:Testcase_Mediakit_FileConflicts]]}}
** create a function to report mediakit sanity status
** {{result|none|[[QA/TestCases/BootMethodsDvd]]}}
** {{result|none|[[QA/TestCases/InstallSourceDvd]]}}
** {{result|inprogress|Iterate all ksfiles}}
**{{result|none|Close virtio serial port}}
* {{result|none|Hard Drive Installation}}
** {{result|none|system sanity}}
** {{result|none|parse arguments, (kickstart, repo, architecture, image)}}
** {{result|none|prepare kickstart}}
*** {{result|none|create physical disk on guest to store image}}
*** {{result|none|create kickstart disk on guest if kick start is local}}
*** {{result|none|[[QA/TestCases/KickstartKsHttpServerKsCfg|kickstart on server (ks=http|ftp|nfs)]]}}
*** {{result|none|[[QA/TestCases/KickstartKsFilePathKsCfg|kickstart ks=file://path]]}}
**** {{result|none|compose kickstart to initrd}}
*** {{result|none|[[QA/TestCases/KickstartKsHdDevicePathKsCfg|kicstart on hard drive (ks=hd:)]]}}
*** {{result|none|kickstart on cdrom (ks=cdrom)}}
** {{result|none|prepare repo}}
***{{result|none|repo on http, ftp nfs, nfsiso server}}
***{{result|none|repo on cdrom}}
***{{result|none|repo on hd}}
** {{result|none|[[QA:Testcase_Mediakit_ISO_Size]]}}
** {{result|none|[[QA:Testcase_Mediakit_ISO_Checksums]]}}
** {{result|none|[[QA:Testcase_Mediakit_Repoclosure]]}}
** {{result|none|[[QA:Testcase_Mediakit_FileConflicts]]}}
** create a function to report mediakit sanity status
** {{result|none|[[QA/TestCases/BootMethodsDvd]]}}
** {{result|none|[[QA/TestCases/InstallSourceDvd]]}}
**{{result|none|Close virtio serial port}}
* Boot.iso/Netinst.iso Installation
** system sanity
** [[QA:Testcase_Mediakit_ISO_Size]]
** [[QA:Testcase_Mediakit_ISO_Checksums]]
** [[QA/TestCases/BootMethodsBootIso]]
** [[QA/TestCases/InstallSourceBootIso]]
* Live.iso Installation
** system sanity
** [[QA:Testcase_Mediakit_ISO_Size]]
** [[QA:Testcase_Mediakit_ISO_Checksums]]
* [[QA:Testcase_Anaconda_Upgrade_New_Bootloader|upgrade an exiting system]]
** perform a default installation of the previous release
** install the current release
* [[QA:Testcase_Anaconda_User_Interface_Basic_Video_Driver]]
* [[QA:Testcase_Anaconda_rescue_mode]]
* [[QA:Testcase_Memtest86|Memory test - memtest86]]


{| class="wikitable  collapsible collapsed" border="1" width="85%"
===Automate remainder of test cases from the install test plan===
! colspan="7"|Test Scenarios
* Rawhide Acceptance Test Plan
|-
** [[QA:Anaconda_bootloader_setup_test_case]]
! colspan="1" class="unsortable"| &nbsp;
** [[QA:X_basic_display_test_case]]
! colspan="6" class="unsortable"|Boot Method <ref name="Boot Method"> Boot Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/ch04s06.html </ref>
** [[QA:X_basic_input_handling_test_case]]
|-
** [[QA:Network_basic_test_case]]
! colspan="1"|Test
** [[QA:Yum_simple_update_test_case]]
! DVD
*  DVD installation
! CD
** [[QA:Testcase_Additional_Http_Repository]]
! boot.iso
** [[QA:Testcase_Additional_Ftp_Repository]]
! PXE images
** [[QA:Testcase_Additional_Mirrorlist_Repository]]
! efidisk.img
** [[QA:Testcase_Additional_NFS_Repository]]
! Live Image
* Boot.iso/netinst.iso installation
<!--
** [[QA:Testcase_Http_Repository]]
|-
* Live.iso installation
! colspan="1" class="unsortable"|Methods to load install.img (not applicable after F15)
** [[QA:TestCases/Install_Source_Live_Image]]
! colspan="6" class="unsortable"|&nbsp;
|-
|stage2=cdrom
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=http://server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=ftp://[user:passwd@]server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=nfs:
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|stage2=hd:
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|askmethod
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
-->
|-
! colspan="1" class="unsortable"|Installation Method <ref>Installation Method: http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/s1-installmethod-x86.html</ref><ref name="bootoption">Anaconda Boot Options: http://fedoraproject.org/wiki/Anaconda/Options</ref>
! colspan="6" class="unsortable"|&nbsp;
|-
|autodetect cdrom
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=cdrom
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=http://host/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=ftp://[user:passwd@]server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=nfs:server:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=nfsiso:server:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=hd:device/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=hdiso:
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|repo=livecd:
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:lightgreen;"|yes
|-
! colspan="1" class="unsortable"|Methods to locate kickstart file <ref name="bootoption"/>
! colspan="6" class="unsortable"|&nbsp;
|-
|ks (autodetect from dhcp ???(default is nfs))
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=http://server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=ftp://[user:passwd@]server/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=nfs:server:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=file:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=hd:device:/path
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=bd:biosdevice:/path
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=floppy
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
|ks=cdrom
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:yellow;"|unknown
|-
! colspan="1" class="unsortable"|Methods to locate updates.img
! colspan="6" class="unsortable"|&nbsp;
|-
|updates
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|updates=http
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|images/updates.img
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|RHUpdates
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:red; color:white;"|no
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
! colspan="1" class="unsortable"|Methods to determine display device
! colspan="6" class="unsortable"|&nbsp;
|-
|graphical
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|-
|text
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|-
|vnc
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|cmdline
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|serial console=ttyS0
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:#66FF00;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|telnet
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
! colspan="1" class="unsortable"|Methods to choose kickstart network device <ref name="bootoption"/>
! colspan="6" class="unsortable"|&nbsp;
|-
|ksdevice=link
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
|-
|ksdevice=bootif
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|ksdevice=eth0
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|ksdevice=AA:BB:CC:DD:EE:FF
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
! colspan="1" class="unsortable"|Methods to activate network device
! colspan="6" class="unsortable"|&nbsp;
|-
|ip=dhcp
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:green;"|yes
|style="background-color:red; color:white;"|no
|-
|ip=a.b.c.d
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|dns=
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|gateway=
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|netmask=
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:lightgreen;"|yes
|style="background-color:red; color:white;"|no
|-
|}


== Step 3: Prepare Installation Media==
===Implement the general test cases===
* [[QA:Testcase_Anaconda_User_Interface_Cmdline]]
* [[QA:Testcase_Anaconda_updates.img_via_URL]], [[QA:Testcase_Anaconda_updates.img_via_installation_source]], [[QA:Testcase_Anaconda_updates.img_via_local_media]]
* [[QA:Testcase_Anaconda_save_traceback_to_remote_system]], [[QA:Testcase_Anaconda_save_traceback_to_bugzilla]], [[QA:Testcase_Anaconda_save_traceback_to_disk]], [[QA:Testcase_Anaconda_traceback_debug_mode]]
* upgrade
** [[QA:Testcase_Anaconda_Upgrade_New_Bootloader]]
** [[QA:Testcase_Anaconda_Upgrade_Skip_Bootloader]]
** [[QA:Testcase_Anaconda_Upgrade_Update_Bootloader]]
** [[QA:Testcase_Anaconda_Upgrade_Encrypted_Root]]
** [[QA:Testcase_Anaconda_Upgrade_Skip_Bootloader_Text_Mode]]
** [[QA:Testcase_Anaconda_Upgrade_Update_Bootloader_Text_Mode]]


== Step 4: Create Virt Guest==
* preupgrade
virt-install is adopted to initialize the guest. The functions to create guest with virt-install from url, DVD,ect. should be defined firstly.
** [[QA:Testcase_Preupgrade]]
The following functions are defined in the class '''VirtGuest''' located in '''/lib/python/virtguest.py'''.
** [[QA:Testcase_Preupgrade_from_older_release]]
{|
!Method!!Function
|-
|URL
|url_create()
|-
|DVD,CD,boot.iso
|iso_create()
|}


=== Create kick start database to cover test cases that can be covered with kick start===
* [[QA:Testcase_Anaconda_User_Interface_Graphical]]
* [[QA:Testcase_Anaconda_User_Interface_Text]]
* [[QA:Testcase_Anaconda_User_Interface_VNC]]
* different packages selections: [[QA/TestCases/PackageSetsDefaultPackageInstall]], [[QA/TestCases/PackageSetsMinimalPackageInstall]]
* different partition: [[QA:Testcase_Anaconda_autopart_install]], [[QA:Testcase_Anaconda_autopart_(encrypted)_install]], [[QA:Testcase_Anaconda_autopart_(shrink)_install]], [[QA:Testcase_Anaconda_autopart_(use_free_space)_install]], [[QA/TestCases/PartitioningExt4OnNativeDevice]], [[QA/TestCases/PartitioningExt3OnNativeDevice]], [[QA/TestCases/PartitioningXFSOnNativeDevice]], [[QA/TestCases/PartitioningBtrFSOnNativeDevice]], [[QA/TestCases/PartitioningNoSwap]], [[QA:Testcase_Partitioning_On_Software_RAID]]
* [[QA:Testcase_Anaconda_rescue_mode]]


==Phase#3 - integration==
*Identify test event triggers which will be used to automatically initiate testing
* Create appropriate control files and test wrappers to allow for scheduling tests through AutoQA (see [[Writing_AutoQA_Tests]])
* Develop or update [[AutoQA]] test event hooks to accommodate new test events (see [[Writing_AutoQA_Hooks]])
* Implement initial test result dashboard intended to eventually replace the wiki test matrix.  The dashboard will also support FAS user test result submission.  This will likely rely on


Identify potential test drivers that trigger off of those events.
== References ==
 
* URL install source available (typically, http://download.fedoraproject.org/pub/fedora/linux/development/15/i386/os)
** url_sanity.py (for provided {{filename|images/boot.iso}})
** url_install.py
** bootiso_install.py
** pxe_install.py (kind of silly, but a possible future test)
* DVD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
** dvd_sanity.py
** dvd_install.py
** hddvc_install.py
** nfsdvc_install.py
* CD image(s) available (typically, somewhere on http://serverbeach1.fedoraproject.org/pub/alt/stage/)
** cd_sanity.py
** cd_install.py
** hdcd_install.py
** nfscd_install.py
 
==Step 5==
Write test drivers using requirements gathered in steps #2,#3,#4
 
 
 
== Key ==
Set priorities for each test. The test drivers will support the tests with high priority.
 
{| class="wikitable sortable" border="0"
! Colour !! Explanation
|-
| style="background-color:green;"|yes
| supported and default (high priority)
|-
| style="background-color:#66FF00;"|yes
| supported (medium priority)
|-
| style="background-color:lightgreen;"|yes
| supported (low priority)
|-
| style="background-color:red; color:white;"|no
| unsupported configuration
|-
| style="background-color:yellow;"|unknown
| unknown
|-
|}
 
==References==
<references/>
<references/>

Latest revision as of 07:02, 1 June 2012

This page provides a high-level roadmap for implementing the Is_anaconda_broken_proposal project. More detailed tasks can be found in autoqa TRAC roadmap. We follow these steps to define the methods by which we initiate testing


First, in order to provide a consistent and documented test approach, the existing Fedora Install test plan [1] will be revisited. The test plan will be adjusted to ensure proper test coverage for the failure scenarios listed above. Existing test cases will be reviewed for accuracy. New test cases will be created using the Template:QA/Test_Case template. Finally, the test plan will be adjusted to match the improved Fedora Release Criteria [2]. This includes adjusting the test case priority to match milestone criteria.

Next, in order to reduce the setup/execution time, improve efficiency and to provide test results on a more consistent basis, a subset of test cases will be chosen for automation. Tests will be written in python and will be developed and executed on a system supporting KVM virtualization. Test scripts will be responsible for preparing a virtual install environment, initiating a kickstart install and validating the results. Once an initial batch of tests exist, they will be formally integrated into the AutoQA project.

Last, a method will be developed for collecting test results into a single test result matrix. Results may be posted to the wiki directly, or a custom turbogears application may be needed to display results [3]. The results will be easily accessible for testers and the installer development team.


The project will be divided into several phases.

Phase#1 - proof of concept

  • Pass pass Revise Fedora Install test plan to ensure adequate test coverage exists for failure scenarios listed above
  • Pass pass Select a small, but representative, subset of test cases from the install test plan to automate
    The following test cases are selected:
  • Pass pass Create python scripts to prepare KVM-based virtual environments for testing, initiate kickstart installs, and validate results
    • Pass pass Check the virtualization environment system sanity
    • Pass pass virt-install tree and ISO media.
    • Pass pass Print out test results
  • Pass pass Create python scripts to parse differenet parameters
  • Investigate methods for leveraging GUI automation to aid in automating applicable test cases
    • Pass pass Open Virt Viewer of the guest
    • Pass pass Input text into the GUI
    • Close the Virt Viewer of the guest

Phase#2 - implementation

Implement the selected test cases

Automate remainder of test cases from the install test plan

Implement the general test cases

Create kick start database to cover test cases that can be covered with kick start

Phase#3 - integration

  • Identify test event triggers which will be used to automatically initiate testing
  • Create appropriate control files and test wrappers to allow for scheduling tests through AutoQA (see Writing_AutoQA_Tests)
  • Develop or update AutoQA test event hooks to accommodate new test events (see Writing_AutoQA_Hooks)
  • Implement initial test result dashboard intended to eventually replace the wiki test matrix. The dashboard will also support FAS user test result submission. This will likely rely on

References