Cargando…

Artificial intelligence methods for optimization of the software testing process with practical examples and exercises /

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Tahvili, Sahar
Otros Autores: Hatvani, Leo
Formato: Electrónico eBook
Idioma:Inglés
Publicado: [S.l.] : Academic Press, 2022.
Colección:Uncertainty, computational techniques, and decision intelligence
Temas:
Acceso en línea:Texto completo
Tabla de Contenidos:
  • Front Cover
  • Artificial Intelligence Methods for Optimization of the Software Testing Process
  • Copyright
  • Contents
  • List of figures
  • List of tables
  • Biography
  • Preface
  • Acknowledgments
  • Part 1 Software testing, artificial intelligence, decision intelligence, and test optimization
  • 1 Introduction
  • 1.1 Our digital era for a better future
  • 1.2 What is in this book?
  • 1.2.1 What is in the practical examples and exercises?
  • 1.2.2 What you will need
  • 1.3 What is missing?
  • 2 Basic software testing concepts
  • 2.1 Software development life cycle
  • 2.2 Software testing
  • 2.2.1 The procedure of software testing
  • 2.2.2 Software testing life cycle
  • 2.2.3 The levels of software testing
  • 2.3 Test artifacts
  • 2.3.1 Requirements specification
  • 2.3.2 Test specification
  • 2.3.3 Test script
  • 2.3.4 Software test report
  • 2.3.4.1 Test summary
  • 2.3.5 Traceability matrix
  • 2.4 The evolution of software testing
  • References
  • 3 Transformation, vectorization, and optimization
  • 3.1 A review of the history of text analytics
  • 3.1.1 Text analytics sub-disciplines and applications
  • 3.2 Text transformation and representation
  • 3.2.1 String distances
  • 3.2.2 Normalized compression distance
  • 3.3 Vectorization
  • 3.3.1 Text vectorization
  • 3.3.2 Machine learning
  • 3.3.3 Neural word embeddings
  • 3.3.4 Log vectorization
  • 3.3.5 Code vectorization
  • 3.4 Imbalanced learning
  • 3.4.1 Random under-sampling
  • 3.4.2 Random over-sampling
  • 3.4.3 Hybrid random sampling
  • 3.4.4 Synthetic minority over-sampling technique for balancing data
  • 3.5 Dimensionality reduction and visualizing machine learning models
  • 3.5.1 t-Distributed stochastic neighbor embedding
  • 3.5.2 Uniform manifold approximation and projection
  • References
  • 4 Decision intelligence and test optimization.
  • 4.1 The evolution of artificial intelligence
  • 4.2 Decision-making in a VUCA world
  • 4.3 Multi-criterion intelligent test optimization methodology
  • 4.4 Static and continuous test optimization process
  • 4.4.1 Test case selection
  • 4.4.2 Test case prioritization
  • 4.4.3 Test suite minimization
  • 4.4.4 Random, exploratory, and parallel test execution
  • 4.4.5 Intelligence test scheduling
  • 4.4.6 Test automation
  • References
  • 5 Application of vectorized test artifacts
  • 5.1 Test artifact optimization using vectorization and machine learning
  • 5.2 Vectorization of requirements specifications
  • 5.2.1 Unit of analysis and procedure for analyzing the requirements specifications
  • 5.2.2 Case Study 1: Topic identification for the requirements specifications analysis using text vectorization and clustering
  • 5.2.3 Optimization strategy and industrial application
  • Strategy A: Increasing/decreasing prioritization for the clustered requirements
  • Strategy B: Requirement selection and cluster size reduction
  • 5.2.4 Case Study 2: Splitting up requirements into dependent and independent classes using text vectorization and classification
  • 5.2.5 Applications of dependency detection between requirements
  • 5.3 Vectorization of test case specifications
  • 5.3.1 Unit of analysis and procedure for analyzing the manual test cases
  • 5.3.2 Case Study 3: Similarity and dependency detection between manual integration test cases using neural network embeddings and clustering
  • 5.3.3 Applications of dependency and similarity detection between manual integration test cases
  • Strategy 1: Parallel test execution of similar test cases
  • Strategy 2: Test execution scheduling and test automation using the dependency information between test cases.
  • 5.3.4 Case Study 4: Dividing manual integration test cases into dependent and independent classes using neural network embeddings and classification
  • 5.4 Vectorization of test scripts
  • 5.4.1 Unit of analysis and procedure for analyzing the test scripts
  • 5.4.2 Case Study 5: Similarity detection between integration test scripts using neural network embeddings and classification
  • 5.4.3 Case Study 6: Clustering high-dimensional data points using HDBSCAN, t-SNE, and UMAP for similarity detection between integration test scripts
  • 5.4.4 Applications of similarity detection between test scripts
  • Strategy A: Parallel test execution
  • Strategy B: Test suite minimization
  • 5.5 Vectorization of test logs
  • 5.5.1 Unit of analysis and procedure for analyzing the test logs
  • 5.5.2 Case Study 7: Classifying log entries based on the failure causes using word representations and troubleshooting action classification
  • 5.5.3 Case Study 8: Log vector clustering using the HDBSCAN algorithm
  • 5.5.4 Applications of the test log vectorization
  • 5.6 Implementation
  • 5.6.1 Scripts, modules, packages, and libraries
  • 5.6.1.1 NumPy
  • 5.6.1.2 Pandas
  • 5.6.1.3 SentenceTransformer
  • 5.6.1.4 HDBSCAN
  • 5.6.1.5 UMAP
  • 5.6.1.6 AutoKeras
  • 5.6.2 Text vectorization
  • 5.6.3 Code vectorization
  • 5.6.4 Log vectorization
  • 5.6.5 Random over-sampling, under-sampling, and SMOTE
  • 5.6.6 Visualization implementation
  • References
  • 6 Benefits, results, and challenges of artificial intelligence
  • 6.1 Benefits and barriers to the adoption of artificial intelligence
  • 6.2 Artificial intelligence platform pipeline
  • 6.2.1 Dataset generation
  • 6.2.2 Model development
  • 6.2.3 Model deployment
  • 6.3 Costs of artificial intelligence integration into the software development life cycle
  • References
  • 7 Discussion and concluding remarks
  • 7.1 Closing remarks.
  • Part 2 Practical examples and exercises
  • 8 Environment installation
  • 8.1 JupyterLab installation
  • 8.1.1 JupyterLab on pre-installed Python
  • 8.2 GitHub labs
  • 8.2.1 Download
  • 8.2.2 Loading the exercises into JupyterLab
  • 9 Exercises
  • 9.1 Python exercises and practice
  • 9.2 Exercise 1: Data processing
  • 9.3 Exercise 2: Natural language processing techniques
  • 9.4 Exercise 3: Clustering
  • 9.5 Exercise 4: Classification
  • 9.6 Exercise 5: Imbalanced learning
  • 9.7 Exercise 6: Dimensionality reduction and visualization
  • References
  • A Ground truth, data collection, and annotation
  • A.1 Ground truth
  • A.1.1 The conducted ground truth for Case Study 1, requirements specifications analysis
  • The Singapore Project at Alstom Sweden AB
  • A.1.2 The conducted ground truth for Case Study 2, splitting up requirements into dependent and independent classes
  • The Singapore R151 Project at Alstom Sweden AB
  • A.1.3 The conducted ground truth analysis for Case Study 3, similarity and dependency detection between manual integration test cases
  • The BR490 Project at Alstom Sweden AB
  • A.1.4 The conducted ground truth analysis for Case Study 4, dividing manual integration test cases into dependent and independent classes
  • The Singapore R151 Project at Alstom Sweden AB
  • A.1.5 The conducted ground truth analysis for Case Study 5 and Case Study 6, similarity detection between integration test scripts
  • Ericsson AB
  • A.1.6 The conducted ground truth analysis for Case Study 7 and Case Study 8, grouping log files based on failure causes
  • Ericsson AB
  • References
  • Index
  • Back Cover.