Transcript
Page 1: Bug zillatestopiajenkins

Automated Testing Environment by Bugzilla, Testopia and Jenkins

Chin Pin Chang

04/07/2014

1

Page 2: Bug zillatestopiajenkins

Outline

• Bugzilla

• Testopia

• Jenkins

• Automated Testing Environment (Hypervisor Testing as an example)

– Automated Testing Process

– Example

• References

2

Page 3: Bug zillatestopiajenkins

Bugzilla Introduction

• Bugzilla is a Defect Tracking System and it is server software designed to help you manage software development

3

Page 4: Bug zillatestopiajenkins

Bugzilla Features

• Excellent security to protect confidentiality

• Optimized database structure for increased performance and scalability

• Integrated email capabilities

• Comprehensive permissions system

• Editable user profiles and comprehensive email preferences

• Proven under fire as Mozilla's bug tracking system

4

Page 5: Bug zillatestopiajenkins

Bugzilla Requirements

• Hardware– CPU : 3 GHz

– RAM : 4 GB or more recommended

– Hard Disk : 50 GB of free space is large enough

• Operating System : Including Windows, Linux, and Mac OS X

• Software– Perl : 5.12

– Database Server : Bugzilla supports MySQL 5.5, PostgreSQL 8.3, Oracle and SQLite

– Web Server : Apache 2.2

5

Page 6: Bug zillatestopiajenkins

MySQL Installation

Step 1. Update

6

Step 2. Install MySQL

Step 3. Set the password

Page 7: Bug zillatestopiajenkins

MySQL Installation (cont.)

Step 4. Login MySQL

– user

– password

7

Page 8: Bug zillatestopiajenkins

MySQL Configuration

Step 5. Create an user for Bugzilla

8

Step 6. List users

Page 9: Bug zillatestopiajenkins

MySQL Configuration (cont.)

Step 7. Create database for Bugzilla

9

Page 10: Bug zillatestopiajenkins

Apache Configuration

10

Step 1. Install Apache2

Step 2. Modify Apache2 configuration file

Page 11: Bug zillatestopiajenkins

Bugzilla Installation

Step 1. Download Bugzilla : http://www.bugzilla.org/

11

Step 2. Decompress the file to /var/www/

Step 3. Modify folder name and switch to /var/www/bugzilla

Page 12: Bug zillatestopiajenkins

Bugzilla Installation (cont.)

Step 4. Execute checksetup.pl

12

Page 13: Bug zillatestopiajenkins

Bugzilla Installation (cont.)

13

Step 5. Install module

Page 14: Bug zillatestopiajenkins

Bugzilla Installation (cont.)

14

Step 6. Re-run checksetup.pl

Step 7. Need to modify localconfig

Page 15: Bug zillatestopiajenkins

Bugzilla Installation (cont.)

15

Step 8. Modify Bugzilla configuration

Step 9. Modify permission

Page 16: Bug zillatestopiajenkins

Bugzilla Installation (cont.)

16

Step 10. Re-run checksetup.pl

Step 11. Set up user information

Page 17: Bug zillatestopiajenkins

Bugzilla Installation (cont.)

17

Step 12. Modify Apache configuration and restart

Apache2

Page 18: Bug zillatestopiajenkins

Bugzilla Installation (cont.)

18

Step 13. Installation complete

Page 19: Bug zillatestopiajenkins

Testopia Introduction

• Testopia is a test case management extension for Bugzilla

• Testopia Requirements– Bugzilla

– MySQL or PostgreSQL

– Mozilla compatible browser

– Additional Perl Modules

• Testopia Architecture– Test Plans

– Test Cases

– Test Runs

19

Page 20: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia

20

• Since Testopia is an extension to Bugzilla, it relies on many of the same objects that Bugzilla uses to track bugs

• Testopia is comprised of several objects that are interdependent, so they make managing the testing procedure possible

Page 21: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

21

• Component– A Bugzilla component

– An attribute of a product

Page 22: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

22

• Product– The product name belong to Bugzilla

Page 23: Bug zillatestopiajenkins

23

• Milestone– A Bugzilla object

– Testopia builds are associated with milestones

Relationship between Bugzilla and Testopia (cont.)

Page 24: Bug zillatestopiajenkins

24

• Test Plan– At the top of the Testopia hierarchy are Test Plans. Before you can do anything else in

Testopia, you need a Test Plan

– Test plan will serve as the storage point for all related Test Cases and Test Runs and it will act as the Dashboard for your testing

Relationship between Bugzilla and Testopia (cont.)

Page 25: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

25

• Test Case– Test Cases are the heart of all testing– Test Cases spell out what steps to take while running a test and what outcomes to expect – Test Cases are associated with one or more Test Plans and with zero or more Test Runs

Page 26: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

26

• Test Run– Once you have defined a set of Test Cases, you are ready to run through those tests in a

Test Run

– Each run is associated with a single Test Plan and can consist of any number of Test Cases from that plan

Page 27: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

27

• Build– Software development is usually an iterative affair. In Testopia, each iteration is called a build

– In software testing, a string denoting the compiled results of a period of development

– Builds are often associated with milestones of the project. This is reflected in the build's relationship to Bugzilla's target milestones object

Page 28: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

28

• Case Run– A Test Case-Run is the record of how a particular Test Case fared in a particular run for a given

Build in a given Environment

Page 29: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

29

• Category– A property of a product that is used to classify Test Cases

Page 30: Bug zillatestopiajenkins

Relationship between Bugzilla and Testopia (cont.)

30

• Environment– A list of the surrounding conditions that a test run is performed in

Page 31: Bug zillatestopiajenkins

Testing Process of Testopia

31

The testing process in Testopia is as follows :

Step 1. Create a Product and

multiple Components

Step 2. Create a Test Plan

Step 3. Create Test Cases

Step 4. Create a Build

Page 32: Bug zillatestopiajenkins

Testing Process of Testopia (cont.)

32

The testing process in Testopia is as follows :

Step 5. Create Environment

Step 6. Create a Test Run

Step 7. Execute the Test Run

Step 8. Produce a test report

on Dashboard

Page 33: Bug zillatestopiajenkins

Testopia Installation

Step 1. Download Testopia– http://www.mozilla.org/projects/testopia/

33

Step 2. Decompress the file to Bugzilla folder

Step 3. Run checksetup.pl and install module

Page 34: Bug zillatestopiajenkins

Access to Testopia

Step 4. Re-run checksetup.pl

34

Step 5. Installation complete

Page 35: Bug zillatestopiajenkins

Jenkins Introduction

• Jenkins is an open source continuous integration tool written in Java

• Jenkins provides a web-based user interface

35

Page 36: Bug zillatestopiajenkins

Jenkins Features

• Easy installation

• Easy configuration

• Change set support

• E-mail integration

• Test reporting

• Plugin support

36

Page 37: Bug zillatestopiajenkins

Jenkins Installation

Step 2. Access to Jenkins

– http://localhost:8080

37

Step 1. Install Jenkins

Page 38: Bug zillatestopiajenkins

Install Testopia plugin on Jenkins

38

Page 39: Bug zillatestopiajenkins

Integrate Jenkins with Testopia

39

• This plug-in integrates Jenkins with Testopiaand generates reports on automated test execution

• With this plug-in you can manage your tests in Testopia, schedule and control in Jenkins

• It reads TAP test report formats, used to update Testopia test case's executions

Page 40: Bug zillatestopiajenkins

Integrate Jenkins with Testopia(cont.)

40

• Testopia configuration section

Page 41: Bug zillatestopiajenkins

Auto Test Process

Test Controller

Ubuntu 13.10

Bugzilla 4.4

Testopia

Jenkins 1.5

Shell scripts (expect)Shell scripts (expect)

Shell scripts (expect)

Step 1. Retrieve Test Case from Testopia

41

1.

Step 2. Invoke corresponding script to initialize the test environment

2. Auto testing environment for ITRI ARM hypervisor :

Page 42: Bug zillatestopiajenkins

Auto Test Process (cont.)

Test Controller

Ubuntu 13.10

Bugzilla 4.4

Testopia

Jenkins 1.5

Shell scripts (expect)Shell scripts (expect)

Shell scripts (expect)

Ubuntu 12.04 LTS

ITRI ARM Hypervisor

Guest VM

Guest VM

Guest VM

Test Target

Step 3. Initialize the test environmentStep 4. Launch necessary Guest VMs

42

3.

4.

Page 43: Bug zillatestopiajenkins

Auto Test Process (cont.)

Test Controller

Ubuntu 13.10

Bugzilla 4.4

Testopia

Jenkins 1.5

Shell scripts (expect)Shell scripts (expect)

Shell scripts (expect)

Ubuntu 12.04 LTS

ITRI ARM Hypervisor

Guest VM

Guest VM

Guest VM

Test Target

Step 5. Execute testing tasks

43

5.

Page 44: Bug zillatestopiajenkins

Auto Test Process (cont.)

Test Controller

Ubuntu 13.10

Bugzilla 4.4

Testopia

Jenkins 1.5

Shell scripts (expect)Shell scripts (expect)

Shell scripts (expect)

Ubuntu 12.04 LTS

ITRI ARM Hypervisor

Guest VM

Guest VM

Guest VM

Test Target

Step 6. Generate and return test result (by TAP, Test Anything Protocol)

44

6.

Page 45: Bug zillatestopiajenkins

Auto Test Process (cont.)

Test Controller

Ubuntu 13.10

Bugzilla 4.4

Testopia

Jenkins 1.5

Shell scripts (expect)Shell scripts (expect)

Shell scripts (expect)

Step 7. Return test result to Jenkins

45

7.

Page 46: Bug zillatestopiajenkins

Auto Test Process (cont.)

Test Controller

Ubuntu 13.10

Bugzilla 4.4

Testopia

Jenkins 1.5

Shell scripts (expect)Shell scripts (expect)

Shell scripts (expect)

Step 8. Write corresponding result to Test Case in Testopia based on TAP

46

8.

Page 47: Bug zillatestopiajenkins

Auto Test Example

Step 1. Add user on Bugzilla to execute auto testing

47

Page 48: Bug zillatestopiajenkins

The process to create a Test Plan

48

• To create a new Test Plan in Testopia– Step 1. Click the "New Plan" link in the Bugzilla footer

– Step 2. Enter a name for this Test Plan

– Step 3. Select a product from the product list

– Step 4. Select a type for this plan

– Step 5. Select a product version

– Step 6. Type or paste your plan document into the Plan

Document Editor

– Step 7. Click the "Submit" button

Page 49: Bug zillatestopiajenkins

Step 2. Create a new Test Plan

49

• Plan Name – Test Plan name

Page 50: Bug zillatestopiajenkins

Step 2. Create a new Test Plan (cont.)

50

• Product– Bugzilla product name

Page 51: Bug zillatestopiajenkins

Step 2. Create a new Test Plan (cont.)

51

• Product Type– The testing type for this Test Plan

Page 52: Bug zillatestopiajenkins

Step 2. Create a new Test Plan (cont.)

52

• Product Version– The Bugzilla product version

Page 53: Bug zillatestopiajenkins

Step 2. Create a new Test Plan (cont.)

53

• Plan Document– This is document that spells out the type of testing and testing methods

used for this plan

Page 54: Bug zillatestopiajenkins

The process to create a Test Run

54

• To create a new Test Run in Testopia– Step 1. Click "Create a New Test Run" link on your Test Plan

or the New Run link in the footer

– Step 2. Select which Test Cases to include

– Step 3. Enter a Summary for this Test Run

– Step 4. Select a build from the Build list or type the name

for a new one

– Step 5. Select an environment from the Environment list

– Step 6. Click the "Submit" button

Page 55: Bug zillatestopiajenkins

Step 3. Create a new Test Run

55

• Product Version– The Bugzilla product version

Page 56: Bug zillatestopiajenkins

Step 3. Create a new Test Run (cont.)

56

• Run Manager– The user in charge of this Test Run

Page 57: Bug zillatestopiajenkins

Step 3. Create a new Test Run (cont.)

57

• Target Completion Rate– The expect completion rate of target

Page 58: Bug zillatestopiajenkins

Step 3. Create a new Test Run (cont.)

58

• Build– The default product build

Page 59: Bug zillatestopiajenkins

Step 3. Create a new Test Run (cont.)

59

• Environment– The environment in use for this Test Run

Page 60: Bug zillatestopiajenkins

Step 3. Create a new Test Run (cont.)

60

• Target Pass Rate– The expect pass rate of target

Page 61: Bug zillatestopiajenkins

Step 3. Create a new Test Run (cont.)

61

• Summary– A short description of this Test Run

Page 62: Bug zillatestopiajenkins

Step 3. Create a new Test Run (cont.)

62

• Notes– This field is a place to make notes and observations about this run

Page 63: Bug zillatestopiajenkins

The process to create a Test Case

63

• To create a new Test Case in Testopia– Step 1. Click "Create a New Test Case" on the plan page or

New Case from the footer

– Step 2. Enter a short description of your Test Case in the

Summary field

– Step 3. Select a Category

– Step 4. Add a default tester

– Step 5. List the steps for testing in the Action field

– Step 6. Provide the expected outcomes in the Expected

Results field

– Step 7. Click the "Submit" button

Page 64: Bug zillatestopiajenkins

Step 4. Create a new Test Case

64

• Summary– A short description of the Test Case

Page 65: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

65

• Default Tester– The person is assigned to this Test Case

Page 66: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

66

• Alias– A unique string that uses to identify test result

Page 67: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

67

• Priority– The level of testing

Page 68: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

68

• Category– The product category

Page 69: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

69

• Estimated Time– The estimated time that this Test Case should take to complete

Page 70: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

70

• Bugs– You can attach bugs to your Test Cases

Page 71: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

71

• Blocks– If this Test Case prevents others from being run their ID numbers will appear

here

Page 72: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

72

• Status : Test Case status – PROPOSED : This test case is a work in progress and has not been reviewed for

accuracy. It is therefore not ready to be included in test runs– CONFIRMED : This test case has passed review and is ready to be included in future test

runs. Only test cases with this status can be included in new test runs– DISABLED : This test case is no longer applicable to current testing

Page 73: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

73

• Add Tags– A user defined string used to classify Test Cases

Page 74: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

74

• Requirements– The requirement number or URL to a document containing the requirement

this Test Case is designed to test

Page 75: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

75

• Automated – Automatic Test Cases are run by a script

Page 76: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

76

• Scripts – The name of the script that runs this Test Case

Page 77: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

77

• Arguments – The specific arguments sent to the script

Page 78: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

78

• Add to Run– Entering a run ID here will include this Test Case in a Test Run if it is not

already included

Page 79: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

79

• Depends On– If this Test Case requires other Test Cases be run before this one, their case

numbers should appear here

Page 80: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

80

• Action– This field lists the steps of testing

Page 81: Bug zillatestopiajenkins

Step 4. Create a new Test Case (cont.)

81

• Expected Results– This details the expected outcomes of a test

Page 82: Bug zillatestopiajenkins

Process to Launch Test Script

82

Configure

1. Clean Environment2. Check Image3. Launch Test Script

Start Test Script

1. 3.

2.

1. Login to Host2. Start VM3. Ping Host4. Turn off VM5. Return Result

Testopia

Contents :1. Parameters2. Functions

4.

1 . Retrieve Test Script

Page 83: Bug zillatestopiajenkins

Set up a new project

83

Step 5. Create a project on Jenkins to invoke Test

Script

Page 84: Bug zillatestopiajenkins

Step 6. Set Testopia configuration section

84

• Testopia Version– The version name of Testopia

Page 85: Bug zillatestopiajenkins

Step 6. Set Testopia configuration section (cont.)

85

• Test Run ID– The Test Run ID of Testopia

Page 86: Bug zillatestopiajenkins

Step 6. Set Testopia configuration section (cont.)

86

• Single Test Build Steps– The command to execute by single step

Page 87: Bug zillatestopiajenkins

Step 6. Set Testopia configuration section (cont.)

87

• Iterative Test Build Steps– The parameters of Testopia are used to execute by test cases

Page 88: Bug zillatestopiajenkins

Step 7. Set Result configuration section

88

• Test Anything Protocol (TAP)

– TAP is a simple text-based interface between testing modules in a test harness

– It allows individual tests to communicate test results to the testing harness

Page 89: Bug zillatestopiajenkins

TAP File Example

89

• The path of the file

• Success contents

• Fail contents

Page 90: Bug zillatestopiajenkins

Launch The Project

90

Step 8. Start this project on Jenkins

Page 91: Bug zillatestopiajenkins

Jenkins Console

91

Step 9. Monitor the shell scripts

Page 92: Bug zillatestopiajenkins

Jenkins Result

92

Page 93: Bug zillatestopiajenkins

Return Result to Testopia

93

Page 94: Bug zillatestopiajenkins

Question

94

• Mail:[email protected]

Page 95: Bug zillatestopiajenkins

References

95

• http://www.bugzilla.org/

• https://developer.mozilla.org/en-US/docs/Mozilla/Bugzilla/Testopia#Requirements

• http://blog.codylab.com/testcase-management-using-testopia/

• https://wiki.jenkins-ci.org/display/JENKINS/Testopia+Plugin

• http://testanything.org/

• https://wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins


Top Related