Osnova témat

  • Úvod

    Cílem předmětu je seznámit studenty s technikami testování a zajištění kvality software. Po úvodu do metodiky testování si studenti osvojí techniky pro vytváření testů z modelu aplikace, které jsou základem návrhu jak manuálních, tak automatických testů. Poté se naučí vytvářet efektivní jednotkové testy kódu a seznámí se s technikami automatického testování na různých úrovních. Závěrečná část předmětu se poté zabývá úvodem do formálních verifikací vytvářeného software.

    The goal of this course is to learn efficient software quality assurance and testing methods. This includes description of QA processes in the software development lifecycle, techniques of efficient design of test scenarios, introduction to model-based-testing, design and implementation of unit tests and integration tests and imlementation of automated tests based on simulation of user's actions in the tested system.

    Markdown demo

    An h1 header

    Paragraphs are separated by a blank line.

    2nd paragraph. Italic, bold, and monospace. Itemized lists look like:

    • this one
    • that one
    • the other one

    Note that --- not considering the asterisk --- the actual text content starts at 4-columns in.

    Block quotes are written like so.

    They can span multiple paragraphs, if you like.

    Use 3 dashes for an em-dash. Use 2 dashes for ranges (ex., "it's all in chapters 12--14"). Three dots ... will be converted to an ellipsis. Unicode is supported. ☺

    An h2 header

    Here's a numbered list:

    1. first item
    2. second item
    3. third item

    Note again how the actual text starts at 4 columns in (4 characters from the left side). Here's a code sample:

    # Let me re-iterate ...
    for i in 1 .. 10 { do-something(i) }
    

    As you probably guessed, indented 4 spaces. By the way, instead of indenting the block, you can use delimited blocks, if you like:

    define foobar() {
        print "Welcome to flavor country!";
    }
    

    (which makes copying & pasting easier). You can optionally mark the delimited block for Pandoc to syntax highlight it:

    import time
    # Quick, count to ten!
    for i in range(10):
        # (but not *too* quick)
        time.sleep(0.5)
        print(i)
    

    An h3 header

    Now a nested list:

    1. First, get these ingredients:

      • carrots
      • celery
      • lentils
    2. Boil some water.

    3. Dump everything in the pot and follow this algorithm:

      find wooden spoon
      uncover pot
      stir
      cover pot
      balance wooden spoon precariously on pot handle
      wait 10 minutes
      goto first step (or shut off burner when done)
      

      Do not bump wooden spoon or it will fall.

    Notice again how text always lines up on 4-space indents (including that last line which continues item 3 above).

    Here's a link to a website, to a local doc, and to a section heading in the current doc. Here's a footnote 1.

    Tables can look like this:

    Name Size Material Color


    All Business 9 leather brown Roundabout 10 hemp canvas natural Cinderella 11 glass transparent

    Table: Shoes sizes, materials, and colors.

    (The above is the caption for the table.) Pandoc also supports multi-line tables:


    Keyword Text


    red Sunsets, apples, and other red or reddish things.

    green Leaves, grass, frogs and other things it's not easy being.


    A horizontal rule follows.


    Here's a definition list:

    apples
    Good for making applesauce.
    oranges
    Citrus!
    tomatoes
    There's no "e" in tomatoe.

    Again, text is indented 4 spaces. (Put a blank line between each term and its definition to spread things out more.)

    Here's a "line block" (note how whitespace is honored):

    | Line one | Line too | Line tree

    and images can be specified like so:

    example image

    Inline math equation: $\omega = d\phi / dt$. Display math should get its own line like so:

    \(I = \int \rho R^{2} dV\)

    And note that you can backslash-escape any punctuation characters which you wish to be displayed literally, ex.: `foo`, *bar*, etc.

    Features

    • Support Standard Markdown / CommonMark and GFM(GitHub Flavored Markdown);
    • Full-featured: Real-time Preview, Image (cross-domain) upload, Preformatted text/Code blocks/Tables insert, Code fold, Search replace, Read only, Themes, Multi-languages, L18n, HTML entities, Code syntax highlighting...;
    • Markdown Extras : Support ToC (Table of Contents), Emoji, Task lists, @Links...;
    • Compatible with all major browsers (IE8+), compatible Zepto.js and iPad;
    • Support identification, interpretation, fliter of the HTML tags;
    • Support TeX (LaTeX expressions, Based on KaTeX), Flowchart and Sequence Diagram of Markdown extended syntax;
    • Support AMD/CMD (Require.js & Sea.js) Module Loader, and Custom/define editor plugins;

    Editor.md

    Table of Contents

    [TOCM]

    [TOC]

    H1 header

    H2 header

    H3 header

    H4 header

    H5 header
    H6 header

    Heading 1 link Heading link

    Heading 2 link Heading link

    Heading 3 link Heading link

    Heading 4 link Heading link Heading link Heading link

    Heading 5 link Heading link
    Heading 6 link Heading link

    Headers (Underline)

    H1 Header (Underline)

    H2 Header (Underline)

    Characters


    ~~Strikethrough~~ Strikethrough (when enable html tag decode.) Italic Italic Emphasis Emphasis Emphasis Italic Emphasis Italic

    Superscript: X2,Subscript: O2

    Abbreviation(link HTML abbr tag)

    The HTML specification is maintained by the W3C.

    Blockquotes

    Blockquotes

    Paragraphs and Line Breaks

    "Blockquotes Blockquotes", Link

    Links

    Links

    Links with title

    <link> : https://github.com

    Reference link

    GFM a-tail link @pandao

    Code Blocks (multi-language) & highlighting

    Inline code

    $ npm install marked

    Code Blocks (Indented style)

    Indented 4 spaces, like <pre> (Preformatted Text).

    <?php
        echo "Hello world!";
    ?>
    

    Code Blocks (Preformatted text):

    | First Header  | Second Header |
    | ------------- | ------------- |
    | Content Cell  | Content Cell  |
    | Content Cell  | Content Cell  |
    

    Javascript 

    function test(){
      console.log("Hello world!");
    }
    
    (function(){
        var box = function(){
            return box.fn.init();
        };
    
        box.prototype = box.fn = {
            init : function(){
                console.log('box.init()');
    
          return this;
            },
    
        add : function(str){
          alert("add", str);
    
          return this;
        },
    
        remove : function(str){
          alert("remove", str);
    
          return this;
        }
        };
    
        box.fn.init.prototype = box.fn;
    
        window.box =box;
    })();
    
    var testBox = box();
    testBox.add("jQuery").remove("jQuery");
    

    HTML code

    <!DOCTYPE html>
    <html>
        <head>
            <mate charest="utf-8" />
            <title>Hello world!</title>
        </head>
        <body>
            <h1>Hello world!</h1>
        </body>
    </html>
    

    Images

    Image:

    Follow your heart.

    图为:厦门白城沙滩 Xiamen

    图片加链接 (Image + Link):

    图为:李健首张专辑《似水流年》封面


    Lists

    Unordered list (-)

    • Item A
    • Item B
    • Item C

    Unordered list (*)

    • Item A
    • Item B
    • Item C

    Unordered list (plus sign and nested)

    • Item A
    • Item B
      • Item B 1
      • Item B 2
      • Item B 3
    • Item C
      • Item C 1
      • Item C 2
      • Item C 3

    Ordered list

    1. Item A
    2. Item B
    3. Item C

    Tables

    First Header Second Header
    Content Cell Content Cell
    Content Cell Content Cell
    First Header Second Header
    Content Cell Content Cell
    Content Cell Content Cell
    Function name Description
    help() Display the help window.
    destroy() Destroy your computer!
    Item Value
    Computer $1600
    Phone $12
    Pipe $1
    Left-Aligned Center Aligned Right Aligned
    col 3 is some wordy text $1600
    col 2 is centered $12
    zebra stripes are neat $1

    HTML entities

    © & ¨ ™ ¡ £ & < > ¥ € ® ± ¶ § ¦ ¯ « ·

    X² Y³ ¾ ¼ × ÷ »

    18ºC " '

    Escaping for Special Characters

    *literal asterisks*

    Markdown extras

    GFM task list

    • [x] GFM task list 1
    • [x] GFM task list 2
    • [ ] GFM task list 3
      • [ ] GFM task list 3-1
      • [ ] GFM task list 3-2
      • [ ] GFM task list 3-3
    • [ ] GFM task list 4
      • [ ] GFM task list 4-1
      • [ ] GFM task list 4-2

    Emoji mixed :smiley:

    Blockquotes :star:

    GFM task lists & Emoji & fontAwesome icon emoji & editormd logo emoji :editormd-logo-5x:

    • [x] :smiley: @mentions, :smiley: #refs, links, formatting, and tags supported :editormd-logo:;
    • [x] list syntax required (any unordered or ordered list supported) :editormd-logo-3x:;
    • [x] [ ] :smiley: this is a complete item :smiley:;
    • [ ] []this is an incomplete item test link :fa-star: @pandao;
    • [ ] [ ]this is an incomplete item :fa-star: :fa-gear:;
      • [ ] :smiley: this is an incomplete item test link :fa-star: :fa-gear:;
      • [ ] :smiley: this is :fa-star: :fa-gear: an incomplete item test link;

    TeX(LaTeX)

    \(E=mc^2\)

    Inline \(E=mc^2\) Inline,Inline \(E=mc^2\) Inline。

    \((\sqrt{3x-1}+(1+x)^2)\)

    \(\sin(\alpha)^{\theta}=\sum_{i=0}^{n}(x^i + \cos(f))\)

    FlowChart

    st=>start: Login
    op=>operation: Login operation
    cond=>condition: Successful Yes or No?
    e=>end: To admin
    
    st->op->cond
    cond(yes)->e
    cond(no)->op
    

    Sequence Diagram

    Andrew->China: Says Hello 
    Note right of China: China thinks\nabout it 
    China-->Andrew: How are you? 
    Andrew->>China: I am good thanks!
    

    End


    1. Some footnote text. ↩︎

  • Course Organization

    In this part, you will find the conditions to finish this course and results.

  • Homeworks

    In this part, you will information about the homeworks assigned during the labs

    Detailed information and instructions related to the homeworks will be provided during the course.

    Deadline to complete and present a homework is 3 weeks from the assignment date.

    Homework 1:

    Topic: Selenium front-end automated testing + screenplay pattern Assignment week: 5 Points: 5

    Homework 2:

    Topic: Cypress front-end automated testing Assignment week: 6 Points: 5

    Homework 3:

    Topic: JUnit (advanced features) Assignment week: 8 Points: 5

    Homework 4:

    Topic: Code static testing Assignment week: 11 Points: 5

  • Lectures

    Here is a list of PDF files with lecture slides. Lecture slides will be published on the day of the lecture.

  • Literature

    • Rex Back, Jamie L. Mitchel: Advanced Software Testing Vol.3, Rocky Nook, 2011 Book
    • Unmesh Gundecha: Selenium Testing Tools Cookbook, Packt Publishing 2012
    • Lasse Koskela: Effective Unit Testing: A guide for Java developers, Manning, 2013 Book
    • Collin, Mark. Mastering Selenium WebDriver. Packt Publishing Ltd, 2015. Book
    • Meszaros, Gerard. xUnit test patterns: Refactoring test code. Addison Wesley, 2007. Book
    • Bures, Renda, Dolezel: Efektivní testování softwaru. Grada 2016 Book
    • Ammann, Paul, and Jeff Offutt. Introduction to software testing. Cambridge University Press, 2016.
  • Sources