Software Engineering & Testing Course Code: 18CST54
-
Upload
khangminh22 -
Category
Documents
-
view
2 -
download
0
Transcript of Software Engineering & Testing Course Code: 18CST54
Software Engineering & Testing Course Code: 18CST54
Course Teachers:
Mr. Vivek Sharma S1
12/11/2020NCET , DEPT. of CSE
12/11/2020NCET , DEPT. of CSE
3 Objectives
• To introduce software engineering and to explain its importance
• To set out the answers to key questions about software engineering
• To introduce ethical and professional issues and to explain why they are of concern to software engineers
12/11/2020NCET , DEPT. of CSE
4 Topics covered
• FAQs about software engineering• Professional and ethical responsibility
12/11/2020NCET , DEPT. of CSE
5 Software engineering
• The economies of ALL developed nations are dependent on software.
• More and more systems are software controlled• Software engineering is concerned with theories,
methods and tools for professional software development.
• Expenditure on software represents a significant fraction of GNP in all developed countries.
12/11/2020NCET , DEPT. of CSE
6 Software costs
• Software costs often dominate computer system costs. The costs of software on a PC are often greater than the hardware cost.
• Software costs more to maintain than it does to develop. For systems with a long life, maintenance costs may be several times development costs.
• Software engineering is concerned with cost effective software development.
12/11/2020NCET , DEPT. of CSE
7 FAQs about software engineering• What is software?• What is software engineering?• What is the difference between software
engineering and computer science?• What is the difference between software
engineering and system engineering?• What is a software process?• What is a software process model?
12/11/2020NCET , DEPT. of CSE
8FAQs about software engineering• What are the costs of software engineering?• What are software engineering methods?• What is CASE (Computer Aided Software
Engineering)• What are the attributes of good software?• What are the key challenges facing software
engineering?
12/11/2020NCET , DEPT. of CSE
9 What is software?
• Computer programs and associated documentation such as requirements, design models and user manuals.
• Software products may be developed for a particular customer or may be developed for a general market.
• Software products may be• Generic developed to be sold to a range of different customers
e.g. PC software such as Excel or Word.• Bespoke (custom) developed for a single customer according
to their specification.• New software can be created by developing new
programs, configuring generic software systems or reusing existing software.
12/11/2020NCET , DEPT. of CSE
10 What is software engineering?
• Software engineering is an engineering discipline that is concerned with all aspects of software production.
• Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.
12/11/2020NCET , DEPT. of CSE
11What is the difference between
software engineering and computer science?
• Computer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software.
• Computer science theories are still insufficient to act as a complete underpinning for software engineering (unlike e.g. physics and electrical engineering).
12/11/2020NCET , DEPT. of CSE
12What is the difference between software engineering and system engineering?
• System engineering is concerned with all aspects of computer based systems development including hardware, software and process engineering. Software engineering is part of this process concerned with developing the software infrastructure, control, applications and databases in the system.
• System engineers are involved in system specification, architectural design, integration and deployment.
12/11/2020NCET , DEPT. of CSE
13 What is a software process?
• A set of activities whose goal is the development or evolution of software.
• Generic activities in all software processes are:• Specification what the system should do and its
development constraints• Development production of the software system• Validation checking that the software is what the
customer wants• Evolution changing the software in response to
changing demands.
12/11/2020NCET , DEPT. of CSE
14 What is a software process model?
• A simplified representation of a software process, presented from a specific perspective.
• Examples of process perspectives are• Workflow perspective sequence of activities;• Data flow perspective information flow;• Role/action perspective who does what.
• Generic process models• Waterfall;• Iterative development;• Component based software engineering.
12/11/2020NCET , DEPT. of CSE
15 What are the costs of software engineering?
• Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs.
• Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability.
• Distribution of costs depends on the development model that is used.
12/11/2020NCET , DEPT. of CSE
18 What are software engineering methods?
• Structured approaches to software development which include system models, notations, rules, design advice and process guidance.
• Model descriptions• Descriptions of graphical models which should be produced;
• Rules• Constraints applied to system models;
• Recommendations• Advice on good design practice;
• Process guidance• What activities to follow.
12/11/2020NCET , DEPT. of CSE
19 What is CASE (Computer Aided Software Engineering)
• Software systems that are intended to provide automated support for software process activities.
• CASE systems are often used for method support.• Upper CASE
• Tools to support the early process activities of requirements and design;
• Lower CASE• Tools to support later activities such as programming,
debugging and testing.
12/11/2020NCET , DEPT. of CSE
20 What are the attributes of good software?
• The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable.
• Maintainability• Software must evolve to meet changing needs;
• Dependability• Software must be trustworthy;
• Efficiency• Software should not make wasteful use of system resources;
• Acceptability• Software must accepted by the users for which it was designed.
This means it must be understandable, usable and compatible with other systems.
12/11/2020NCET , DEPT. of CSE
21 What are the key challenges facing software engineering?
• Heterogeneity, delivery and trust.• Heterogeneity
• Developing techniques for building software that can cope with heterogeneous platforms and execution environments;
• Delivery• Developing techniques that lead to faster delivery of software;
• Trust• Developing techniques that demonstrate that software can
be trusted by its users.
12/11/2020NCET , DEPT. of CSE
22Professional and ethical responsibility
• Software engineering involves wider responsibilities than simply the application of technical skills.
• Software engineers must behave in an honest and ethically responsible way if they are to be respected as professionals.
• Ethical behaviour is more than simply upholding the law.
12/11/2020NCET , DEPT. of CSE
23 Issues of professional responsibility
• Confidentiality• Engineers should normally respect the confidentiality
of their employers or clients irrespective of whether or not a formal confidentiality agreement has been signed.
• Competence• Engineers should not misrepresent their level of
competence. They should not knowingly accept work which is outwith their competence.
12/11/2020NCET , DEPT. of CSE
24
Issues of professional responsibility
• Intellectual property rights• Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They should be careful to ensure that the intellectual property of employers and clients is protected.
• Computer misuse• Software engineers should not use their technical skills to
misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).
12/11/2020NCET , DEPT. of CSE
25 ACM/IEEE Code of Ethics
• The professional societies in the US have cooperated to produce a code of ethical practice.
• Members of these organisations sign up to the code of practice when they join.
• The Code contains eight Principles related to the behaviour of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policy makers, as well as trainees and students of the profession.
12/11/2020NCET , DEPT. of CSE
26 Code of ethics preamble
• Preamble• The short version of the code summarizes aspirations at a high
level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.
• Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:
12/11/2020NCET , DEPT. of CSE
27 Code of ethics principles
• PUBLIC• Software engineers shall act consistently with the public
interest.
• CLIENT AND EMPLOYER• Software engineers shall act in a manner that is in the best
interests of their client and employer consistent with the public interest.
• PRODUCT• Software engineers shall ensure that their products and related
modifications meet the highest professional standards possible.
12/11/2020NCET , DEPT. of CSE
28 Code of ethics principles
• JUDGMENT• Software engineers shall maintain integrity and independence
in their professional judgment.
• MANAGEMENT• Software engineering managers and leaders shall subscribe to
and promote an ethical approach to the management of software development and maintenance.
• PROFESSION• Software engineers shall advance the integrity and reputation of
the profession consistent with the public interest.
12/11/2020NCET , DEPT. of CSE
29 Code of ethics principles
• COLLEAGUES• Software engineers shall be fair to and supportive of
their colleagues.• SELF
• Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.
12/11/2020NCET , DEPT. of CSE
30 Ethical dilemmas
• Disagreement in principle with the policies of senior management.
• Your employer acts in an unethical way and releases a safety critical system without finishing the testing of the system.
• Participation in the development of military weapons systems or nuclear systems.
12/11/2020NCET , DEPT. of CSE
31 Key points
• Software engineering is an engineering discipline that is concerned with all aspects of software production.
• Software products consist of developed programs and associated documentation. Essential product attributes are maintainability, dependability, efficiency and usability.
• The software process consists of activities that are involved in developing software products. Basic activities are software specification, development, validation and evolution.
• Methods are organised ways of producing software. They include suggestions for the process to be followed, the notations to be used, rules governing the system descriptions which are produced and design guidelines.
12/11/2020NCET , DEPT. of CSE
32 Key points
• CASE tools are software systems which are designed to support routine activities in the software process such as editing design diagrams, checking diagram consistency and keeping track of program tests which have been run.
• Software engineers have responsibilities to the engineering profession and society. They should not simply be concerned with technical issues.
• Professional societies publish codes of conduct which set out the standards of behaviour expected of their members.
12/11/2020NCET , DEPT. of CSE
34Objectives
To explain what a socio-technical system is and the distinction between this and a computer-based systemTo introduce the concept of emergent system properties such as reliability and securityTo explain system engineering and system procurement processesTo explain why the organisational context of a system affects its design and useTo discuss legacy systems and why these are critical to many businesses
12/11/2020NCET , DEPT. of CSE
35 Topics covered
Emergent system propertiesSystems engineeringOrganizations, people and computer systems Legacy systems
12/11/2020NCET , DEPT. of CSE
36 What is a system?
A purposeful collection of inter-related components working together to achieve some common objective. A system may include software, mechanical, electrical and electronic hardware and be operated by people.System components are dependent on other system componentsThe properties and behaviour of system components are inextricably inter-mingled
12/11/2020NCET , DEPT. of CSE
37 System categories
Technical computer-based systemsSystems that include hardware and software but where the operators and operational processes are not normally considered to be part of the system. The system is not self-aware.
Socio-technical systemsSystems that include technical systems but also operational processes and people who use and interact with the technical system. Socio-technical systems are governed by organisational policies and rules.
12/11/2020NCET , DEPT. of CSE
38 Socio-technical system characteristics
Emergent propertiesProperties of the system of a whole that depend on the system components and their relationships.
Non-deterministicThey do not always produce the same output when presented with the same input because the systems’s behaviour is partially dependent on human operators.
Complex relationships with organisational objectivesThe extent to which the system supports organisational objectives does not just depend on the system itself.
12/11/2020NCET , DEPT. of CSE
39 Emergent properties
Properties of the system as a whole rather than properties that can be derived from the properties of components of a systemEmergent properties are a consequence of the relationships between system componentsThey can therefore only be assessed and measured once the components have been integrated into a system
12/11/2020NCET , DEPT. of CSE
41 Types of emergent property
Functional properties These appear when all the parts of a system work together to achieve some objective. For example, a bicycle has the functional property of being a transportation device once it has been assembled from its components.
Non-functional emergent propertiesExamples are reliability, performance, safety, and security. These relate to the behaviour of the system in its operational environment. They are often critical for computer-based systems as failure to achieve some minimal defined level in these properties may make the system unusable.
12/11/2020NCET , DEPT. of CSE
42
Because of component inter-dependencies, faults can be propagated through the system.System failures often occur because of unforeseen inter-relationships between components.It is probably impossible to anticipate all possible component relationships.Software reliability measures may give a false picture of the system reliability.
System reliability engineering
12/11/2020NCET , DEPT. of CSE
43
Hardware reliability What is the probability of a hardware component failing and how long does it take to repair that component?
Software reliability
How likely is it that a software component will produce an incorrect output. Software failure is usually distinct from hardware failure in that software does not wear out.
Operator reliability
How likely is it that the operator of a system will make an error?
Influences on reliability
12/11/2020NCET , DEPT. of CSE
44 Reliability relationships
Hardware failure can generate spurious signals that are outside the range of inputs expected by the software.Software errors can cause alarms to be activated which cause operator stress and lead to operator errors.The environment in which a system is installed can affect its reliability.
12/11/2020NCET , DEPT. of CSE
45 The ‘shall-not’ properties
Properties such as performance and reliability can be measured.However, some properties are properties that the system should not exhibit
Safety - the system should not behave in an unsafe way;Security - the system should not permit unauthorised use.
Measuring or assessing these properties is very hard.
12/11/2020NCET , DEPT. of CSE
46 Systems engineering
Specifying, designing, implementing, validating, deploying and maintaining socio-technical systems.Concerned with the services provided by the system, constraints on its construction and operation and the ways in which it is used.
12/11/2020NCET , DEPT. of CSE
47 The system engineering process
Usually follows a ‘waterfall’ model because of the need for parallel development of different parts of the system
Little scope for iteration between phases because hardware changes are very expensive. Software may have to compensate for hardware problems.
Inevitably involves engineers from different disciplines who must work together
Much scope for misunderstanding here. Different disciplines use a different vocabulary and much negotiation is required. Engineers may have personal agendas to fulfil.
System requirements definition
Three types of requirement defined at this stageAbstract functional requirements. System functions are defined in an abstract way;System properties. Non-functional requirements for the system in general are defined;Undesirable characteristics. Unacceptable system behaviour is specified.
Should also define overall organisational objectives for the system.
12/11/2020NCET , DEPT. of CSE
50
System objectivesShould define why a system is being procured for a particular environment.Functional objectives
To provide a fire and intruder alarm system for the building which will provide internal and external warning of fire or unauthorized intrusion.
Organisational objectivesTo ensure that the normal functioning of work carried out in the building is not seriously disrupted by events such as fire and unauthorized intrusion.
12/11/2020NCET , DEPT. of CSE
51
System requirements problems
Complex systems are usually developed to address wicked problemsProblems that are not fully understood;
Changing as the system is being specified.
Must anticipate hardware/communications developments over the lifetime of the system.
Hard to define non-functional requirements (particularly) without knowing the component structure of the system.
12/11/2020NCET , DEPT. of CSE
52
The system design process
Partition requirementsOrganise requirements into related groups.
Identify sub-systemsIdentify a set of sub-systems which collectively can meet the system requirements.
Assign requirements to sub-systemsCauses particular problems when COTS are integrated.
Specify sub-system functionality.Define sub-system interfaces
Critical activity for parallel sub-system development.
12/11/2020NCET , DEPT. of CSE
53
System design problems
Requirements partitioning to hardware, software and human components may involve a lot of negotiation.
Difficult design problems are often assumed to be readily solved using software.
Hardware platforms may be inappropriate for software requirements so software must compensate for this.
12/11/2020NCET , DEPT. of CSE
55
Requirements and design
Requirements engineering and system design are inextricably linked.Constraints posed by the system’s environment and other systems limit design choices so the actual design to be used may be a requirement.Initial design may be necessary to structure the requirements.As you do design, you learn more about the requirements.
12/11/2020NCET , DEPT. of CSE
56
System modelling
An architectural model presents an abstract view of the sub-systems making up a system
May include major information flows between sub-systems
Usually presented as a block diagram
May identify different types of functional component in the model
12/11/2020NCET , DEPT. of CSE
58
Sub-system development
Typically parallel projects developing the hardware, software and communications.May involve some COTS (Commercial Off-the-Shelf) systems procurement.Lack of communication across implementation teams.Bureaucratic and slow mechanism for proposing system changes means that the development schedule may be extended because of the need for rework.
12/11/2020NCET , DEPT. of CSE
62
System integration
The process of putting hardware, software and people together to make a system.
Should be tackled incrementally so that sub-systems are integrated one at a time.
Interface problems between sub-systems are usually found at this stage.
May be problems with uncoordinated deliveries of system components.
12/11/2020NCET , DEPT. of CSE
63
System installation
After completion, the system has to be installed in the customer’s environment
Environmental assumptions may be incorrect;May be human resistance to the introduction of a new system;System may have to coexist with alternative systems for some time;May be physical installation problems (e.g. cabling problems);Operator training has to be identified.
12/11/2020NCET , DEPT. of CSE
64
System evolution
Large systems have a long lifetime. They must evolve to meet changing requirements.Evolution is inherently costly
Changes must be analysed from a technical and business perspective;Sub-systems interact so unanticipated problems can arise;There is rarely a rationale for original design decisions;System structure is corrupted as changes are made to it.
Existing systems which must be maintained are sometimes called legacy systems.
12/11/2020NCET , DEPT. of CSE
65
System decommissioning
Taking the system out of service after its useful lifetime.
May require removal of materials (e.g. dangerous chemicals) which pollute the environment
Should be planned for in the system design by encapsulation.
May require data to be restructured and converted to be used in some other system.
12/11/2020NCET , DEPT. of CSE
66
Organisations/people/systems
Socio-technical systems are organisational systems intended to help deliver some organisational or business goal.
If you do not understand the organisational environment where a system is used, the system is less likely to meet the real needs of the business and its users.
12/11/2020NCET , DEPT. of CSE
67
Human and organisational factors
Process changes Does the system require changes to the work processes in the environment?
Job changes
Does the system de-skill the users in an environment or cause them to change the way they work?
Organisational changes
Does the system change the political power structure in an organisation?
12/11/2020NCET , DEPT. of CSE
68
Organisational processes
The processes of systems engineering overlap and interact with organisational procurement processes.Operational processes are the processes involved in using the system for its intended purpose. For new systems, these have to be defined as part of the system design.Operational processes should be designed to be flexible and should not force operations to be done in a particular way. It is important that human operators can use their initiative if problems arise.
12/11/2020NCET , DEPT. of CSE
69
System procurement
Acquiring a system for an organization to meet some needSome system specification and architectural design is usually necessary before procurement
You need a specification to let a contract for system developmentThe specification may allow you to buy a commercial off-the-shelf (COTS) system. Almost always cheaper than developing a system from scratch
Large complex systems usually consist of a mix of off the shelf and specially designed components. The procurement processes for these different types of component are usually different.
12/11/2020NCET , DEPT. of CSE
71
Procurement issues
Requirements may have to be modified to match the capabilities of off-the-shelf components.
The requirements specification may be part of the contract for the development of the system.
There is usually a contract negotiation period to agree changes after the contractor to build a system has been selected.
12/11/2020NCET , DEPT. of CSE
73
Contractors and sub-contractors
The procurement of large hardware/software systems is usually based around some principal contractor.
Sub-contracts are issued to other suppliers to supply parts of the system.
Customer liases with the principal contractor and does not deal directly with sub-contractors.
12/11/2020NCET , DEPT. of CSE
74
Legacy systems
Socio-technical systems that have been developed using old or obsolete technology.Crucial to the operation of a business and it is often too risky to discard these systems
Bank customer accounting system;Aircraft maintenance system.
Legacy systems constrain new business processes and consume a high proportion of company budgets.
12/11/2020NCET , DEPT. of CSE
76
Legacy system components
Hardware - may be obsolete mainframe hardware.Support software - may rely on support software from suppliers who are no longer in business.Application software - may be written in obsolete programming languages.Application data - often incomplete and inconsistent.Business processes - may be constrained by software structure and functionality.Business policies and rules - may be implicit and embedded in the system software.
12/11/2020NCET , DEPT. of CSE
78
Key points
Socio-technical systems include computer hardware, software and people and are designed to meet some business goal.Emergent properties are properties that are characteristic of the system as a whole and not its component parts.The systems engineering process includes specification, design, development, integration and testing. System integration is particularly critical.
12/11/2020NCET , DEPT. of CSE
80
Key points
Human and organisational factors have a significant effect on the operation of socio-technical systems.There are complex interactions between the processes of system procurement, development and operation.A legacy system is an old system that continues to provide essential services.Legacy systems include business processes, application software, support software and system hardware.
12/11/2020NCET , DEPT. of CSE
81
Objectives
To explain what is meant by a critical system where system failure can have severe human or economic consequence.
To explain four dimensions of dependability - availability, reliability, safety and security.
To explain that, to achieve dependability, you need to avoid mistakes, detect and remove errors and limit damage caused by failure.
12/11/2020NCET , DEPT. of CSE
83
Critical Systems
Safety-critical systemsFailure results in loss of life, injury or damage to the environment;Chemical plant protection system; medical system
Mission-critical systemsFailure results in failure of some goal-directed activity;Spacecraft navigation system;
Business-critical systemsFailure results in high economic losses;Customer accounting system in a bank;NASDAQ trading system
12/11/2020NCET , DEPT. of CSE
85
System dependability
For critical systems, it is usually the case that the most important system property is the dependability of the system.The dependability of a system reflects the user’s degree of trust in that system. It reflects the extent of the user’s confidence that it will operate as users expect and that it will not ‘fail’ in normal use.Usefulness and trustworthiness are not the same thing. A system does not have to be trusted to be useful.
12/11/2020NCET , DEPT. of CSE
86
Importance of dependability
Systems that are not dependable and are unreliable, unsafe or insecure may be rejected by their users.
The costs of system failure may be very high (spacecraft).
Undependable systems may cause information loss with a high consequent recovery cost.
12/11/2020NCET , DEPT. of CSE
87
Development methods for critical systems
The costs of critical system failure are so high that development methods may be used that are not cost-effective for other types of system.
Examples of development methodsFormal methods of software development
Static analysis
External quality assurance
Verification/validation may cost >50% of the development
12/11/2020NCET , DEPT. of CSE
88
Socio-technical critical systems
Hardware failureHardware fails because of design and manufacturing errors or because components have reached the end of their natural life.
Software failureSoftware fails due to errors in its specification, design or implementation.
Operational failureHuman operators make mistakes. Now perhaps the largest single cause of system failures.
12/11/2020NCET , DEPT. of CSE
89
A software-controlled insulin pump
Used by diabetics to simulate the function of the pancreas which manufactures insulin, an essential hormone that metabolises blood glucose.
Measures blood glucose (sugar) using a micro-sensor and computes the insulin dose required to metabolise the glucose.
12/11/2020NCET , DEPT. of CSE
90
Dependability requirements
The system shall be available to deliver insulin when required to do so.
The system shall perform reliability and deliver the correct amount of insulin to counteract the current level of blood sugar.
The essential safety requirement is that excessive doses of insulin should never be delivered as this is potentially life threatening.
12/11/2020NCET , DEPT. of CSE
93
Dependability
The dependability of a system equates to its trustworthiness.A dependable system is a system that is trusted by its users.Principal dimensions of dependability are:
Availability;Reliability;Safety;Security
12/11/2020NCET , DEPT. of CSE
94
Other dependability properties
RepairabilityReflects the extent to which the system can be repaired in the event of a failure (Linux vs. Windows)
MaintainabilityReflects the extent to which the system can be adapted to new requirements;
SurvivabilityReflects the extent to which the system can deliver services whilst under hostile attack;
Error toleranceReflects the extent to which user input errors can be avoided and tolerated.
12/11/2020NCET , DEPT. of CSE
96
Maintainability
A system attribute that is concerned with the ease of repairing the system after a failure has been discovered or changing the system to include new features
Very important for critical systems as faults are often introduced into a system because of maintenance problems (Y2K problem)
12/11/2020NCET , DEPT. of CSE
97
Survivability
The ability of a system to continue to deliver its services to users in the face of deliberate or accidental attack
This is an increasingly important attribute for distributed systems whose security can be compromised
Survivability subsumes the notion of resilience - the ability of a system to continue in operation in spite of component failures
12/11/2020NCET , DEPT. of CSE
98
Dependability vs performance
Untrustworthy systems may be rejected by their usersSystem failure costs may be very highIt is very difficult to tune systems to make them more dependableIt may be possible to compensate for poor performanceUntrustworthy systems may cause loss of valuable information
12/11/2020NCET , DEPT. of CSE
99
Dependability costs
Dependability costs tend to increase exponentially as increasing levels of dependability are requiredThere are two reasons for this
The use of more expensive development techniques and hardware that are required to achieve the higher levels of dependabilityThe increased testing and system validation that is required to convince the system client that the required levels of dependability have been achieved
12/11/2020NCET , DEPT. of CSE
100
Dependability economics
Because of very high costs of dependability achievement, it may be more cost effective to accept untrustworthy systems and pay for failure costsHowever, this depends on social and political factors. A reputation for products that can’t be trusted may lose future businessDepends on system type - for business systems in particular, modest levels of dependability may be adequate
12/11/2020NCET , DEPT. of CSE
102
Availability and reliability
ReliabilityThe probability of failure-free system operation over a specified time in a given environment for a given purpose
AvailabilityThe probability that a system, at a point in time, will be operational and able to deliver the requested services
Both of these attributes can be expressed quantitatively
12/11/2020NCET , DEPT. of CSE
103
Availability and reliability
It is sometimes possible to subsume system availability under system reliability
Obviously if a system is unavailable it is not delivering the specified system services
However, it is possible to have systems with low reliability that must be available. So long as system failures can be repaired quickly and do not damage data, low reliability may not be a problem (Windows)Availability takes repair time into account
12/11/2020NCET , DEPT. of CSE
104
Faults and failures
Failures are a usually a result of system errors that are derived from faults in the systemHowever, faults do not necessarily result in system errors
The faulty system state may be transient and ‘corrected’ before an error arises
Errors do not necessarily lead to system failuresThe error can be corrected by built-in error detection and recovery The failure can be protected against by built-in protection facilities. These may, for example, protect system resources from system errors
12/11/2020NCET , DEPT. of CSE
106
Perceptions of reliability
The formal definition of reliability does not always reflect the user’s perception of a system’s reliability
The assumptions that are made about the environment where a system will be used may be incorrect
Usage of a system in an office environment is likely to be quite different from usage of the same system in a university environment
The consequences of system failures affects the perception of reliability
Unreliable windscreen wipers in a car may be irrelevant in a dry climateFailures that have serious consequences (such as an engine breakdown in a car) are given greater weight by users than failures that are inconvenient
12/11/2020NCET , DEPT. of CSE
107
Reliability achievement
Fault avoidanceDevelopment technique are used that either minimise the possibility of mistakes or trap mistakes before they result in the introduction of system faults
Fault detection and removalVerification and validation techniques that increase the probability of detecting and correcting errors before the system goes into service are used
Fault toleranceRun-time techniques are used to ensure that system faults do not result in system errors and/or that system errors do not lead to system failures
12/11/2020NCET , DEPT. of CSE
108
Reliability modelling
You can model a system as an input-output mapping where some inputs will result in erroneous outputsThe reliability of the system is the probability that a particular input will lie in the set of inputs that cause erroneous outputsDifferent people will use the system in different ways so this probability is not a static system attribute but depends on the system’s environment
12/11/2020NCET , DEPT. of CSE
109
Reliability improvement
Removing X% of the faults in a system will not necessarily improve the reliability by X%. A study at IBM showed that removing 60% of product defects resulted in a 3% improvement in reliabilityProgram defects may be in rarely executed sections of the code so may never be encountered by users. Removing these does not affect the perceived reliabilityA program with known faults may therefore still be seen as reliable by its users
12/11/2020NCET , DEPT. of CSE
112
Key points
A critical system is a system where failure can lead to high economic loss, physical damage or threats to life.The dependability in a system reflects the user’s trust in that systemThe availability of a system is the probability that it will be available to deliver services when requestedThe reliability of a system is the probability that system services will be delivered as specifiedReliability and availability are generally seen as necessary but not sufficient conditions for safety and security
12/11/2020NCET , DEPT. of CSE
113
Key points
Reliability is related to the probability of an error occurring in operational use. A system with known faults may be reliableSafety is a system attribute that reflects the system’s ability to operate without threatening people or the environmentSecurity is a system attribute that reflects the system’s ability to protect itself from external attackDependability improvement requires a socio-technical approach to design where you consider the humans as well as the hardware and software
12/11/2020NCET , DEPT. of CSE
114
Objectives
To introduce the concepts of user and system requirements
To describe functional and non-functional requirements
To explain how software requirements may be organised in a requirements document
12/11/2020NCET , DEPT. of CSE
117
Topics covered
Functional and non-functional requirements
User requirements
System requirements
Interface specification
The software requirements document
12/11/2020NCET , DEPT. of CSE
118
Requirements engineering
The process of establishing the services that the customer requires from a system and the constraints under which it operates and is developed.
The requirements themselves are the descriptions of the system services and constraints that are generated during the requirements engineering process.
12/11/2020NCET , DEPT. of CSE
119
What is a requirement?
It may range from a high-level abstract statement of a service or of a system constraint to a detailed mathematical functional specification.This is inevitable as requirements may serve a dual function
May be the basis for a bid for a contract - therefore must be open to interpretation;May be the basis for the contract itself - therefore must be defined in detail;Both these statements may be called requirements.
12/11/2020NCET , DEPT. of CSE
120
Types of requirement
User requirementsStatements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers.
System requirementsA structured document setting out detailed descriptions of the system’s functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.
12/11/2020NCET , DEPT. of CSE
122
Definitions and specifications
1. T
he software must provide a means of representing and1. accessing external files created by other tools .
1.1 The user should be provided with facilities to define the type of1.2 external files.1.2 Each external file type may have an associated tool which may be1.2 applied to the file .1.3 Each external file type may be represented as a specific icon on1.2 the user’s display.1.4 Facilities should be provided for the icon representing an1.2 external file type to be defined by the user.1.5 When a user selects an icon representing an external file, the1.2 effect of that selection is to apply the tool associated with the type of1.2 the external file to the file represented by the selected icon.
User requirement definition
System requirements specification
12/11/2020NCET , DEPT. of CSE
123
Requirements readers
Client managersSystem end-usersClient engineersContractor managersSystem architects
System end-usersClient engineersSystem architectsSoftware developers
Client engineers (perhaps)System architectsSoftware developers
Userrequirements
Systemrequirements
Software designspecification
12/11/2020NCET , DEPT. of CSE
124
Functional and non-functional requirements
Functional requirementsStatements of services the system should provide, how the system should react to particular inputs and how the system should behave in particular situations.
Non-functional requirementsconstraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc.
Domain requirementsRequirements that come from the application domain of the system and that reflect characteristics of that domain.
12/11/2020NCET , DEPT. of CSE
125
Functional requirements
Describe functionality or system services.
Depend on the type of software, expected users and the type of system where the software is used.
Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail.
12/11/2020NCET , DEPT. of CSE
126
The LIBSYS system
A library system that provides a single interface to a number of databases of articles in different libraries.
Users can search for, download and print these articles for personal study.
12/11/2020NCET , DEPT. of CSE
127
Examples of functional requirements
The user shall be able to search either all of the initial set of databases or select a subset from it.
The system shall provide appropriate viewers for the user to read documents in the document store.
Every order shall be allocated a unique identifier (ORDER_ID) which the user shall be able to copy to the account’s permanent storage area.
12/11/2020NCET , DEPT. of CSE
128
Requirements imprecision
Problems arise when requirements are not precisely stated.
Ambiguous requirements may be interpreted in different ways by developers and users.
Consider the term ‘appropriate viewers’User intention - special purpose viewer for each different document type;
Developer interpretation - Provide a text viewer that shows the contents of the document.
12/11/2020NCET , DEPT. of CSE
129
Requirements completeness and consistency
In principle, requirements should be both complete and consistent.Complete
They should include descriptions of all facilities required.
ConsistentThere should be no conflicts or contradictions in the descriptions of the system facilities.
In practice, it is impossible to produce a complete and consistent requirements document.
12/11/2020NCET , DEPT. of CSE
130
Non-functional requirements
These define system properties and constraints e.g. reliability, response time and storage requirements. Constraints are I/O device capability, system representations, etc.Process requirements may also be specified mandating a particular CASE system, programming language or development method.Non-functional requirements may be more critical than functional requirements. If these are not met, the system is useless.
12/11/2020NCET , DEPT. of CSE
131
Non-functional classifications
Product requirementsRequirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.
Organisational requirementsRequirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc.
External requirementsRequirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.
12/11/2020NCET , DEPT. of CSE
132
Non-functional requirements examples
Product requirement8.1 The user interface for LIBSYS shall be implemented as simple
HTML without frames or Java applets.
Organisational requirement9.3.2 The system development process and deliverable documents
shall conform to the process and deliverables defined in XYZCo-SP-STAN-95.
External requirement7.6.5 The system shall not disclose any personal information about
customers apart from their name and reference number to the operators of the system.
12/11/2020NCET , DEPT. of CSE
134
Goals and requirements
Non-functional requirements may be very difficult to state precisely and imprecise requirements may be difficult to verify. Goal
A general intention of the user such as ease of use.
Verifiable non-functional requirementA statement using some measure that can be objectively tested.
Goals are helpful to developers as they convey the intentions of the system users.
12/11/2020NCET , DEPT. of CSE
135
Examples
A system goalThe system should be easy to use by experienced controllers and should be organised in such a way that user errors are minimised.
A verifiable non-functional requirementExperienced controllers shall be able to use all the system functions after a total of two hours training. After this training, the average number of errors made by experienced users shall not exceed two per day.
12/11/2020NCET , DEPT. of CSE
136
Requirements interaction
Conflicts between different non-functional requirements are common in complex systems.Spacecraft system
To minimise weight, the number of separate chips in the system should be minimised.To minimise power consumption, lower power chips should be used.However, using low power chips may mean that more chips have to be used. Which is the most critical requirement?
12/11/2020NCET , DEPT. of CSE
138
Domain requirements
Derived from the application domain and describe system characteristics and features that reflect the domain.
Domain requirements be new functional requirements, constraints on existing requirements or define specific computations.
If domain requirements are not satisfied, the system may be unworkable.
12/11/2020NCET , DEPT. of CSE
139
Library system domain requirements
There shall be a standard user interface to all databases which shall be based on the Z39.50 standard.
Because of copyright restrictions, some documents must be deleted immediately on arrival. Depending on the user’s requirements, these documents will either be printed locally on the system server for manually forwarding to the user or routed to a network printer.
12/11/2020NCET , DEPT. of CSE
140
Domain requirements problems
UnderstandabilityRequirements are expressed in the language of the application domain;
This is often not understood by software engineers developing the system.
ImplicitnessDomain specialists understand the area so well that they do not think of making the domain requirements explicit.
12/11/2020NCET , DEPT. of CSE
141
User requirements
Should describe functional and non-functional requirements in such a way that they are understandable by system users who don’t have detailed technical knowledge.
User requirements are defined using natural language, tables and diagrams as these can be understood by all users.
12/11/2020NCET , DEPT. of CSE
142
Problems with natural language
Lack of clarity Precision is difficult without making the document difficult to read.
Requirements confusionFunctional and non-functional requirements tend to be mixed-up.
Requirements amalgamationSeveral different requirements may be expressed together.
12/11/2020NCET , DEPT. of CSE
143
LIBSYS requirement
4..5 LIBSYS shall provide a financial accounting system that maintains records of all payments made by users of the system. System managers may configure this system so that regular users may receive discounted rates.
12/11/2020NCET , DEPT. of CSE
144
Editor grid requirement
2.6 Grid facilities To assist in the positioning of entities on a diagram, the user may turn on a grid in either centimetres or inches, via an option on the control panel. Initially, the grid is off. The grid may be turned on and off at any time during an editing session and can be toggled between inches and centimetres at any time. A grid option will be provided on the reduce-to-fit view but the number of grid lines shown will be reduced to avoid filling the smaller diagram with grid lines.
12/11/2020NCET , DEPT. of CSE
145
Requirement problems
Database requirements includes both conceptual and detailed information
Describes the concept of a financial accounting system that is to be included in LIBSYS;However, it also includes the detail that managers can configure this system - this is unnecessary at this level.
Grid requirement mixes three different kinds of requirement
Conceptual functional requirement (the need for a grid);Non-functional requirement (grid units);Non-functional UI requirement (grid switching).
12/11/2020NCET , DEPT. of CSE
146
Guidelines for writing requirements
Invent a standard format (template) and use it for all requirements.
Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements.
Use text highlighting to identify key parts of the requirement.
Avoid the use of computer jargon.
12/11/2020NCET , DEPT. of CSE
148
System requirements
More detailed specifications of system functions, services and constraints than user requirements.They are intended to be a basis for designing the system.They may be incorporated into the system contract.System requirements may be defined or illustrated using system models discussed in Chapter 8.
12/11/2020NCET , DEPT. of CSE
149
Requirements and design
In principle, requirements should state what the system should do and the design should describe how it does this.In practice, requirements and design are inseparable
A system architecture may be designed to structure the requirements;The system may inter-operate with other systems that generate design requirements;The use of a specific design may be a domain requirement.
12/11/2020NCET , DEPT. of CSE
150
Problems with NL specification
AmbiguityThe readers and writers of the requirement must interpret the same words in the same way. NL is naturally ambiguous so this is very difficult.
Over-flexibilityThe same thing may be said in a number of different ways in the specification.
Lack of modularisationNL structures are inadequate to structure system requirements.
12/11/2020NCET , DEPT. of CSE
151
Structured language specifications
The freedom of the requirements writer is limited by a predefined template for requirements.All requirements are written in a standard way.The terminology used in the description may be limited.The advantage is that the most of the expressiveness of natural language is maintained but a degree of uniformity is imposed on the specification.
12/11/2020NCET , DEPT. of CSE
153
Form-based specifications
Definition of the function or entity.
Description of inputs and where they come from.
Description of outputs and where they go to.
Indication of other entities required.
Pre and post conditions (if appropriate).
The side effects (if any) of the function.
12/11/2020NCET , DEPT. of CSE
154
Tabular specification
Used to supplement natural language.
Particularly useful when you have to define a number of possible alternative courses of action.
12/11/2020NCET , DEPT. of CSE
156
Graphical models
Graphical models are most useful when you need to show how state changes or where you need to describe a sequence of actions.
Different graphical models are explained in Chapter 8.
12/11/2020NCET , DEPT. of CSE
158
Sequence diagrams
These show the sequence of events that take place during some user interaction with a system.You read them from top to bottom to see the order of the actions that take place.Cash withdrawal from an ATM
Validate card;Handle request;Complete transaction.
12/11/2020NCET , DEPT. of CSE
159
Interface specification
Most systems must operate with other systems and the operating interfaces must be specified as part of the requirements.Three types of interface may have to be defined
Procedural interfaces;Data structures that are exchanged;Data representations.
Formal notations are an effective technique for interface specification.
12/11/2020NCET , DEPT. of CSE
161
The requirements document
The requirements document is the official statement of what is required of the system developers.
Should include both a definition of user requirements and a specification of the system requirements.
It is NOT a design document. As far as possible, it should set of WHAT the system should do rather than HOW it should do it
12/11/2020NCET , DEPT. of CSE
163
IEEE requirements standard
Defines a generic structure for a requirements document that must be instantiated for each specific system.
Introduction.General description.Specific requirements.Appendices.Index.
12/11/2020NCET , DEPT. of CSE
165
Requirements document structure
PrefaceIntroductionGlossaryUser requirements definitionSystem architectureSystem requirements specificationSystem modelsSystem evolutionAppendicesIndex
12/11/2020NCET , DEPT. of CSE
166
Key points
Requirements set out what the system should do and define constraints on its operation and implementation.Functional requirements set out services the system should provide.Non-functional requirements constrain the system being developed or the development process.User requirements are high-level statements of what the system should do. User requirements should be written using natural language, tables and diagrams.
12/11/2020NCET , DEPT. of CSE
167
Key points
System requirements are intended to communicate the functions that the system should provide.A software requirements document is an agreed statement of the system requirements.The IEEE standard is a useful starting point for defining more detailed specific requirements standards.
12/11/2020NCET , DEPT. of CSE
168
ObjectivesTo explain the main tasks undertaken by project managersTo introduce software project management and to describe its distinctive characteristicsTo discuss project planning and the planning processTo show how graphical schedule representations are used by project managementTo discuss the notion of risks and the risk management process
12/11/2020NCET , DEPT. of CSE
170
Topics coveredManagement activities
Project planning
Project scheduling
12/11/2020NCET , DEPT. of CSE
171
Concerned with activities involved in ensuring that software is delivered on time and on schedule and in accordance with the requirements of the organisations developing and procuring the software.
Project management is needed because software development is always subject to budget and schedule constraints that are set by the organisation developing the software.
Software project management
12/11/2020NCET , DEPT. of CSE
172
The product is intangible.
The product is uniquely flexible.
Software engineering is not recognized as an engineering discipline with the sane status as mechanical, electrical engineering, etc.
The software development process is not standardised.
Many software projects are 'one-off' projects.
Software management distinctions
12/11/2020NCET , DEPT. of CSE
173
Proposal writing.
Project planning and scheduling.
Project costing.
Project monitoring and reviews.
Personnel selection and evaluation.
Report writing and presentations.
Management activities
12/11/2020NCET , DEPT. of CSE
174
These activities are not peculiar to software management.
Many techniques of engineering project management are equally applicable to software project management.
Technically complex engineering systems tend to suffer from the same problems as software systems.
Management commonalities
12/11/2020NCET , DEPT. of CSE
175
Project staffingMay not be possible to appoint the ideal people to work on a project
Project budget may not allow for the use of highly-paid staff;Staff with the appropriate experience may not be available;An organisation may wish to develop employee skills on a software project.
Managers have to work within these constraints especially when there are shortages of trained staff.
12/11/2020NCET , DEPT. of CSE
176
Project planningProbably the most time-consuming project management activity.
Continuous activity from initial concept through to system delivery. Plans must be regularly revised as new information becomes available.
Various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget.
12/11/2020NCET , DEPT. of CSE
177
Project planning processEstablish the project constraints Make initial assessments of the project parameters Define project milestones and deliverableswhile project has not been completed or cancelled loop
Draw up project scheduleInitiate activities according to schedule
Wait ( for a while ) Review project progress Revise estimates of project parameters Update the project schedule Re-negotiate project constraints and deliverables if ( problems arise ) then Initiate technical review and possible revision end ifend loop
12/11/2020NCET , DEPT. of CSE
179
The project plan
The project plan sets out:The resources available to the project;
The work breakdown;
A schedule for the work.
12/11/2020NCET , DEPT. of CSE
180
Project plan structureIntroduction.
Project organisation.
Risk analysis.
Hardware and software resource requirements.
Work breakdown.
Project schedule.
Monitoring and reporting mechanisms.
12/11/2020NCET , DEPT. of CSE
181
Activity organizationActivities in a project should be organised to produce tangible outputs for management to judge progress.Milestones are the end-point of a process activity.Deliverables are project results delivered to customers.The waterfall process allows for the straightforward definition of progress milestones.
12/11/2020NCET , DEPT. of CSE
182
Project schedulingSplit project into tasks and estimate time and resources required to complete each task.
Organize tasks concurrently to make optimal use of workforce.
Minimize task dependencies to avoid delays caused by one task waiting for another to complete.
Dependent on project managers intuition and experience.
12/11/2020NCET , DEPT. of CSE
184
Scheduling problemsEstimating the difficulty of problems and hence the cost of developing a solution is hard.
Productivity is not proportional to the number of people working on a task.
Adding people to a late project makes it later because of communication overheads.
The unexpected always happens. Always allow contingency in planning.
12/11/2020NCET , DEPT. of CSE
186
Bar charts and activity networksGraphical notations used to illustrate the project schedule.
Show project breakdown into tasks. Tasks should not be too small. They should take about a week or two.
Activity charts show task dependencies and the the critical path.
Bar charts show schedule against calendar time.
12/11/2020NCET , DEPT. of CSE
187
Risk management
Risk management is concerned with identifying risks and drawing up plans to minimise their effect on a project.A risk is a probability that some adverse circumstance will occur
Project risks affect schedule or resources;Product risks affect the quality or performance of the software being developed;Business risks affect the organisation developing or procuring the software.
12/11/2020NCET , DEPT. of CSE
192
The risk management process
Risk identificationIdentify project, product and business risks;
Risk analysisAssess the likelihood and consequences of these risks;
Risk planningDraw up plans to avoid or minimise the effects of the risk;
Risk monitoringMonitor the risks throughout the project;
12/11/2020NCET , DEPT. of CSE
194
Risk identification
Technology risks.
People risks.
Organisational risks.
Requirements risks.
Estimation risks.
12/11/2020NCET , DEPT. of CSE
196
Risk analysis
Assess probability and seriousness of each risk.
Probability may be very low, low, moderate, high or very high.
Risk effects might be catastrophic, serious, tolerable or insignificant.
12/11/2020NCET , DEPT. of CSE
198
Risk planning
Consider each risk and develop a strategy to manage that risk.Avoidance strategies
The probability that the risk will arise is reduced;
Minimisation strategiesThe impact of the risk on the project or product will be reduced;
Contingency plansIf the risk arises, contingency plans are plans to deal with that risk;
12/11/2020NCET , DEPT. of CSE
201
Risk monitoring
Assess each identified risks regularly to decide whether or not it is becoming less or more probable.
Also assess whether the effects of the risk have changed.
Each key risk should be discussed at management progress meetings.
12/11/2020NCET , DEPT. of CSE
204
Key pointsGood project management is essential for project success.The intangible nature of software causes problems for management.Managers have diverse roles but their most significant activities are planning, estimating and scheduling.Planning and estimating are iterative processes which continue throughout the course of a project.
12/11/2020NCET , DEPT. of CSE
206
A project milestone is a predictable state where a formal report of progress is presented to management. Project scheduling involves preparing various graphical representations showing project activities, their durations and staffing. Risk management is concerned with identifying risks which may affect the project and planning to ensure that these risks do not develop into major threats.
Key points
12/11/2020NCET , DEPT. of CSE
207
Objectives
● To explain how an iterative, incremental development process leads to faster delivery of more useful software
● To discuss the essence of agile development methods
● To explain the principles and practices of extreme programming
● To explain the roles of prototyping in the software process
210
12/11/2020NCET , DEPT. of CSE
Topics covered
● Agile methods● Extreme programming● Rapid application development● Software prototyping
211
12/11/2020NCET , DEPT. of CSE
Rapid software development● Because of rapidly changing business
environments, businesses have to respond to new opportunities and competition.
● This requires software and rapid development and delivery is not often the most critical requirement for software systems.
● Businesses may be willing to accept lower quality software if rapid delivery of essential functionality is possible.
212
12/11/2020NCET , DEPT. of CSE
Requirements
● Because of the changing environment, it is often impossible to arrive at a stable, consistent set of system requirements.
● Therefore a waterfall model of development is impractical and an approach to development based on iterative specification and delivery is the only way to deliver software quickly.
213
12/11/2020NCET , DEPT. of CSE
Characteristics of RAD processes
design and● Theprocesses of specification,implementationare concurrent.There is no detailed specification and design documentation is minimised.
● The system is developed in a series of increments. End users evaluate each increment and make proposals for later increments.
● System user interfaces are usually developed using an interactive development system.
214
12/11/2020NCET , DEPT. of CSE
Advantages of incremental development
● Accelerated delivery of customer services. Each increment delivers the highest priority functionality to the customer.
● User engagement with the system. Users have to be involved in the development which means the system is more likely to meet their requirements and the users are more committed to the system.
216
12/11/2020NCET , DEPT. of CSE
Problems with incremental development
● Management problems• Progress can be hard to judge and problems hard to find
because there is no documentation to demonstrate what has been done.
● Contractual problems• The normal contract may include a specification; without a
specification, different forms of contract have to be used.● Validation problems
• Without a specification, what is the system being tested against?
● Maintenance problems• Continual change tends to corrupt software structure making it
more expensive to change and evolve to meet new requirements.
217
12/11/2020NCET , DEPT. of CSE
Prototyping
● For some large systems, incremental iterative development and delivery may be impractical; this is especially true when multiple teams are working on different sites.
● Prototyping, where an experimentalsystem is
requirements may be used. This system
218
developed as a basis for formulating theis
thrown away when the system specification has been agreed.
12/11/2020NCET , DEPT. of CSE
Conflicting objectives
deliver a working system toend-users.
● The objective of incremental development is to
Thedevelopmentstarts with those requirements which are best understood.
● The objective of throw-away prototyping is to validate or derive the system requirements. The prototyping process starts with those requirements which are poorly understood.
220
12/11/2020NCET , DEPT. of CSE
Agile methods
● Dissatisfaction with the overheads involved in design methods led to the creation of agile methods. These methods:
• Focus on the code rather than the design;• Are based on an iterative approach to software development;• Are intended to deliver working software quickly and evolve this
quickly to meet changing requirements.
● Agile methods are probably best suited to small/medium- sized business systems or PC products.
221
12/11/2020NCET , DEPT. of CSE
Principles of agile methods
Principle
Customer involvem ent
Incremental delivery
People not pr ocess
Embrac e change
Maintain sim plicity
Description
The c ustomer should be c losely involved throughout thedeve lopm ent process. Their role is provide and prioritise new system req uirements and to evaluate the iterations of the system.
The software is developed in increments w ith the customer specifying the requireme nts to be included in each i ncrement.
The skills of the development tea m should be rec ognised and exploited. T he t eam should be left to develop their own ways of working w ithout prescriptive proce sses.
Expec t the sys tem requirem ents to change and design the sys tem so that it can acc ommodate th ese c han ges.
Focus on sim plicity in both the software be ing deve loped and in the development pr oce ss used. Wherever possible, actively w ork to eliminate com plexity from the system.
222
12/11/2020NCET , DEPT. of CSE
Problems with agile methods
● It canbe difficult to keep the interestof customerswho are involved in the process.
● Team members may be unsuited to the intense involvement that characterises agile methods.
● Prioritising changes canbe difficult where there are multiple stakeholders.
● Maintaining simplicity requires extra work.● Contracts may be a problem as with other approaches to
iterative development.
223
12/11/2020NCET , DEPT. of CSE
Extreme programming
● Perhaps thebest-known and most widelyused agile method.
● Extreme Programming (XP) takes an‘extreme’ approach to iterative development.• New versions may be built several times per day;• Increments are delivered to customers every
2 weeks;• All tests must be run for every build and the build is
only accepted if tests run successfully.
224
12/11/2020NCET , DEPT. of CSE
Extreme programming practices 1
Incr emental plann ing
Small Releas es
Sim ple De sign
Requi rements are record ed on Story Cards and the St ories to be included in a release are de termi ned by the time available and their relative priority. The deve lope rs break these S tories into deve lopment ŌTasks Õ.
The minimal useful set of func tiona lity that prov ides bu sines s va lue is deve loped first. Releas es of the system are frequen t and incrementally add func tiona lity to the first release.
Enough de sign is ca rri ed ou t to m eet the cu rren t requ iremen ts
Test first deve lopmen t
and no more.
An au tomated un it test framewo rk is used to write t ests for a new piece of func tiona lity be fore that fun ction ality itself isimplemented.
Refactoring All deve lope rs are expe cted to refactor the code con tinuous ly as soon as po ssible code improve ments are found . This keeps the code simple and maintainable.
12/11/2020NCET , DEPT. of CSE
226
Extreme programming practices 2
Pair Progra mmi ng
Co llective Owne rship
Con tinuou s Integr ation
Sustainab le pac e
On - ite Cu stomer
Deve lopers work in pa irs, che cking ea ch otherÕs w ork and providing the suppo rt to always do a good job.
The pa irs of deve lopers wo rk on all areas of the system, so that no islands of expe rtise deve lop and all the deve lope rs own a ll the code . Anyon e can chang e any thing.
As soon as wo rk on a task is complete it is integrated into the who le system. After any such integration, all the un it tests in the system must pass.
Larg e amoun ts of ove r-t ime are not con sidered acceptable as the net effect is often to reduc e code qua lity and medium term produc tivity
A rep resen tative of the end -user o f the system (t he Customershou ld be ava ilable full time for the use of the XP team. In an extreme prog rammi ng p roce ss, the cus tomer is a member of the deve lopmen t team and is respon sible for bringing systemrequ irements to the team for im plementation.
227
12/11/2020NCET , DEPT. of CSE
XP and agile principles
supported throughsmall,
● Incremental developmentis frequent system releases.
● Customer involvement means full-time customer engagement with the team.
● People not process through pair programming, collective ownership and a process that avoids long working hours.
● Change supported through regular system releases.● Maintainingsimplicity throughconstant refactoring of
code.
228
12/11/2020NCET , DEPT. of CSE
Requirements scenarios● In XP, user requirements are expressed as
scenarios or user stories.● These are written on cards and the development
team break them down into implementation tasks. These tasks are the basis of schedule and cost estimates.
● The customer chooses the stories for inclusion in the next release based on their priorities and the schedule estimates.
229
12/11/2020NCET , DEPT. of CSE
XP and change
● Conventional wisdom in software engineering is to design for change. It is worth spending time and effort anticipating changes as this reduces costs later in the life cycle.
● XP,however,
maintains that this is not
worthwhile as changes cannot be reliablyanticipated.
● Rather, it proposes constant code improvement (refactoring) to make changes easier when they have to be implemented.
231
12/11/2020NCET , DEPT. of CSE
Testing in XP
● Test-first development.● Incremental test development from scenarios.● User involvement in test development and
validation.● Automated test harnesses are used to run all
component tests each time that a new release is built.
232
12/11/2020NCET , DEPT. of CSE
Test-first development
● Writing tests before code clarifies the requirements to be implemented.
● Tests are written as programs rather than data so that they can be executed automatically. The test includes a check that it has executed correctly.
● All previous and new tests are automatically run when new functionality is added. Thus checking that the new functionality has not introduced errors.
235
12/11/2020NCET , DEPT. of CSE
Pair programming● In XP, programmers work in pairs, sitting together
to develop code.● This
spreads knowledge across the teamhelps develop common ownership of code
and.● It serves as an informal review process as each line of
code is looked at by more than 1 person.● It encourages refactoring as the whole team can benefit
from this.● Measurements suggest that development productivity
with pair programming is similar to that of two people working independently.
236
12/11/2020NCET , DEPT. of CSE
Rapid application development
● Agile methods have received a lot of attention but other approaches to rapid application development have been used for many years.
● These are designed to develop data-intensive business applications and rely on programming and presenting information from a database.
237
12/11/2020NCET , DEPT. of CSE
RAD environment tools
● Database programming language● Interface generator● Links to office applications● Report generators
238
12/11/2020NCET , DEPT. of CSE
Interface generation
● Many applications are based around complex forms and developing these forms manually is a time-consuming activity.
● RAD environments include support for screen generation including:
• Interactive form definition using drag and drop techniques;• Form linking where the sequence of forms to be presented is
specified;• Form verification where allowed ranges in form fields is defined.
240
12/11/2020NCET , DEPT. of CSE
Visual programming● Scripting languages such as Visual Basic
support visual programming where the prototype is developed by creating a user interface from standard items and associating components with these items
● A large library of components exists to support this type of development
● These may be tailored to suit the specific application requirements
241
12/11/2020NCET , DEPT. of CSE
Problems with visual development
● Difficult to coordinate team-based development.● No explicit system architecture.● Complex dependencies between parts of the
program can cause maintainability problems.
243
12/11/2020NCET , DEPT. of CSE
COTS reuse
● An effective approach to rapid development is to configure and link existing off the shelf systems.
● For example, a requirements management system could be built by using:• A database to store requirements;• A word processor to capturerequirements and
format reports;• A spreadsheet for traceability management;
244
12/11/2020NCET , DEPT. of CSE
Compound documents
● For some applications, a prototype canbe createdby developing a compound document.
● This is a document with active elements(such as a spreadsheet) that allow user computations.
● Each active element has an associated application which is invoked when that element is selected.
● Thedocument itself is the integrator for the different applications.
245
12/11/2020NCET , DEPT. of CSE
Software prototyping
● A prototype is an initial version of a system used to demonstrate concepts and try out design options.
● A prototype can be used in:• The requirements engineering process to
help with requirements elicitation and validation;• In design processes to explore options and develop a
UI design;• In the testing process to run back-to-back tests.
247
12/11/2020NCET , DEPT. of CSE
Benefits of prototyping● Improved system usability.● A closer match to users’ real needs.● Improved design quality.● Improved maintainability.● Reduced development effort.
248
12/11/2020NCET , DEPT. of CSE
Throw-away prototypes
● Prototypes should be discarded after development as they are not a good basis for a production system:• It may be impossible to tune the system to meet non-
functional requirements;• Prototypes are normally undocumented;• The prototype structure is usually degraded through
rapid change;
251
• Theprototype probably will not meet normalorganizational quality standards.
12/11/2020NCET , DEPT. of CSE
Key points
aimto reduce development overhead andso produce
● An iterativeapproach to software development leadsto faster delivery of software.
● Agile methods are iterativedevelopment methods that
software faster.
252
● Extreme programmingincludessystematic testing, continuous
practices suchas improvementandcustomer involvement.
● The approach to testing in XP is a particular strength where executable tests are developed before the code is written.
12/11/2020NCET , DEPT. of CSE
Key points
● Rapid application development environments include database programming languages, form generation tools and links to office applications.
● A throw-away prototype is used to explore requirements and design options.
● When implementing a throw-away prototype, start with the requirements you least understand; in incremental development, start with the best- understood requirements.
253
12/11/2020NCET , DEPT. of CSE
ObjectivesTo introduce software verification and validation and to discuss the distinction between themTo describe the program inspection process and its role in V & VTo explain static analysis as a verification techniqueTo describe the Cleanroom software development process
12/11/2020NCET , DEPT. of CSE
255
Topics coveredVerification and validation planning
Software inspections
Automated static analysis
Cleanroom software development
12/11/2020NCET , DEPT. of CSE
256
Verification: "Are we building the product right”.
The software should conform to its specification.
Validation: "Are we building the right product”.
The software should do what the user really requires.
Verification vs validation
12/11/2020NCET , DEPT. of CSE
257
Is a whole life-cycle process - V & V must be applied at each stage in the software process.
Has two principal objectivesThe discovery of defects in a system;
The assessment of whether or not the system is useful and useable in an operational situation.
The V & V process
12/11/2020NCET , DEPT. of CSE
258
V& V goals
Verification and validation should establish confidence that the software is fit for purpose.
This does NOT mean completely free of defects.
Rather, it must be good enough for its intended use and the type of use will determine the degree of confidence that is needed.
12/11/2020NCET , DEPT. of CSE
259
V & V confidence
Depends on system’s purpose, user expectations and marketing environment
Software functionThe level of confidence depends on how critical the software is to an organisation.
User expectationsUsers may have low expectations of certain kinds of software.
Marketing environmentGetting a product to market early may be more important than finding defects in the program.
12/11/2020NCET , DEPT. of CSE
260
Software inspections. Concerned with analysis of the static system representation to discover problems (static verification)
May be supplement by tool-based document and code analysis
Software testing. Concerned with exercising and observing product behaviour (dynamic verification)
The system is executed with test data and its operational behaviour is observed
Static and dynamic verification
12/11/2020NCET , DEPT. of CSE
261
Can reveal the presence of errors NOT their absence.
The only validation technique for non-functional requirements as the software has to be executed to see how it behaves.
Should be used in conjunction with static verification to provide full V&V coverage.
Program testing
12/11/2020NCET , DEPT. of CSE
263
Defect testingTests designed to discover system defects.A successful defect test is one which reveals the presence of defects in a system.Covered in Chapter 23
Validation testingIntended to show that the software meets its requirements.A successful test is one that shows that a requirements has been properly implemented.
Types of testing
12/11/2020NCET , DEPT. of CSE
264
Defect testing and debugging are distinct processes.Verification and validation is concerned with establishing the existence of defects in a program.Debugging is concerned with locating and repairing these errors.Debugging involves formulating a hypothesis about program behaviour then testing these hypotheses to find the system error.
Testing and debugging
12/11/2020NCET , DEPT. of CSE
265
Careful planning is required to get the most out of testing and inspection processes.Planning should start early in the development process.The plan should identify the balance between static verification and testing.Test planning is about defining standards for the testing process rather than describing product tests.
V & V planning
12/11/2020NCET , DEPT. of CSE
267
The structure of a software test planThe testing process.
Requirements traceability.
Tested items.
Testing schedule.
Test recording procedures.
Hardware and software requirements.
Constraints.
12/11/2020NCET , DEPT. of CSE
269
Software inspections
These involve people examining the source representation with the aim of discovering anomalies and defects.Inspections not require execution of a system so may be used before implementation.They may be applied to any representation of the system (requirements, design,configuration data, test data, etc.).They have been shown to be an effective technique for discovering program errors.
12/11/2020NCET , DEPT. of CSE
271
Inspection success
Many different defects may be discovered in a single inspection. In testing, one defect ,may mask another so several executions are required.
The reuse domain and programming knowledge so reviewers are likely to have seen the types of error that commonly arise.
12/11/2020NCET , DEPT. of CSE
272
Inspections and testing
Inspections and testing are complementary and not opposing verification techniques.Both should be used during the V & V process.Inspections can check conformance with a specification but not conformance with the customer’s real requirements.Inspections cannot check non-functional characteristics such as performance, usability, etc.
12/11/2020NCET , DEPT. of CSE
273
Program inspectionsFormalised approach to document reviews
Intended explicitly for defect detection (not correction).
Defects may be logical errors, anomalies in the code that might indicate an erroneous condition (e.g. an uninitialised variable) or non-compliance with standards.
12/11/2020NCET , DEPT. of CSE
274
Inspection pre-conditionsA precise specification must be available.Team members must be familiar with the organisation standards.Syntactically correct code or other system representations must be available. An error checklist should be prepared.Management must accept that inspection will increase costs early in the software process.Management should not use inspections for staff appraisal ie finding out who makes mistakes.
12/11/2020NCET , DEPT. of CSE
275
Inspection procedureSystem overview presented to inspection team.Code and associated documents are distributed to inspection team in advance.Inspection takes place and discovered errors are noted.Modifications are made to repair discovered errors.Re-inspection may or may not be required.
12/11/2020NCET , DEPT. of CSE
277
Inspection checklistsChecklist of common errors should be used to drive the inspection.Error checklists are programming language dependent and reflect the characteristic errors that are likely to arise in the language.In general, the 'weaker' the type checking, the larger the checklist.Examples: Initialisation, Constant naming, loop termination, array bounds, etc.
12/11/2020NCET , DEPT. of CSE
279
Inspection rate500 statements/hour during overview.
125 source statement/hour during individual preparation.
90-125 statements/hour can be inspected.
Inspection is therefore an expensive process.
Inspecting 500 lines costs about 40 man/hours effort - about £2800 at UK rates.
12/11/2020NCET , DEPT. of CSE
282
Automated static analysisStatic analysers are software tools for source text processing.
They parse the program text and try to discover potentially erroneous conditions and bring these to the attention of the V & V team.
They are very effective as an aid to inspections - they are a supplement to but not a replacement for inspections.
12/11/2020NCET , DEPT. of CSE
283
Stages of static analysisControl flow analysis. Checks for loops with multiple exit or entry points, finds unreachable code, etc.Data use analysis. Detects uninitialised variables, variables written twice without an intervening assignment, variables which are declared but never used, etc.Interface analysis. Checks the consistency of routine and procedure declarations and their use
12/11/2020NCET , DEPT. of CSE
285
Stages of static analysisInformation flow analysis. Identifies the dependencies of output variables. Does not detect anomalies itself but highlights information for code inspection or review
Path analysis. Identifies paths through the program and sets out the statements executed in that path. Again, potentially useful in the review process
Both these stages generate vast amounts of information. They must be used with care.
12/11/2020NCET , DEPT. of CSE
286
Use of static analysis
Particularly valuable when a language such as C is used which has weak typing and hence many errors are undetected by the compiler,
Less cost-effective for languages like Java that have strong type checking and can therefore detect many errors during compilation.
12/11/2020NCET , DEPT. of CSE
288
Verification and formal methods
Formal methods can be used when a mathematical specification of the system is produced.
They are the ultimate static verification technique.
They involve detailed mathematical analysis of the specification and may develop formal arguments that a program conforms to its mathematical specification.
12/11/2020NCET , DEPT. of CSE
289
Arguments for formal methods
Producing a mathematical specification requires a detailed analysis of the requirements and this is likely to uncover errors.
They can detect implementation errors before testing when the program is analysed alongside the specification.
12/11/2020NCET , DEPT. of CSE
290
Arguments against formal methods
Require specialised notations that cannot be understood by domain experts.
Very expensive to develop a specification and even more expensive to show that a program meets that specification.
It may be possible to reach the same level of confidence in a program more cheaply using other V & V techniques.
12/11/2020NCET , DEPT. of CSE
291
The name is derived from the 'Cleanroom' process in semiconductor fabrication. The philosophy is defect avoidance rather than defect removal.This software development process is based on:
Incremental development;Formal specification;Static verification using correctness arguments;Statistical testing to determine program reliability.
Cleanroom software development
12/11/2020NCET , DEPT. of CSE
292
Cleanroom process characteristics
Formal specification using a state transition model.Incremental development where the customer prioritises increments.Structured programming - limited control and abstraction constructs are used in the program.Static verification using rigorous inspections.Statistical testing of the system (covered in Ch. 24).
12/11/2020NCET , DEPT. of CSE
294
Formal specification and inspections
The state based model is a system specification and the inspection process checks the program against this mode.l
The programming approach is defined so that the correspondence between the model and the system is clear.
Mathematical arguments (not proofs) are used to increase confidence in the inspection process.
12/11/2020NCET , DEPT. of CSE
295
Specification team. Responsible for developing and maintaining the system specification.Development team. Responsible for developing and verifying the software. The software is NOT executed or even compiled during this process.Certification team. Responsible for developing a set of statistical tests to exercise the software after development. Reliability growth models used to determine when reliability is acceptable.
Cleanroom process teams
12/11/2020NCET , DEPT. of CSE
296
The results of using the Cleanroom process have been very impressive with few discovered faults in delivered systems.Independent assessment shows that the process is no more expensive than other approaches.There were fewer errors than in a 'traditional' development process.However, the process is not widely used. It is not clear how this approach can be transferred to an environment with less skilled or less motivated software engineers.
Cleanroom process evaluation
12/11/2020NCET , DEPT. of CSE
297
Key pointsVerification and validation are not the same thing. Verification shows conformance with specification; validation shows that the program meets the customer’s needs.
Test plans should be drawn up to guide the testing process.
Static verification techniques involve examination and analysis of the program for error detection.
12/11/2020NCET , DEPT. of CSE
298
Key pointsProgram inspections are very effective in discovering errors.Program code in inspections is systematically checked by a small team to locate software faults.Static analysis tools can discover program anomalies which may be an indication of faults in the code.The Cleanroom development process depends on incremental development, static verification and statistical testing.
12/11/2020NCET , DEPT. of CSE
299
Why Do we Test.?To make a judgment about quality or acceptability.
Discover Problems
12/11/2020NCET , DEPT. of CSE
302
Basic Definitions⚫ Error(mistake): mistake while coding-bug⚫ Fault(defect): Result of an error⚪ Fault of omission⚪ Fault of commission
⚫ Failure: A failure occurs when a Fault executes.⚫ Incident: Alerts user occurrence of a Failure⚫ Test: concerned with errors, faults, failures, incident⚫ Test Case: have identity & is associated with a
program behavior. Has i/p & o/p
12/11/2020NCET , DEPT. of CSE
303
Process of testingTest planningTest case developmentRunning test casesEvaluating test results
12/11/2020NCET , DEPT. of CSE
305
12/11/2020NCET , DEPT. of CSE
307 Component testing
• Component or unit testing is the process of testing individual components in isolation.
• It is a defect testing process.• Components may be:
• Individual functions or methods within an object;• Object classes with several attributes and
methods;• Composite components with defined interfaces
used to access their functionality.
12/11/2020NCET , DEPT. of CSE
308 Object class testing
• Complete test coverage of a class involves• Testing all operations associated with an object;• Setting and interrogating all object attributes;• Exercising the object in all possible states.
• Inheritance makes it more difficult to design object class tests as the information to be tested is not localised.
12/11/2020NCET , DEPT. of CSE
309Weather station object interface
WeatherStation
identifier
repor tWeather () calibrate (instruments) test ()star tup (instruments) shutdown (instruments)
12/11/2020NCET , DEPT. of CSE
310 Weather station testing
• Need to define test cases for reportWeather, calibrate, test, startup and shutdown.
• Using a state model, identify sequences of state transitions to be tested and the event sequences to cause these transitions
• For example:• Waiting > Calibrating > Testing > Transmitting
> Waiting
12/11/2020NCET , DEPT. of CSE
311
• Objectives are to detect faults due to interface errors or invalid assumptions about interfaces.
• Particularly important for object oriented development as objects are defined by their interfaces.
Interface testing
12/11/2020NCET , DEPT. of CSE
313 Interface types
• Parameter interfaces• Data passed from one procedure to another.
• Shared memory interfaces• Block of memory is shared between procedures or
functions.• Procedural interfaces
• Sub system encapsulates a set of procedures to be called by other sub systems.
• Message passing interfaces• Sub systems request services from other sub system.s
12/11/2020NCET , DEPT. of CSE
314 Interface errors
• Interface misuse• A calling component calls another component and makes
an error in its use of its interface e.g. parameters in the wrong order.
• Interface misunderstanding• A calling component embeds assumptions about the
behaviour of the called component which are incorrect.• Timing errors
• The called and the calling component operate at different speeds and out of date information is accessed.
12/11/2020NCET , DEPT. of CSE
315 Interface testing guidelines
• Design tests so that parameters to a called procedure are at the extreme ends of their ranges.
• Always test pointer parameters with null pointers.• Design tests which cause the component to fail.• Use stress testing in message passing systems.• In shared memory systems, vary the order in which
components are activated.
12/11/2020NCET , DEPT. of CSE
316 Test case design
• Involves designing the test cases (inputs and outputs) used to test the system.
• The goal of test case design is to create a set of tests that are effective in validation and defect testing.
• Design approaches:• Requirements based testing;• Partition testing;• Structural testing.
12/11/2020NCET , DEPT. of CSE
317Requirements based testing
• A general principle of requirements engineering is that requirements should be testable.
• Requirements based testing is a validation testing technique where you consider each requirement and derive a set of tests for that requirement.
12/11/2020NCET , DEPT. of CSE
318 LIBSYS requirements
The user shall be able to search either all of the initial set of databases or select a subset from it.
The system shall provide appropriate viewers for the user to read documents in the document store.
Every order shall be allocated a unique identifier (ORDER_ID) that the user shall be able to copy to the accountÕs permanent storage area.
12/11/2020NCET , DEPT. of CSE
319LIBSYS tests
∙ Initiate user search for searches for items that are known to be present and known not to be present, where the set of databases includes 1 database.
∙ Initiate user searches for items that are known to be presentand known not to be present, where the set of databases includes 2 databases
∙ Initiate user searches for items that are known to be present and known not to be present where the set of databasesincludes more than 2 databases.
∙ Select one database from the set of databases and initiate user searches for items that are known to be present and known not to be present.
∙ Select more than on e database from the set of databases and initiate searches for items that are known to be present and known not to be present.
12/11/2020NCET , DEPT. of CSE
320 Partition testing
• Input data and output results often fall into different classes where all members of a class are related.
• Each of these classes is an equivalence partition or domain where the program behaves in an equivalent way for each class member.
• Test cases should be chosen from each partition.
12/11/2020NCET , DEPT. of CSE
322 Search routine specification
procedure Search (Key : ELEM ; T: SEQ of ELEM; Found : in out BOOLEAN; L: in out ELEM_INDEX) ;
Pre condition the sequence has at least one element T’FIRST <= T’LAST
Post condition the element is found and is referenced by L ( Found and T (L) = Key)
or the element is not in the array ( not Found andnot (exists i, T’FIRST >= i <= T’LAST, T (i) = Key ))
12/11/2020NCET , DEPT. of CSE
323
• Inputs which conform to the pre conditions.• Inputs where a pre condition does not hold.• Inputs where the key element is a member of
the array.• Inputs where the key element is not a
member of the array.
Search routine input partitions
12/11/2020NCET , DEPT. of CSE
324 Testing guidelines (sequences)
• Test software with sequences which have only a single value.
• Use sequences of different sizes in different tests.
• Derive tests so that the first, middle and last elements of the sequence are accessed.
• Test with sequences of zero length.
12/11/2020NCET , DEPT. of CSE
326
• Sometime called white box testing.• Derivation of test cases according to
program structure. Knowledge of the program is used to identify additional test cases.
• Objective is to exercise all program statements (not all path combinations).
Structural testing
12/11/2020NCET , DEPT. of CSE
328
• Pre conditions satisfied, key element in array.• Pre conditions satisfied, key element not in
array.• Pre conditions unsatisfied, key element in array.• Pre conditions unsatisfied, key element not in array.• Input array has a single value.• Input array has an even number of values.• Input array has an odd number of values.
Binary search equiv. partitions
12/11/2020NCET , DEPT. of CSE
331 Path testing
• The objective of path testing is to ensure that the set of test cases is such that each path through the program is executed at least once.
• The starting point for path testing is a program flow graph that shows nodes representing program decisions and arcs representing the flow of control.
• Statements with conditions are therefore nodes in the flow graph.
12/11/2020NCET , DEPT. of CSE
333
• 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 14• 1, 2, 3, 4, 5, 14• 1, 2, 3, 4, 5, 6, 7, 11, 12, 5, …• 1, 2, 3, 4, 6, 7, 2, 11, 13, 5, …• Test cases should be derived so that all of
these paths are executed• A dynamic program analyser may be used to
check that paths have been executed
Independent paths
12/11/2020NCET , DEPT. of CSE
334 Test automation
• Testing is an expensive process phase. Testing workbenches provide a range of tools to reduce the time required and total testing costs.
• Systems such as Junit support the automatic execution of tests.
• Most testing workbenches are open systems because testing needs are organisation specific.
• They are sometimes difficult to integrate with closed design and analysis workbenches.
12/11/2020NCET , DEPT. of CSE
336Testing workbench adaptation
• Scripts may be developed for user interface simulators and patterns for test data generators.
• Test outputs may have to be prepared manually for comparison.
• Special purpose file comparators may be developed.
12/11/2020NCET , DEPT. of CSE
337 Key points
• Testing can show the presence of faults in a system; it cannot prove there are no remaining faults.
• Component developers are responsible for component testing; system testing is the responsibility of a separate team.
• Integration testing is testing increments of the system; release testing involves testing a system to be released to a customer.
• Use experience and guidelines to design test cases in defect testing.
12/11/2020NCET , DEPT. of CSE
338 Key points
• Interface testing is designed to discover defects in the interfaces of composite components.
• Equivalence partitioning is a way of discovering test cases all cases in a partition should behave in the same way.
• Structural analysis relies on analysing a program and deriving tests from this analysis.
• Test automation reduces testing costs by supporting the test process with a range of software tools.
contentsBoundary Value Testing
Boundary Value AnalysisGeneralizing Boundary Value Analysis: variable 4n+1 and range
Limitations of Boundary Value Analysis: independent and physical quantity.
Robustness Testing: Extrema value are exceeded
Worst Case Testing: more than one variable has extreme
value
Special Value Testing: Tester uses his domain knowledge,
experience.
12/11/2020NCET , DEPT. of CSE
340
Boundary Value TestingAny program can be considered to be a function in the sense that prog. I/p form its domain & prog. o/p form its range. Input domain testing is the best known functional testing technique.
12/11/2020NCET , DEPT. of CSE
341
For valid user name it should consist characters in the range from 6 to 30
12/11/2020NCET , DEPT. of CSE
342
Based on 5 elements values of BVA: min-(5) min(6), min+(7), nom(12), max-(29),max(30),max+(31)
12/11/2020NCET , DEPT. of CSE
343
Boundary Value AnalysisWhen function F is implemented as a pogram, the input variables x1 & x2 will have some boundaries
F(x1, x2), a ≤ x1 ≤ b, c ≤ x2 ≤ d[a,b] [c,d] are ranges of x1 & x2.
Strongly typed languages (Ada, Pascal) permit such variable range.
12/11/2020NCET , DEPT. of CSE
344
•Input space(domain) of our function F is shown above.•Any point within the shaded rectangle is a legitimate input to the function F.
•Boundary value analysis focuses on the boundary of the input space to identify test cases.
12/11/2020NCET , DEPT. of CSE
345
Cont.,Errors tend to occur near the extreme values of an input variable
e.g. loop conditions (< instead of ≤), counters
Basic idea: use input variable values at their minimum (min), just above the minimum (min+), a nominal value (nom), just below their maximum (max-), and at their maximum (max).Testing tool (T) generates such Test Cases for Properly specified program. min, min+, max-, max.
12/11/2020NCET , DEPT. of CSE
346
Cont.,
The boundary value analysis test cases are obtained by holding the values of all but one variable at their nominal values, and letting that variable assume its extreme values
12/11/2020NCET , DEPT. of CSE
347
Generalizing Boundary value AnalysisGeneralized in 2 ways
No of variables.
Kinds of ranges.
For a function of n variables, boundary value analysis yields 4n+1 unique test cases.
12/11/2020NCET , DEPT. of CSE
348
Conti.,By the kinds of ranges, depends on the type (nature) of the variables
Variables have discrete, bounded valuese.g. NextDate function, commission problem
Variables have no explicit boundsCreate “artificial” boundse.g. triangle problem
Boolean variablesDecision table-based testing
Logical variables (bound to a value or another logic variable)e.g. PIN and transaction type in SATM System
12/11/2020NCET , DEPT. of CSE
349
Limitations of Boundary value AnalysisBoundary value analysis works well when the program to be tested is a function of several independent variables that represent bounded physical quantities.
e.g. NextDate test cases are inadequate (little stress on February, dependencies among month, day, and year)
e.g. variables refer to physical quantities, such as temperature, air speed, load etc. {Sky Harbour International Airport 120 deg F eg.)
12/11/2020NCET , DEPT. of CSE
350
Robustness Testing⚫ Simple extension of boundary value analysis⚫ In addition to the five boundary value analysis
values of a variable, see what happens when the extrema are exceeded with a value slightly greater than the maximum (max+) and a value slightly less than the minimum (min-)
⚫ Focuses on the expected outputs⚪ e.g. exceeding load capacity of a public elevator⚪ May 32 we expect error message.
⚫ Forces attention on exception handling
12/11/2020NCET , DEPT. of CSE
351
Robustness Testing
Considering min- and max+ values along with 5 elements of BVA
12/11/2020NCET , DEPT. of CSE
352
Worst-Case TestingWorst case analysis: more than one variable has an extreme valueProcedure:
For each variable create the set <min, min+, nom, max-, max>Take the Cartesian product of these sets to generate test cases
More thorough than boundary value analysisRepresents more effort
For n variables → 5n test cases (as opposed to 4n+1 test cases for boundary value analysis)
12/11/2020NCET , DEPT. of CSE
353
Worst Case Testing
Taking Cartesian product ofX1:min, min+, nom, max-, maxX2:min,min+, nom, max-, max
5^n
12/11/2020NCET , DEPT. of CSE
354
Special value testingThe most widely practiced form of functional testing
Most intuitive, least uniform, no guidelines
The tester uses his/her domain knowledge, experience
with similar programs, “ad hoc testing”
It is dependent on the abilities of the tester
Even though it is highly subjective, it often results in a set of
test cases which is more effective in revealing faults than
the test sets generated by the other methods
12/11/2020NCET , DEPT. of CSE
356
ContentsEquivalence class.
Weak normal equivalence class testing.
Strong normal equivalence class testing.
Weak Robust equivalence class testing.
Strong Robust equivalence class testing.
12/11/2020NCET , DEPT. of CSE
358
Equivalence class Testing
– amount <= 1800– 1800 < amount < 15000– amount >= 15000
12/11/2020NCET , DEPT. of CSE
359
Equivalence classes⚫ Motivations⚪ Have a sense of complete testing⚪ Avoid redundancy
⚫ Equivalence classes form a partition of a set, where partition refers to a collection of mutually disjoint subsets whose union is the entire set (completeness, non-redundancy)
⚫ The idea is to identify test cases by using one element from each equivalence class
⚫ The key is the choice of the equivalence relation that determines the classes
12/11/2020NCET , DEPT. of CSE
361
Equivalence class TestingWhen Function F is implemented as a program, the input variables x1,x2 will have boundaries
12/11/2020NCET , DEPT. of CSE
362
Weak Normal Equivalence class Testing• Assumes the ‘single fault’ or “independence of input
variables.”• e.g. If there are 2 input variables, these input variables
are independent of each other.
• Partition the test cases of each input variable separately into one of the different equivalent classes.
• Choose the test case from each of the equivalence classes for each input variable independently of the other input variable
• Using 1 variable from each equivalence class(interval) in a test case.
12/11/2020NCET , DEPT. of CSE
363
Strong Normal Equivalence testingMulti Fault assumption.We need Test cases from each element of the Cartesian product of the equivalence classes.The Cartesian product guarantees that we have a notion of completeness in two senses
We cover all the equivalence classes, We have 1 of each possible combination of inputs.
12/11/2020NCET , DEPT. of CSE
365
Weak Robust Equivalence class TestingUp to now we have only considered partitioning the valid input space.
“Weak robust” is similar to “weak normal” equivalence test except that the invalid input variables are now considered.The robust part comes from consideration of invalid values, & the weak part refers to the single fault assumption.
12/11/2020NCET , DEPT. of CSE
367
Cont.,2 problems occur with robust equivalence testing.
Specification do not define what the expected output for an invalid input should be.
Strongly typed languages eliminate the need for the consideration of invalid inputs.
12/11/2020NCET , DEPT. of CSE
369
Strong Robust Equivalence TestingRobust part comes from consideration of invalid values,
Strong part refers to the multiple fault assumption.
We obtain test cases from each element of the Cartesian product of all the equivalence classes
12/11/2020NCET , DEPT. of CSE
370
contentEquivalence class test cases for
Triangle problem
NextDate Function
Commission problem
12/11/2020NCET , DEPT. of CSE
372
Content Decision tables
technique
Test cases for the Triangle problem
12/11/2020NCET , DEPT. of CSE
388
Decision table based testingUsed to represent & analyze complex logical relationships since the early 1960.
Most rigorous because decision table enforces logical rigor.
2 types of methodsCause effect graphing
Decision tableau method
12/11/2020NCET , DEPT. of CSE
389
Decision Tables - Structure
Conditions - (Condition stub) Condition Alternatives – (Condition Entry)
Actions – (Action Stub) Action Entries
• Each condition corresponds to a variable, relation or predicate • Possible values for conditions are listed among the condition alternatives
• Boolean values (True / False) – Limited Entry Decision Tables• Several values – Extended Entry Decision Tables• Don’t care value
• Each action is a procedure or operation to perform• The entries specify whether (or in what order) the action is to be performed
12/11/2020NCET , DEPT. of CSE
390
To express the program logic we can use a limited-entry decision table consisting of 4 areas called the condition stub, condition entry, action stub and the action entry:
Rule1 Rule2 Rule3 Rule4
Condition1 Yes Yes No No
Condition2 Yes X No X
Condition3 No Yes No X
Condition4 No Yes No Yes
Action1 Yes Yes No No
Action2 No No Yes No
Action3 No No No Yes
Condition
stub
Action stub
Action Entry
Condition entry
12/11/2020NCET , DEPT. of CSE
391
We can specify default rules to indicate the action to be taken when none of the other rules apply.
When using decision tables as a test tool, default rules and their associated predicates must be explicitly provided.
Rule5 Rule6 Rule7 Rule8
Condition1 X No Yes Yes
Condition2 X Yes X No
Condition3 Yes X No No
Condition4 No No Yes X
Default action
Yes Yes Yes Yes
12/11/2020NCET , DEPT. of CSE
392
Decision Table - Example
Conditions
Printer does not print Y Y Y Y N N N N
A red light is flashing Y Y N N Y Y N N
Printer is unrecognized Y N Y N Y N Y N
Actions
Heck the power cable X
Check the printer-computer cable X X
Ensure printer software is installed X X X X
Check/replace ink X X X X
Check for paper jam X X
Printer Troubleshooting 12/11/2020NCET , DEPT. of CSE
393
In mutually exclusive only one condition can be performed at a time.
12/11/2020NCET , DEPT. of CSE
397
Test cases for NextDate Function
Equivalence classes
Why many rules were impossible
12/11/2020NCET , DEPT. of CSE
403
If the action sets of 2 rule in a limited entry decision table are identical, there must be 1 condition that allow 2 rules to be combined with a don’t care entry
12/11/2020NCET , DEPT. of CSE
409
Test cases for commission problemCommission problem is not well served by decision table analysis.
Very little decision logic is used in the problem
12/11/2020NCET , DEPT. of CSE
411
Test coverage metrics are a device to measure the extent to which a set of test cases covers a program.
425 Test Coverage Metrics
12/11/2020NCET , DEPT. of CSE
Test Coverage Metrics
Metric Description of Coverage
C0 Every Statement
C1 Every DD-Path
C1P Every predicate to each outcome
C2 C1 Coverage + loop coverage
Cd C1 Coverage + every dependent pair of DD-Paths
CMCC Multiple condition coverage
Cik Every program path that contains up to k repetitions of a loop (usually k=2)
Cstat “Statistically significant” fraction of paths
C∞ All possible execution paths
426
12/11/2020NCET , DEPT. of CSE
Statement Testing: Every statement is executed by the test set and Predicate Testing: Every logical predicate is executed by the test set
DD path testing: check for all possible paths
Dependent pair of DD-paths: reference/Dependent
Multiple condition coverage: use truth table instead of predicate.
Loop coverage: concatenated, nested, horrible
12/11/2020NCET , DEPT. of CSE
427
Mathematicians define a basis in terms of a structure called a vector space, which is a set of elements(vectors) as well as operations that correspond to multiplication & addition defined for the vectors.
Basis Path Testing
12/11/2020NCET , DEPT. of CSE
428
McCabe based his view of testing on a major result from graph theory.
Which states that the cyclomatic no. of a strongly connected graph is the number of linearly independent circuits in the graph.
We can create a strongly connected graph by adding an edge from the(every) sink node to the (every) source node.
McCabe’s basis path method
12/11/2020NCET , DEPT. of CSE
429
V(G)=e-n+2p; arbitrary directed graph
V(G)=e-n+p; strong directed graph
e– no of edges, n—no of nodes, p—no of connected regions.
Two important points should be made here.
1)if there is a loop, it only has to be traversed once, or else the basis will contain redundant
2)it is possible for there to be more than one basis.
Cont.,
12/11/2020NCET , DEPT. of CSE
430
⚫ The cyclomatic complexity of the strong connected graph is 5; thus there are five linearly independent circuits.
⚫ If we now delete the added edge from node G to node A. these 5 circuits become five linearly independent paths from node A to node G.
⚫ In a small graphs, we can identify independent paths
P1:A,B,C,G
P2:A,B,C,B,C,G
P3:A,B,E,F,G
P4:A,D,E,F,G
P5:A,D,F,G
Cont.,
12/11/2020NCET , DEPT. of CSE
432
Path addition is simply 1 path followed by another path, & multiplication corresponds to repetitions of a path.
McCabe arrives at a vector space of program paths.
Path A,B,C,B,E,F,G is the basis sum p2+p3-p1 & the path A,B,C,B,C,B,C,G is the linear combination 2p2-p1
Cont.,
12/11/2020NCET , DEPT. of CSE
433
Each decision is “flipped” that is when a node of out degree>=2 is reached, a different edge must be taken.
Cont.,
12/11/2020NCET , DEPT. of CSE
435