Tags
Language
Tags
March 2024
Su Mo Tu We Th Fr Sa
25 26 27 28 29 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31 1 2 3 4 5 6

Improving Testability Through Design [repost]

Posted By: ParRus
Improving Testability Through Design [repost]

Improving Testability Through Design
WEBRip | English | MP4 + Project files | 1024 x 768 | AVC ~294 kbps | 15 fps
AAC | 126 Kbps | 44.1 KHz | 2 channels | 4h 36mn | 852.9 MB
Genre: eLearning Video / Development, Programming

This course tackles the issues of designing a complex application so that it can be covered with high quality tests.
A well designed application is not necessarily the one which has a perfect separation of layers, or the one which perfectly implements some predefined design patterns. It is certainly a plus to have these two goals met, but that is not sufficient to make the application really good. We can learn the most about one application by reading the source code of particular methods embedded deep inside of it. A common for loop often reveals more about the design than the whole diagram depicting responsibilities of an application layer in which it is located. The devil is in the details. The best of all intentions in design fails miserably when the low-profile design of small, seemingly unimportant classes is misconceived. In this course, the order of decisions is sorted bottom-up. It is the small class to which we pay attention the most. Only when all things are in place at the microscopic level can we discuss responsibilities of layers, isolation of modules and other high profile topics. The result is a well-built, easily testable and easily maintainable application.

Content:

01. Assessing Reliability of Tests 00:18:35
01. Introduction 01:37
02. Tests Coverage Considerations 02:30
03. The Value of Tests 02:01
04. The Quality of Tests 01:58
05. Introducing the Demo Application 02:45
06. Adding Properties to a Class 02:33
07. Identifying Some of the Design Issues 02:14
08. Summary 02:53
02. Developing an Application the Old Way 00:38:20
01. Preparing Tests for Properties 01:54
02. Testing Boundary Conditions 02:52
03. Improving the Boundary Conditions Tests 02:31
04. Defining the Circle 02:41
05. Adding an Operation to the Frame 02:02
06. Completing Tests for the Operation 03:02
07. Completing the Feature 01:50
08. Adding More Tests 02:23
09. Notes About how to Improve Unit Tests 02:13
10. Adding Another Feature and Its Tests 03:33
11. Adding a Concrete Implementation of the Circle 01:35
12. Trying the Demo Application 01:24
13. Exposing the Defects 02:03
14. A Case When It's Better Not to Mock 02:23
15. Exposing a Serious Defect 03:03
16. Summary 02:45
03. Guidelines of Redesign for Reliability 00:46:37
01. How Defects Are Introduced 03:34
02. How to Avoid Introducing Defects 02:40
03. How to Improve Tests 02:33
04. Factoring Out Common Logic From Tests 02:37
05. Using Common Testing Methods 01:19
06. Decoupling Library Test Code From Concrete Types 02:50
07. Completing the Testing Library for Decimal Properties 02:41
08. Avoiding Null Reference Exceptions 02:48
09. Introducing the Non-Default Constructor 02:46
10. Making Plans for Constructor Tests 02:10
11. Single vs. Multiple Tests per Test Method 03:00
12. Designing the Library for Constructor Tests 02:48
13. Beginning the Library Implementation 01:37
14. Adding Features to the Library 02:51
15. Completing the Constructor Testing Library 01:48
16. Making the Constructor Test Pass 01:39
17. Discussion on Declarative Tests 02:04
18. Discussion on Remaining Transition Tests 02:15
19. Summary 02:28
04. Getting the Most Out of Immutable Objects 00:43:13
01. About Values 01:43
02. Immutable Objects as Values 01:32
03. Example of Immutable Objects in C# 03:10
04. More Measurements on C# Performance 02:12
05. Performance of Immutable Collections 02:46
06. When to Be Careful With Immutable Collections 01:44
07. One Common Mistake With Immutable Collections 01:38
08. Different Ways to Validate Data 02:40
09. Problems When Validating in More Than One Way 03:08
10. Benefits From Validating Only in the Constructor 02:06
11. Transactional Qualities of Operations on Immutable Objects 02:29
12. Avoiding Processing Overhead in Immutable Operations 01:27
13. Immutability and Equality 01:05
14. Equality in Objects With Identity 02:39
15. Example of Immutable Structure 01:27
16. Immutable Structure Implementation 01:58
17. Designing the Immutable Circle Interface 02:36
18. Implementing the Immutable Circle Class 02:44
19. Implementing the Immutable Frame Class 02:28
20. Summary 01:32
05. Improving the Unit Tests 00:42:43
01. About Different Kinds of Tests 01:57
02. About Integration Tests 03:38
03. Overview of Types That Will Be Tested 02:38
04. Preparing the Immutable Structure Tests 01:51
05. Designing the Immutable Structure Tests API 01:53
06. Beginning the Library Implementation 01:33
07. Implementing the Assert Method 01:58
08. Completing the Library 01:15
09. Testing the Rectangle 02:07
10. Completing the Immutable Structures Tests 02:04
11. Testing the Circle Constructor 02:24
12. Testing the Geometry 02:14
13. Testing the Immutable Methods 02:05
14. Preparing the Equality Testing Library 01:43
15. Design of Declarative Testing Methods 02:11
16. Assert Method 01:44
17. Test Cases for Testing the Equals Methods 01:22
18. Test Cases for Operator Overloads 01:55
19. Demonstrating the Equality Testing Library 01:38
20. Discussion 02:51
21. Summary 01:29
06. Crossing Responsibility Boundaries 00:41:42
01. Defining Responsibilities of a Class 01:49
02. Defining Responsibility Boundaries 02:07
03. Different Kinds of Test Doubles 02:24
04. Identifying Responsibilities of the Circle Class 01:28
05. Moving Somebody Else's Responsibilities Out 02:36
06. Identifying the Problems 02:30
07. Motivation Behind the Visitor Pattern 01:40
08. The Visitor Pattern 01:39
09. Identifying Weaknesses in the Visitor Pattern 01:31
10. Modified Visitor Pattern Implementation 01:57
11. Applying the Visitor Pattern 02:31
12. Testing the Interaction With Visitors 01:53
13. Completing the Interaction Tests 01:51
14. Identifying Responsibilities of the Frame Class 02:07
15. Pros and Cons of Mocking in Unit Tests 02:30
16. Integration Tests in Place of Unit Tests With Mocks 01:33
17. Using Manually Coded Mocks 02:11
18. Using Concrete Visitor as a Spy 01:34
19. Using the Fluent Interface to Simplify Integration Tests 01:15
20. Mocking Framework vs. Manual Mocks 01:35
21. Running the Tests 01:07
22. Summary 01:43
07. Managing Operations on Database and External Systems 00:45:09
01. The Problem of Connecting to External Systems 04:23
02. Designing the Actual User Interface 04:41
03. Layering the Application 04:17
04. Referencing Issues Between Layers 03:15
05. Demonstrating the Data Mapping Layer 03:25
06. Final Organization of Layers 01:31
07. Adding a Data Access Layer to the Application 02:48
08. Adding the Data Gateway to the Application 03:03
09. About Testing the Layered Application 02:18
10. Handling Database Errors - the Incorrect Way 02:30
11. Handling Database Errors - the Correct Way 04:02
12. Summary 04:05
13. Course Summary 04:44

also You can watch my other last: Programming-posts

General
Complete name : 06. Identifying the Problems.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 7.55 MiB
Duration : 2mn 30s
Overall bit rate mode : Variable
Overall bit rate : 422 Kbps
Movie name : Identifying the Problems
Encoded date : UTC 2014-08-07 23:30:13
Tagged date : UTC 2014-08-07 23:30:24
Writing application : HandBrake 0.9.8 2012071700

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L3.1
Format settings, CABAC : No
Format settings, ReFrames : 2 frames
Format settings, GOP : M=1, N=50
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2mn 30s
Duration_FirstFrame : 67ms
Bit rate : 294 Kbps
Width : 1 024 pixels
Height : 768 pixels
Display aspect ratio : 4:3
Frame rate mode : Constant
Frame rate : 15.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.025
Stream size : 5.26 MiB (70%)
Writing library : x264 core 120
Encoding settings : cabac=0 / ref=2 / deblock=1:0:0 / analyse=0x1:0x111 / me=umh / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=0 / weightp=0 / keyint=50 / keyint_min=15 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=20.0 / qcomp=0.60 / qpmin=3 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Encoded date : UTC 2014-08-07 23:30:13
Tagged date : UTC 2014-08-07 23:30:24
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709

Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 2mn 30s
Bit rate mode : Variable
Bit rate : 126 Kbps
Maximum bit rate : 220 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 KHz
Compression mode : Lossy
Stream size : 2.25 MiB (30%)
Title : Stereo
Language : English
Encoded date : UTC 2014-08-07 23:30:13
Tagged date : UTC 2014-08-07 23:30:24
Screenshots

Improving Testability Through Design [repost]

Improving Testability Through Design [repost]

Improving Testability Through Design [repost]

Improving Testability Through Design [repost]

Exclusive eLearning Videos ParRus-blogadd to bookmarks

Improving Testability Through Design [repost]