Advances in computers Volume 113 Volume 113 /
Advances in Computers, Volume 113, the latest volume in this innovative series published since 1960, presents detailed coverage of new advancements in computer hardware, software, theory, design and applications. Chapters in this updated release include A Survey on Regression Test-case Prioritizatio...
Otros Autores: | , |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Cambridge, MA :
Academic Press, An imprint of Elsevier
[2019]
|
Edición: | First edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630475806719 |
Tabla de Contenidos:
- Front Cover
- Advances in Computers
- Copyright
- Contents
- Preface
- Chapter One: A Survey on Regression Test-Case Prioritization
- 1. Introduction
- 2. Framework
- 3. Criterion
- 3.1. Structural Criterion
- 3.2. Model-Level Criterion
- 3.3. Fault-Related Criterion
- 3.4. Test Input-Based Criterion
- 3.5. Change Impact-Based Criterion
- 3.6. Other Criteria
- 3.6.1. Risk
- 3.6.2. Similarity
- 3.6.3. Service History
- 3.6.4. Requirement
- 4. Prioritization Algorithm
- 4.1. Greedy Algorithm
- 4.2. Search-Based Algorithm
- 4.3. Integrate-Linear-Programming-Based Algorithm
- 4.4. Information-Retrieval-Based Algorithm
- 4.5. Machine-Learning-Based Algorithm
- 5. Measurement
- 5.1. APFD
- 5.2. AFPDC
- 5.3. APXC
- 5.4. WGFD
- 5.5. HMFD
- 5.6. NAPFD and RAPFD
- 6. Constraint
- 6.1. Time Constraint
- 6.2. Fault Severity
- 6.3. Other Constraints
- 7. Application Scenario
- 7.1. General Test-Case Prioritization
- 7.2. Version-Specific Test-Case Prioritization
- 8. Empirical Study
- 8.1. Studies on Traditional Dynamic Prioritization
- 8.2. Comparison With Traditional Dynamic Techniques
- 8.2.1. Dynamic vs Static
- 8.2.2. Block-Box vs White-Box
- 9. Some Discussions
- 9.1. Existing Issues
- 9.1.1. Criteria
- 9.1.2. Measurement
- 9.1.3. Empirical Studies
- 9.2. Other Challenging Problems
- 9.2.1. Intermediate/Ultimate Goal
- 9.2.2. Practical Values
- 10. Conclusion
- Acknowledgments
- References
- About the Authors
- Chapter Two: Model-Based Test Cases Reuse and Optimization
- 1. Introduction
- 2. Overall MBT Framework
- 2.1. Overall Framework
- 2.2. Some Definitions
- 3. Integration Test Generation
- 3.1. Identification Process
- 3.2. Test Case Selection
- 3.2.1. Interaction Detection
- 3.3. Test Behavior Generation
- 3.4. Checking for Redundancy
- 3.5. Test Architecture Generation.
- 3.6. Some Properties of the Integration Test Generation Approach
- 4. Acceptance Test Optimization
- 4.1. Integration Test Case Selection
- 4.2. Mapping Acceptance Test Cases to Integration Test Cases
- 5. A Case Study: A Library Management System
- 6. Related Work
- 7. Conclusion
- Acknowledgments
- Appendix A: Properties of the Integration Test Generation Approach
- A.1. System Specification
- A.2. Commutativity
- A.3. Associativity
- References
- About the Authors
- Chapter Three: Three Open Problems in the Context of E2E Web Testing and a Vision: NEONATE
- 1. Introduction
- 2. The Three Open Problems in the Context of E2E Web Testing
- 2.1. The Fragility Problem
- 2.2. The Strong Coupling and Low Cohesion Problem
- 2.3. The Incompleteness Problem
- 3. State of the Art on the Three Open Problems
- 3.1. State of the Art on the Fragility Problem
- 3.1.1. Robust Data Extraction
- 3.1.2. Breakage Prevention
- 3.1.3. Web Test Repair
- 3.2. State of the Art on the Strong Coupling and Low Cohesion Problem
- 3.3. State of the Art on the Incompleteness Problem
- 4. Overcoming the Three Open Problems: The NEONATE Vision
- 4.1. The Stuck Situation
- 4.2. The Vision
- 4.3. Existing Integrated Testing Environments
- 5. Architecture of the NEONATE Integrated Testing Environment
- 5.1. Robust Web Element Locators With ROBULA+
- 5.2. Automatic Generation of Page Objects With APOGEN
- 5.3. Generating Visual Test Suites With PESTO
- 5.4. Separating Test Specification from Test Implementation With APORES
- 5.5. Suggesting and Executing Repairs for Broken Code With AUTOREPAIR
- 5.6. Extending Existing Test Suites With Ts-EXT
- 5.7. Supporting the Tester During Maintenance/Development With ASSISTANT
- 6. NEONATE´s Examples of Use
- 6.1. Automated Test Suite Development (Scenario 1).
- 6.2. Automated Test Suite Refactoring (Scenario 2)
- 7. NEONATE´s Long-Term Impact
- 7.1. Scientific
- 7.1.1. Benchmarks
- 7.2. Practical
- 7.3. Industrial
- 8. Conclusions
- References
- About the Authors
- Chapter Four: Advances in Using Agile and Lean Processes for Software Development
- 1. Introduction
- 1.1. Evolution of Software Development Processes
- 1.2. The Emergence of Agile Software Development
- 1.3. Lean Thinking and Continuous Deployment (CD)
- 2. Trends on Agile, Lean, and Rapid Software Development
- 2.1. Overview of Agile Literature
- 2.2. Trends in Agile
- 2.3. Summary
- 3. A Walk Through the Roots of Agile and Lean Thinking
- 3.1. Lean Thinking
- 3.2. Lean Manufacturing Toolkit
- 3.3. Agility
- 3.4. Combining Lean and Agile in Manufacturing
- 4. Agile and Lean in Software Development
- 4.1. Agile Software Development
- 4.1.1. Agile Values and Principles: The Agile Manifesto
- 4.1.2. XP
- 4.1.3. Scrum
- 4.2. Lean Software Development
- 4.2.1. Lean Software Development: Pre-Agile Manifesto
- 4.2.2. Lean Software Development: Post-Agile Manifesto
- 4.2.3. Kanban
- 4.2.4. Waste in Software Development
- 4.2.5. Combining Agile and Lean Software Development in Practice
- 5. Beyond Agile and Lean: Toward Rapid Software Development, Continuous Delivery, and CD
- 5.1. Need for Speed
- 5.2. Continuous Delivery and Continuous Deployment
- 5.3. Key Elements to Get Speed in Your Software Development Process
- 6. DevOps
- 6.1. The Origins of DevOps
- 6.2. DevOps Practices
- 6.3. The Benefits and Challenges of DevOps
- 7. The Lean Startup Movement
- 7.1. Origin and Key Concepts
- 7.2. Derivatives and Further Developments
- 7.3. Lean Startup and Other Startup Research
- 7.4. Summary of the Lean Startup Movement
- 8. Miscellany
- 8.1. Metrics in Agile and Lean Software Development.
- 8.2. Technical Debt in Agile and Lean Software Development
- 8.2.1. What Is Technical Debt?
- 8.2.2. Technical Debt: Debt or Investment?
- 8.2.3. Strategies to Manage Technical Debt in Agile Software Development
- 9. Conclusions and Future Directions
- References
- About the Authors
- Chapter Five: Advances in Symbolic Execution
- 1. Introduction
- 2. Background
- 3. Constraint Solving
- 3.1. Simplification, Reuse, and Caching
- 3.2. Strings
- 3.3. Nonlinear Constraints and Bitvectors
- 3.4. Other Theories
- 4. Path Explosion
- 4.1. Heuristics-Guided Path Exploration
- 4.2. Pruning Paths
- 4.3. Merging States or Paths
- 4.4. Handling Loops
- 4.5. Parallel Exploration
- 5. Compositional Analysis
- 5.1. Improving Compositional Symbolic Execution
- 5.2. Applying Compositional Symbolic Execution
- 6. Memory Modeling
- 6.1. General Advancements
- 6.2. Managing Heap Input
- 6.3. Handling Symbolic Memory Access
- 6.4. Advancements in Static Analysis
- 7. Concurrency
- 7.1. Detecting Concurrency Bugs
- 7.2. Improving Scalability
- 8. Test Generation
- 8.1. Finding Bugs and Improving Coverage
- 8.2. Regression Testing, Data Flow Testing, and Load Testing
- 8.3. Testing Nontraditional Programs
- 8.3.1. Web Applications
- 8.3.2. Android Applications
- 8.3.3. Database Management Systems
- 8.4. Test Optimization
- 9. Security
- 9.1. Hybrid Techniques
- 9.2. Embedded Systems
- 9.3. Underconstrained Symbolic Execution
- 9.4. Ad Hoc Solutions and Enhancements
- 10. Probabilistic Symbolic Execution
- 10.1. Statistical Symbolic Execution
- 10.2. Beyond Linear Integer Arithmetics
- 11. Tools Support
- 12. Conclusion
- References
- About the Authors
- Chapter Six: Symbolic Execution and Recent Applications to Worst-Case Execution, Load Testing, and Security Analysis
- 1. Introduction
- 2. Symbolic Execution.
- 2.1. Complex Heap Data Structures
- 3. Tools and Scalability Challenges
- 3.1. Challenges
- 3.1.1. Path Explosion
- 3.1.2. Improving Constraint Solving
- 4. Applications
- 4.1. Worst-Case Execution Time (WCET) Analysis
- 4.2. Performance Testing
- 4.2.1. Load Testing
- 4.2.2. Finding Performance Bugs
- 4.3. Security Analysis
- 4.3.1. Automated Exploit Generation
- 4.3.2. Noninterference Testing
- 4.3.3. Quantitative Information Flow Analysis
- 4.3.4. Side-Channel Analysis
- 4.4. Symbolic Execution and Fuzzing
- 4.4.1. EvoSuite
- 4.4.2. SAGE and Project Springfield
- 4.4.3. Driller
- 4.4.4. Mayhem
- 5. Conclusion
- References
- About the Authors
- Chapter Seven: Experiences With Replicable Experiments and Replication Kits for Software Engineering Research
- 1. Introduction
- 2. What Is Replication
- 3. Replication Kits
- 4. Experience Reports
- 4.1. Software Defect Prediction
- 4.2. Analysis of Test Types Characteristics
- 4.3. Developer Contribution Behavior
- 4.4. User-Oriented Usability Studies
- 5. Discussion
- 5.1. Contents of Replication Kits
- 5.2. Publishing of Replication Kits
- 5.3. A Checklist for Replication Kits
- 5.4. Platforms for Replicable Research
- 5.5. The Role of Replication Kits in Review Processes
- 6. Conclusion
- References
- About the Authors
- Back Cover.