Software Testing Foundation
Software Requirement for Tester
8/17/2020           09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   1
Lesson Objectives
 Be introduced Requirement Concepts
 Know how to study and clarify functional requirements
       User Interface
       Function
8/17/2020                09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   2
AGENDA
• Requirement Concepts
• Requirement Types
• Study & Clarify Requirement
8/17/2020       09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   3
Section 1
REQUIREMENT CONCEPTS
8/17/2020   09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   4
Requirement Definition
  • A statement of a
    service the
    system must do
    OR
  • A statement of a
    constraint the
    system must
    satisfy
8/17/2020      09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   5
Requirement Definition
o Let us dissect this definition in order to better understand it:
   • A requirement is a statement…: this means that each requirement is a
      relatively short and concise piece of information, expressed as a fact. It
      can be written as a sentence or can be expressed using some kind of
      diagram. We will call a collection of requirements a requirements
      document.
     “As a [personal/actor], I [want to], [so that].”
    E.g. As a manager, I want to be able to understand my colleagues progress,
    so I can better report our success and failures.
8/17/2020               09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   6
Requirement Definition
o …an service of what the proposed system must do…: most
  requirements say something about the tasks the system is supposed
  to accomplish. They do not describe the domain.
   E.g. UC1: Log in - This function allows user to login to system
o    …a constraint on the system’s development…: requirements often
    specify the quality levels required. They may also specify details such
    as the programming language to be used if this is truly important to the
    customer. They should, however, avoid discussing incidental aspects
    of the design.
    E.g. The system will be initially operating on a Microsoft Windows
    2000 server platform with latest service pack (SP2 and above)
8/17/2020              09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   7
Why do we need requirements?
8/17/2020     09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   8
Requirement Classification
8/17/2020      09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   9
Requirement Document Classification
  During attend to software project, you can see some kinds
    of requirement document below:
   High Level Requirement (HLR) Document / User
    Requirement Definition (URD)
   Use Case Document
   Software Requirement Specification Document
   Note: these documents are in many templates
8/17/2020        09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   10
Section 2
REQUIREMENT TYPES
8/17/2020   09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   11
Requirement Types
 Requirements can be divided into two
  major types:
     Functional Requirements
     Non-functional Requirements
8/17/2020      09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   12
Functional Requirement
 Discuss the functionality required by the
  users from the system
 Things that a system has to do related to
  business flow
 Example:
       Do a calculation: add, new, edit, delete
        functions
       Make a report
       Security: access right
8/17/2020            09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   13
Non-functional Requirement
   Is a statement of how a system must behave;
   Is a constraint upon system’s behaviour
   Non-functional requirements can be categorized as
         Quality constraint
         Performance constraint
         Design constraint
         Environmental / platform constraint
         Process constraint
8/17/2020             09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   14
Quality Constraints
   Quality constraints reflects the quality attributes. These quality requirements
   constrain the design to meet specified levels of quality.
   Maintainability and Enhancement: in order to ensure that the system
     can be adapted in the future, you should describe changes that are
     anticipated for subsequent releases. This constrains design and improves
     quality without adding explicit new functional requirements.
   Reusability: is the likelihood a segment of source code that can be used
     again to add new functionalities with slight or no modification. Reusability
     reduces implementation time as reusable model is already tested.
   Reliability: is specified by using mean time to failure. It is the ability of a
     system to perform its functions under stated conditions for a specified
     period of time.
      E.g. System should not down for more than 5 minutes. / less than 1hr
      downtime.
8/17/2020               09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   15
Performance Constraints
       Response time: is time system take to compute the result.
        Low response time is desirable.
       Throughput: is number of computation or transactions per
        unit time. Some systems take long time for processing or Some
        systems are continually responding to client , it is necessary to
        consider throughput.
        E.g. System must handle 1,000 transactions/sec
       Utilization: is resources consumed by the system.
        Utilization of resources such as memory or network bandwidth
        are specified.
        E.g. system should not use more than 20MBPS of bandwidth.
8/17/2020              09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   16
Design Constraints
   Availability: measures the amount of time that a server
    is running and available to respond to users.
    E.g. The system is operational during standard working
    hours (9am to 5pm). However, there should be the
    flexibility to operate the system 24 hours a day 7 days a
    week
   Recovery from failure: If the hardware or software
    crashes, or the power fails, then the system will be able
    to recover within a certain amount of time, and with a
    certain minimal loss of data.
8/17/2020         09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   17
Environmental/Platform Constraints
   Platform: Platform specifies the hardware and
    operating system used for developing system.
    E.g. Linux operating system with 2GB RAM.
   Technology to be used: It signifies the
    programming language (framework) used to
    develop a system. Sometimes client places
    constraint on programming language to be
    used for developing system.
    E.g. System should be developed by using
    java language.
8/17/2020      09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   18
Process Constraints
         Development process to be used: In order
          to ensure quality, some requirements
          documents specify that certain processes be
          followed;
          E.g. Microsoft SQLServer 2000 will be used
          for LMS
         Cost and delivery date.
8/17/2020         09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   19
Assignment 1 - Identify Functional, Non-
Functional Requirements
      Objectives: Học viên xác định được rõ đâu là yêu cầu kiểm thử chức năng,
       đâu là yêu cầu kiểm thử phi chức năng và yêu cầu kiểm thử phi chức năng đó
       thuộc nhóm ràng buộc – Constraint nào
      Technical Requirements:
      Chia học viên thành các nhóm (~5 hv), tối đa 4 nhóm / lớp
      2 nhóm sẽ làm 1 SRS (1 nhóm làm về Functional requirement, 1 nhóm làm về
       Non-Functional requirement)
      Các bạn trong nhóm sẽ đọc, trao đổi và thống nhất và điền kết quả bài làm
       vào 2 biểu mẫu:
      Danh sách các functional requirement hoặc non-functional requirement mà
       nhóm phải làm và đã xác định
      Danh sách các câu hỏi mà nhóm cần hỏi
      Thời gian làm bài tập nhóm: 30 phút
      Mỗi nhóm lên trình bày trước lớp về kết quả bài làm của nhóm mình: tối đa 30
       phút / nhóm
8/17/2020                09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   20
Section 3
STUDY & CLARIFY REQUIREMENT
8/17/2020   09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   21
Study & Clarify, Validate Requirement
Collect requirements/BA present the SRS to
    members in the team
Self study related materials: Top-Down approach
Clarify requirements
Validate requirements
8/17/2020       09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   22
Top-Down Approach
    High level requirement:
       Use Case Diagram: a diagram that depicts the
         interactions between the system and external systems
         and users.
       Workflow: sequence of connected steps to run end-to-
         end a system
    Functional Requirements: use case/function details
    Non-functional Requirements: ex. Performance
     requirement
8/17/2020          09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   23
Use Case Diagram
Depicts system
functions that
are performed
for actors
8/17/2020     09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   24
Workflow
8/17/2020   09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   25
Study Functional Requirement
 User Interface
 Function, Business
8/17/2020      09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   26
User Interface Requirement Study
 User Interface is the space where interaction between humans
  and machines occurs (wiki)
 User Interface is key to application usability
 User Interface is also called as the front-end of the system.
 User interfaces exist for various systems, and provide a means
  of:
    Input, allowing the users to manipulate a system
    Output, allowing the system to indicate the effects of the
      users' manipulation
 Bad UI design make not-good first impression about the system.
8/17/2020         09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   27
User Interface Requirement Study
 Mock-up screen/prototype
 Screen description: describe detail objects in screen
           Field name
           Control type
           Data type
           Default value
           Mandatory
           Editable
           Max length
           Value
           Description
           Validation
 UI Style
8/17/2020                   09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   28
   Mock-up Screen
Client Creation
   8/17/2020        09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   29
Screen Description
8/17/2020      09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   30
Graphic User Interface Style
8/17/2020       09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   31
Use Case/Function Study
   Purpose: Brief overview of the use case, describing the main idea
   Actor: Someone that interacts with the use case
   Pre-condition: State(s) the system can be in before the use case starts
   Trigger: Event that causes the use case to be initiated
   Basic Flow: what happens and in what order when all is well
   Alternative Flow: what happens and in what order when something goes wrong
   Post-condition: State(s) the system can be in after the use case finishes
   Business Rule: defines or constrains some aspect of business
8/17/2020                09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   32
Use Case/Function Study – Example
Client Creation
   Purpose: Add a new client to system
   Actor: Practice Business User ( Manager, Administrative or Sales user )
   Pre-condition:
       User login to system as Practice Business User before running the Use Case
       User has [Full control - Client Management] permission including Client Creation
            function permission
   Trigger: User select Client Creation sub menu from Menu bar or user selects Create
    Client button on Client Search screen
8/17/2020                    09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   33
Use Case/Function Study – Example
Client Creation
     Basic Flow:
        1.        Access to Create Client Details screen
        2.        Input Client Information
        3.        Click Save
        4.        System validate inputted data successfully
        5.        System update data
        6.        System write Audit trail
        7.        Display Client Detail screen & Client details are successfully added into database
     Alternative Flow:
            User select Cancel -> navigation use case
            Data (Date of Birth, Telephone number, postcode...) is invalid -> display error message
            System failed to update -> write Audit trail then backs to main flow -> display error message
8/17/2020                                    09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   34
Use Case/Function Study – Example
   Post-condition: System
           Display Client Detail screen
           Audit trail of changes made, when changed and by whom.
           Client is created successfully.
           Client details are successfully added into database
   Business Rule:
             Mandatory field, max length, email format validation refer to Common Validation – Overarching SRS
             IF format of Date of Birth is wrong
                     THEN system displays error message <<Err-10>>
             IF Date of Birth is a date in the future
                      THEN system displays error message <<Err-76>>
             IF Telephone Number Home, or Telephone Number Work is invalid format
                     THEN system displays the error message <<Err-03>
             IF Ext. No is not numeric
                     THEN system displays the error message <<77>>
             IF the Postcode is invalid format
                    THEN system displays the error message <<Err-02>
8/17/2020                                  09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use      35
Clarify Requirements
 Discuss with other members/stakeholders
       To clarify or confirm your understanding
       Media: direct discussion or via team brainstorming
 Inform/Questions the BA/Customer about
       Any requirement conflicts
       Any unclear requirements
       Changes, comparing to the last version
       Need more information
8/17/2020          09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   36
Stakeholders
A stakeholder is either an individual, group or organization who is impacted
by the outcome of a project. They have an interest in the success of the project,
and can be within or outside the organization that is sponsoring the project.
       End-users
       Managers
       Owners
       Customers of your customers
       Operation engineers
       Domain experts
       Etc.
8/17/2020              09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   37
How to make Questions effectively?
 Identify the issue: unclear, get for more information, etc.
 Check in all documents that customer supplied to make sure your
  question has not solved;
 With technical question, check your team /group/company or ask
  “Google” to solve it before asking out
 Give the cross-reference clearly, completely
 Attach sample screen, demo, give your suggestions if any
 Convert questions to Y/N or multiple-choice types if possible
 In Q&A, give deadline that you want to receive the answer. It there is
  no answer until the deadline, what is impact?
 Take the receiver to re-read the question before sending
8/17/2020           09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   38
Focus and Follow up Q&A
Q&A focus:
      •     Question for idea conveyed by words like: maybe, generally, etc.
      •     What is the TBDs - Ask PL to remove all TBDs before handling to you for designing
            or coding
      •     Conflict between requirements. Read the requirement matrix
      •     Don’t make assumptions, just ask your PM, PL or BA
Follow up the Q&A
      •     Track the discussion history for easier following up
      •     If your question has not been replied or impacts to your task must be report to
            your PM, BA, or TL immediately
      •     Keep in mind your manager/customer are very busy. So it is necessary to remind
            them about your pending issues daily, weekly. If not, your task will be impacted
8/17/2020                   09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   39
Validate Requirements - Techniques
Requirements Review
      • Systematic manual analysis of the requirements
      • Involving development staff, customers and relevant
        stakeholders
      • Use review checklists
Prototyping
      Using an executable model of the system to check requirements
8/17/2020           09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   40
Lesson Summary
• Session 1: Requirement Concepts
•    Session 2: Requirement Types
• Session 3: Study & Clarify Requirement
8/17/2020         09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   41
Thank you
8/17/2020   09e-BM/DT/FSOFT - ©FPT SOFTWARE – Fresher Academy - Internal Use   42