http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd
Artificial intelligence methods for optimization of the software testing process
"Artificial Intelligence Methods for Optimization of the Software Testing Process: With Practical Examples and Exercises presents different AI-based solutions for overcoming the uncertainty found in many initial testing problems. The concept of intelligent decision making is presented as a multi-criteria, multi-objective undertaking. The book provides guidelines on how to manage diverse types of uncertainty with intelligent decision-making that can help subject matter experts in many industries improve various processes in a more efficient way."--
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.
Uncertainty, computational techniques, and decision intelligence